110 BinaryMessage(std::string label);
111 BinaryMessage(std::list<uint8_t>& bytes);
113 void printObject(
Object object);
114 void printElement(
Element element);
116 std::string getLabel();
119 static bool hasSize(std::list<uint8_t>& message);
120 static bool hasMessage(std::list<uint8_t>& message);
121 static uint64_t decodeSizeBytes(std::list<uint8_t>& bytes);
122 uint64_t decodeSizeBytes(std::list<uint8_t>::iterator& currentByte);
123 std::string decodeLabel(std::list<uint8_t>::iterator& currentByte);
124 Object decodeObject(std::list<uint8_t>::iterator& currentByte);
125 Element decodeElement(std::list<uint8_t>::iterator& currentByte);
126 uint8_t decodeType(std::list<uint8_t>::iterator& currentByte);
128 std::list<uint8_t> encodeSizeBytes(uint64_t number);
129 void encodeSizeBytes(std::shared_ptr<std::list<uint8_t>>bytes, uint64_t number);
130 void encodeMessageSizeBytes(std::shared_ptr<std::list<uint8_t>> bytes);
131 void addElementBoolean(std::string label,
bool boolean);
132 void addElementCharacter(std::string label,
char character);
133 void addElementInt8(std::string label, int8_t int8);
134 void addElementInt16(std::string label, int16_t int16);
135 void addElementInt32(std::string label, int32_t int32);
136 void addElementInt64(std::string label, int64_t int64);
137 void addElementUInt8(std::string label, uint8_t uint8);
138 void addElementUInt16(std::string label, uint16_t uint16);
139 void addElementUInt32(std::string label, uint32_t uint32);
140 void addElementUInt64(std::string label, uint64_t uint64);
141 void addElementFloat32(std::string label,
float float32);
142 void addElementFloat64(std::string label,
double float64);
143 void addElementString(std::string label, std::string
string);
144 void addElementBooleanArray(std::string label, std::vector<bool> booleanList,
size_t dimensionCount, std::vector<size_t> sizeList);
145 void addElementCharacterArray(std::string label, std::vector<char> characterList,
size_t dimensionCount, std::vector<size_t> sizeList);
146 void addElementInt8Array(std::string label, std::vector<int8_t> int8List,
size_t dimensionCount, std::vector<size_t> sizeList);
147 void addElementInt16Array(std::string label, std::vector<int16_t> int16List,
size_t dimensionCount, std::vector<size_t> sizeList);
148 void addElementInt32Array(std::string label, std::vector<int32_t> int32List,
size_t dimensionCount, std::vector<size_t> sizeList);
149 void addElementInt64Array(std::string label, std::vector<int64_t> int64List,
size_t dimensionCount, std::vector<size_t> sizeList);
150 void addElementUInt8Array(std::string label, std::vector<uint8_t> uint8List,
size_t dimensionCount, std::vector<size_t> sizeList);
151 void addElementUInt16Array(std::string label, std::vector<uint16_t> uint16List,
size_t dimensionCount, std::vector<size_t> sizeList);
152 void addElementUInt32Array(std::string label, std::vector<uint32_t> uint32List,
size_t dimensionCount, std::vector<size_t> sizeList);
153 void addElementUInt64Array(std::string label, std::vector<uint64_t> uint64List,
size_t dimensionCount, std::vector<size_t> sizeList);
154 void addElementFloat32Array(std::string label, std::vector<float> floatList,
size_t dimensionCount, std::vector<size_t> sizeList);
155 void addElementFloat64Array(std::string label, std::vector<double> doubleList,
size_t dimensionCount, std::vector<size_t> sizeList);
156 void addChild(
Object childObject);
158 void addElementBoolean(
Object&
object, std::string label,
bool boolean);
159 void addElementCharacter(
Object&
object, std::string label,
char character);
160 void addElementInt8(
Object&
object, std::string label, int8_t int8);
161 void addElementInt16(
Object&
object, std::string label, int16_t int16);
162 void addElementInt32(
Object&
object, std::string label, int32_t int32);
163 void addElementInt64(
Object&
object, std::string label, int64_t int64);
164 void addElementUInt8(
Object&
object, std::string label, uint8_t uint8);
165 void addElementUInt16(
Object&
object, std::string label, uint16_t uint16);
166 void addElementUInt32(
Object&
object, std::string label, uint32_t uint32);
167 void addElementUInt64(
Object&
object, std::string label, uint64_t uint64);
168 void addElementFloat32(
Object&
object, std::string label,
float float32);
169 void addElementFloat64(
Object&
object, std::string label,
double float64);
170 void addElementString(
Object&
object, std::string label, std::string
string);
171 void addElementBooleanArray(
Object&
object, std::string label, std::vector<bool> booleanList,
size_t dimensionCount, std::vector<size_t> sizeList);
172 void addElementCharacterArray(
Object&
object, std::string label, std::vector<char> booleanList,
size_t dimensionCount, std::vector<size_t> sizeList);
173 void addElementInt8Array(
Object&
object, std::string label, std::vector<int8_t> int8List,
size_t dimensionCount, std::vector<size_t> sizeList);
174 void addElementInt16Array(
Object&
object, std::string label, std::vector<int16_t> int16List,
size_t dimensionCount, std::vector<size_t> sizeList);
175 void addElementInt32Array(
Object&
object, std::string label, std::vector<int32_t> int32List,
size_t dimensionCount, std::vector<size_t> sizeList);
176 void addElementInt64Array(
Object&
object, std::string label, std::vector<int64_t> int64List,
size_t dimensionCount, std::vector<size_t> sizeList);
177 void addElementUInt8Array(
Object&
object, std::string label, std::vector<uint8_t> uint8List,
size_t dimensionCount, std::vector<size_t> sizeList);
178 void addElementUInt16Array(
Object&
object, std::string label, std::vector<uint16_t> uint16List,
size_t dimensionCount, std::vector<size_t> sizeList);
179 void addElementUInt32Array(
Object&
object, std::string label, std::vector<uint32_t> uint32List,
size_t dimensionCount, std::vector<size_t> sizeList);
180 void addElementUInt64Array(
Object&
object, std::string label, std::vector<uint64_t> uint64List,
size_t dimensionCount, std::vector<size_t> sizeList);
181 void addElementFloat32Array(
Object&
object, std::string label, std::vector<float> floatList,
size_t dimensionCount, std::vector<size_t> sizeList);
182 void addElementFloat64Array(
Object&
object, std::string label, std::vector<double> doubleList,
size_t dimensionCount, std::vector<size_t> sizeList);
187 void encodeLabelBytes(std::shared_ptr<std::list<uint8_t>> bytes, std::string label);
188 void addSizeBytes(std::shared_ptr<std::list<uint8_t>> bytes, uint64_t size);
190 std::shared_ptr<std::list<uint8_t>> getBytes();