11 : size (encoded_size ()),
12 type (0), updates (0), quality (0), clock (0),
30 return sizeof (uint64_t) * 3
33 +
sizeof (uint32_t) * 3;
39 return sizeof (uint64_t) * 3
42 +
sizeof (uint32_t) * 3;
47 int64_t & buffer_remaining)
50 if ((
size_t)buffer_remaining >=
sizeof (
size))
52 memcpy (&
size, buffer,
sizeof (
size));
54 buffer +=
sizeof (
size);
56 buffer_remaining -=
sizeof (
size);
66 std::stringstream buffer;
67 buffer <<
"MessageHeader::read: ";
69 buffer << buffer_remaining <<
" byte buffer\n";
85 std::stringstream buffer;
86 buffer <<
"MessageHeader::read: ";
89 buffer << buffer_remaining <<
" byte buffer\n";
104 std::stringstream buffer;
105 buffer <<
"MessageHeader::read: ";
107 buffer <<
" fit in ";
108 buffer << buffer_remaining <<
" byte buffer\n";
115 if ((
size_t)buffer_remaining >=
sizeof (
type))
117 memcpy (&
type, buffer,
sizeof (
type));
119 buffer +=
sizeof (
type);
123 std::stringstream buffer;
124 buffer <<
"MessageHeader::read: ";
125 buffer <<
sizeof (
type) <<
" byte type encoding cannot";
126 buffer <<
" fit in ";
127 buffer << buffer_remaining <<
" byte buffer\n";
131 buffer_remaining -=
sizeof (
type);
134 if ((
size_t)buffer_remaining >=
sizeof (
updates))
142 std::stringstream buffer;
143 buffer <<
"MessageHeader::read: ";
144 buffer <<
sizeof (
updates) <<
" byte updates encoding cannot";
145 buffer <<
" fit in ";
146 buffer << buffer_remaining <<
" byte buffer\n";
150 buffer_remaining -=
sizeof (
updates);
153 if ((
size_t)buffer_remaining >=
sizeof (
quality))
161 std::stringstream buffer;
162 buffer <<
"MessageHeader::read: ";
163 buffer <<
sizeof (
quality) <<
" byte quality encoding cannot";
164 buffer <<
" fit in ";
165 buffer << buffer_remaining <<
" byte buffer\n";
169 buffer_remaining -=
sizeof (
quality);
172 if ((
size_t)buffer_remaining >=
sizeof (
clock))
176 buffer +=
sizeof (
clock);
180 std::stringstream buffer;
181 buffer <<
"MessageHeader::read: ";
182 buffer <<
sizeof (
clock) <<
" byte clock encoding cannot";
183 buffer <<
" fit in ";
184 buffer << buffer_remaining <<
" byte buffer\n";
188 buffer_remaining -=
sizeof (
clock);
191 if ((
size_t)buffer_remaining >=
sizeof (
timestamp))
199 std::stringstream buffer;
200 buffer <<
"MessageHeader::read: ";
201 buffer <<
sizeof (
timestamp) <<
" byte timestamp encoding cannot";
202 buffer <<
" fit in ";
203 buffer << buffer_remaining <<
" byte buffer\n";
210 if (buffer_remaining >= 1)
212 memcpy (&
ttl, buffer, 1);
215 buffer_remaining -= 1;
222 int64_t & buffer_remaining)
225 if ((
size_t)buffer_remaining >=
sizeof (
size))
228 buffer +=
sizeof (
size);
232 std::stringstream buffer;
233 buffer <<
"MessageHeader::write: ";
234 buffer <<
sizeof (
size) <<
" byte size encoding cannot";
235 buffer <<
" fit in ";
236 buffer << buffer_remaining <<
" byte buffer\n";
240 buffer_remaining -=
sizeof (
size);
250 std::stringstream buffer;
251 buffer <<
"MessageHeader::write: ";
253 buffer <<
" fit in ";
254 buffer << buffer_remaining <<
" byte buffer\n";
268 std::stringstream buffer;
269 buffer <<
"MessageHeader::write: ";
271 buffer <<
" fit in ";
272 buffer << buffer_remaining <<
" byte buffer\n";
286 std::stringstream buffer;
287 buffer <<
"MessageHeader::write: ";
289 buffer <<
" fit in ";
290 buffer << buffer_remaining <<
" byte buffer\n";
297 if ((
size_t)buffer_remaining >=
sizeof (
type))
300 buffer +=
sizeof (
type);
304 std::stringstream buffer;
305 buffer <<
"MessageHeader::write: ";
306 buffer <<
sizeof (
type) <<
" byte type encoding cannot";
307 buffer <<
" fit in ";
308 buffer << buffer_remaining <<
" byte buffer\n";
312 buffer_remaining -=
sizeof (
type);
315 if ((
size_t)buffer_remaining >=
sizeof (
updates))
322 std::stringstream buffer;
323 buffer <<
"MessageHeader::write: ";
324 buffer <<
sizeof (
updates) <<
" byte updates encoding cannot";
325 buffer <<
" fit in ";
326 buffer << buffer_remaining <<
" byte buffer\n";
330 buffer_remaining -=
sizeof (
updates);
333 if ((
size_t)buffer_remaining >=
sizeof (
quality))
340 std::stringstream buffer;
341 buffer <<
"MessageHeader::write: ";
342 buffer <<
sizeof (
quality) <<
" byte quality encoding cannot";
343 buffer <<
" fit in ";
344 buffer << buffer_remaining <<
" byte buffer\n";
348 buffer_remaining -=
sizeof (
quality);
351 if ((
size_t)buffer_remaining >=
sizeof (
clock))
354 buffer +=
sizeof (
clock);
358 std::stringstream buffer;
359 buffer <<
"MessageHeader::write: ";
360 buffer <<
sizeof (
clock) <<
" byte clock encoding cannot";
361 buffer <<
" fit in ";
362 buffer << buffer_remaining <<
" byte buffer\n";
366 buffer_remaining -=
sizeof (
clock);
369 if ((
size_t)buffer_remaining >=
sizeof (
timestamp))
376 std::stringstream buffer;
377 buffer <<
"MessageHeader::write: ";
378 buffer <<
sizeof (
timestamp) <<
" byte timestamp encoding cannot";
379 buffer <<
" fit in ";
380 buffer << buffer_remaining <<
" byte buffer\n";
386 if (buffer_remaining >= 1)
388 memcpy (buffer, &
ttl, 1);
391 buffer_remaining -= 1;
399 std::stringstream buffer;
401 buffer <<
"140: size (8:" <<
size <<
"), ";
402 buffer <<
"encoding (8:" <<
madara_id <<
"), ";
403 buffer <<
"domain (32:" <<
domain <<
"), ";
405 buffer <<
"type (4:" <<
type <<
"), ";
406 buffer <<
"numupdates (4:" <<
updates <<
"), ";
407 buffer <<
"quality (4:" <<
quality <<
"), ";
408 buffer <<
"clock (8:" <<
clock <<
"), ";
409 buffer <<
"wallclock (8:" <<
timestamp <<
"), ";
410 buffer <<
"ttl (1:" << (int)
ttl <<
"), ";
412 return buffer.str ();
int64_t get_time(void)
Returns a time of day in nanoseconds If simtime feature is enabled, this may be simulation time inste...
uint64_t endian_swap(uint64_t value)
Converts a host format uint64_t into big endian.
An exception for general memory errors like out-of-memory.
Provides utility functions and classes for common tasks and needs.