Razorbotz RMC 2021-2022 Documentation
Loading...
Searching...
No Matches
BinaryMessage Class Reference

Public Member Functions

 BinaryMessage (std::string label)
 
 BinaryMessage (std::list< uint8_t > &bytes)
 
void print ()
 
void printObject (Object object)
 
void printElement (Element element)
 
std::string getLabel ()
 
Object getObject ()
 
uint64_t decodeSizeBytes (std::list< uint8_t >::iterator &currentByte)
 
std::string decodeLabel (std::list< uint8_t >::iterator &currentByte)
 
Object decodeObject (std::list< uint8_t >::iterator &currentByte)
 
Element decodeElement (std::list< uint8_t >::iterator &currentByte)
 
uint8_t decodeType (std::list< uint8_t >::iterator &currentByte)
 
std::list< uint8_t > encodeSizeBytes (uint64_t number)
 
void encodeSizeBytes (std::shared_ptr< std::list< uint8_t > >bytes, uint64_t number)
 
void encodeMessageSizeBytes (std::shared_ptr< std::list< uint8_t > > bytes)
 
void addElementBoolean (std::string label, bool boolean)
 
void addElementCharacter (std::string label, char character)
 
void addElementInt8 (std::string label, int8_t int8)
 
void addElementInt16 (std::string label, int16_t int16)
 
void addElementInt32 (std::string label, int32_t int32)
 
void addElementInt64 (std::string label, int64_t int64)
 
void addElementUInt8 (std::string label, uint8_t uint8)
 
void addElementUInt16 (std::string label, uint16_t uint16)
 
void addElementUInt32 (std::string label, uint32_t uint32)
 
void addElementUInt64 (std::string label, uint64_t uint64)
 
void addElementFloat32 (std::string label, float float32)
 
void addElementFloat64 (std::string label, double float64)
 
void addElementString (std::string label, std::string string)
 
void addElementBooleanArray (std::string label, std::vector< bool > booleanList, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementCharacterArray (std::string label, std::vector< char > characterList, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementInt8Array (std::string label, std::vector< int8_t > int8List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementInt16Array (std::string label, std::vector< int16_t > int16List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementInt32Array (std::string label, std::vector< int32_t > int32List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementInt64Array (std::string label, std::vector< int64_t > int64List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementUInt8Array (std::string label, std::vector< uint8_t > uint8List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementUInt16Array (std::string label, std::vector< uint16_t > uint16List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementUInt32Array (std::string label, std::vector< uint32_t > uint32List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementUInt64Array (std::string label, std::vector< uint64_t > uint64List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementFloat32Array (std::string label, std::vector< float > floatList, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementFloat64Array (std::string label, std::vector< double > doubleList, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addChild (Object childObject)
 
void addElementBoolean (Object &object, std::string label, bool boolean)
 Add a boolean element to the object.
 
void addElementCharacter (Object &object, std::string label, char character)
 
void addElementInt8 (Object &object, std::string label, int8_t int8)
 
void addElementInt16 (Object &object, std::string label, int16_t int16)
 
void addElementInt32 (Object &object, std::string label, int32_t int32)
 
void addElementInt64 (Object &object, std::string label, int64_t int64)
 
void addElementUInt8 (Object &object, std::string label, uint8_t uint8)
 
void addElementUInt16 (Object &object, std::string label, uint16_t uint16)
 
void addElementUInt32 (Object &object, std::string label, uint32_t uint32)
 
void addElementUInt64 (Object &object, std::string label, uint64_t uint64)
 
void addElementFloat32 (Object &object, std::string label, float float32)
 
void addElementFloat64 (Object &object, std::string label, double float64)
 
void addElementString (Object &object, std::string label, std::string string)
 
void addElementBooleanArray (Object &object, std::string label, std::vector< bool > booleanList, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementCharacterArray (Object &object, std::string label, std::vector< char > booleanList, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementInt8Array (Object &object, std::string label, std::vector< int8_t > int8List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementInt16Array (Object &object, std::string label, std::vector< int16_t > int16List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementInt32Array (Object &object, std::string label, std::vector< int32_t > int32List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementInt64Array (Object &object, std::string label, std::vector< int64_t > int64List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementUInt8Array (Object &object, std::string label, std::vector< uint8_t > uint8List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementUInt16Array (Object &object, std::string label, std::vector< uint16_t > uint16List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementUInt32Array (Object &object, std::string label, std::vector< uint32_t > uint32List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementUInt64Array (Object &object, std::string label, std::vector< uint64_t > uint64List, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementFloat32Array (Object &object, std::string label, std::vector< float > floatList, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addElementFloat64Array (Object &object, std::string label, std::vector< double > doubleList, size_t dimensionCount, std::vector< size_t > sizeList)
 
void addChild (Object &object, Object childObject)
 
void encodeBytes (std::shared_ptr< std::list< uint8_t > > bytes, Object object)
 Encodes an object struct into a list of bytes.
 
void encodeBytes (std::shared_ptr< std::list< uint8_t > > bytes, Element element)
 Encodes an element struct into a list of bytes.
 
void encodeLabelBytes (std::shared_ptr< std::list< uint8_t > > bytes, std::string label)
 Encodes the label of an object or element (strings)
 
void addSizeBytes (std::shared_ptr< std::list< uint8_t > > bytes, uint64_t size)
 Returns a list of bytes that represent the size.
 
std::shared_ptr< std::list< uint8_t > > getBytes ()
 

Static Public Member Functions

static bool hasSize (std::list< uint8_t > &message)
 
static bool hasMessage (std::list< uint8_t > &message)
 
static uint64_t decodeSizeBytes (std::list< uint8_t > &bytes)
 

Member Function Documentation

◆ addElementBoolean()

void BinaryMessage::addElementBoolean ( Object & object,
std::string label,
bool boolean )

Add a boolean element to the object.

This function

Parameters
object
label
boolean

◆ addSizeBytes()

void BinaryMessage::addSizeBytes ( std::shared_ptr< std::list< uint8_t > > bytes,
uint64_t size )

Returns a list of bytes that represent the size.

Takes in a size (64 bit integer) and returns a list of bytes that represent the size Ex. 0xFFFF for the size would push the following onto the bytes list [0x82, 0xFF, 0xFF]

Parameters
bytes
size

◆ encodeBytes() [1/2]

void BinaryMessage::encodeBytes ( std::shared_ptr< std::list< uint8_t > > bytes,
Element element )

Encodes an element struct into a list of bytes.

This function encodes an element struct into a list of bytes It first encodes the label of the element. Pushes the type of the element onto the bytes list. Finally checks the type of the element and encodes the data accordingly

Parameters
bytes
element

◆ encodeBytes() [2/2]

void BinaryMessage::encodeBytes ( std::shared_ptr< std::list< uint8_t > > bytes,
Object object )

Encodes an object struct into a list of bytes.

It first encodes the label of the object. Pushes the type of the object onto the bytes list. Pushes the size of the elementList onto the bytes list. Encodes each element of the elementList. Pushes the size of the children onto the bytes list. Finally it encodes each child of the object.

Parameters
bytes
object

◆ encodeLabelBytes()

void BinaryMessage::encodeLabelBytes ( std::shared_ptr< std::list< uint8_t > > bytes,
std::string label )

Encodes the label of an object or element (strings)

This function encodes the label of an object or element. It first pushes the type of the data (string) onto the bytes list Then it pushes the size of the label onto the bytes list Finally it pushes the label onto the bytes list

Parameters
bytes
label

The documentation for this class was generated from the following files: