YARP
Yet Another Robot Platform
yarp::os::Vocab Namespace Reference

Short readable codes. More...

Functions

NetInt32 encode (const std::string &str)
 Convert a string into a vocabulary identifier. More...
 
std::string decode (NetInt32 code)
 Convert a vocabulary identifier into a string. More...
 

Detailed Description

Short readable codes.

They are integers, for efficient switching, but have a readable (and writable) string representation. Codes are limited to 4 characters long (to fit in a standard network integer, NetInt32). This is a compromise to allow the creation of messages that can be parsed very efficiently by machine but nevertheless are human readable and writable.

switch(code) {
case createVocab('s','e','t'): // switch on "set"
...
break;
case createVocab('s','t','o','p'): // switch on "stop"
...
break;
}

Your program will be efficient, and the codes used if they traverse the network will be human readable/writable.

Function Documentation

◆ decode()

std::string yarp::os::Vocab::decode ( NetInt32  code)

Convert a vocabulary identifier into a string.

Parameters
codethe vocabulary identifier to convert
Returns
the string equivalent of the integer form of the identifier
Examples
os/browse_bottle/browse_bottle.cpp.

Definition at line 36 of file Vocab.cpp.

◆ encode()

NetInt32 yarp::os::Vocab::encode ( const std::string &  str)

Convert a string into a vocabulary identifier.

If the string is longer than four characters, only the first four characters are used.

Parameters
strthe string to convert
Returns
the integer equivalent of the string form of the identifier
Examples
os/database/database.cpp.

Definition at line 14 of file Vocab.cpp.

yarp::os::createVocab
constexpr yarp::conf::vocab32_t createVocab(char a, char b=0, char c=0, char d=0)
Definition: Vocab.h:22