24 return sizeof (uint64_t) * 3
26 +
sizeof (uint32_t) * 1;
31 int64_t & buffer_remaining)
34 if ((
size_t)buffer_remaining >=
sizeof (
size))
36 memcpy (&
size, buffer,
sizeof (
size));
38 buffer +=
sizeof (
size);
42 std::stringstream buffer;
43 buffer <<
"ReducedMessageHeader::read: ";
44 buffer <<
sizeof (
size) <<
" byte size encoding cannot";
46 buffer << buffer_remaining <<
" byte buffer\n";
50 buffer_remaining -=
sizeof (
size);
60 std::stringstream buffer;
61 buffer <<
"ReducedMessageHeader::read: ";
64 buffer << buffer_remaining <<
" byte buffer\n";
71 if ((
size_t)buffer_remaining >=
sizeof (
updates))
79 std::stringstream buffer;
80 buffer <<
"ReducedMessageHeader::read: ";
81 buffer <<
sizeof (
updates) <<
" byte updates encoding cannot";
83 buffer << buffer_remaining <<
" byte buffer\n";
87 buffer_remaining -=
sizeof (
updates);
90 if ((
size_t)buffer_remaining >=
sizeof (
clock))
94 buffer +=
sizeof (
clock);
98 std::stringstream buffer;
99 buffer <<
"ReducedMessageHeader::read: ";
100 buffer <<
sizeof (
clock) <<
" byte clock encoding cannot";
101 buffer <<
" fit in ";
102 buffer << buffer_remaining <<
" byte buffer\n";
106 buffer_remaining -=
sizeof (
clock);
109 if ((
size_t)buffer_remaining >=
sizeof (
timestamp))
117 std::stringstream buffer;
118 buffer <<
"ReducedMessageHeader::read: ";
119 buffer <<
sizeof (
timestamp) <<
" byte timestamp encoding cannot";
120 buffer <<
" fit in ";
121 buffer << buffer_remaining <<
" byte buffer\n";
128 if (buffer_remaining >= 1)
130 memcpy (&
ttl, buffer, 1);
133 buffer_remaining -= 1;
140 int64_t & buffer_remaining)
143 if ((
size_t)buffer_remaining >=
sizeof (
size))
146 buffer +=
sizeof (
size);
150 std::stringstream buffer;
151 buffer <<
"ReducedMessageHeader::write: ";
152 buffer <<
sizeof (
size) <<
" byte size encoding cannot";
153 buffer <<
" fit in ";
154 buffer << buffer_remaining <<
" byte buffer\n";
158 buffer_remaining -=
sizeof (
size);
168 std::stringstream buffer;
169 buffer <<
"ReducedMessageHeader::write: ";
171 buffer <<
" fit in ";
172 buffer << buffer_remaining <<
" byte buffer\n";
179 if ((
size_t)buffer_remaining >=
sizeof (
updates))
186 std::stringstream buffer;
187 buffer <<
"ReducedMessageHeader::write: ";
188 buffer <<
sizeof (
updates) <<
" byte updates encoding cannot";
189 buffer <<
" fit in ";
190 buffer << buffer_remaining <<
" byte buffer\n";
194 buffer_remaining -=
sizeof (
updates);
197 if ((
size_t)buffer_remaining >=
sizeof (
clock))
200 buffer +=
sizeof (
clock);
204 std::stringstream buffer;
205 buffer <<
"ReducedMessageHeader::write: ";
206 buffer <<
sizeof (
clock) <<
" byte clock encoding cannot";
207 buffer <<
" fit in ";
208 buffer << buffer_remaining <<
" byte buffer\n";
212 buffer_remaining -=
sizeof (
clock);
215 if ((
size_t)buffer_remaining >=
sizeof (
timestamp))
222 std::stringstream buffer;
223 buffer <<
"ReducedMessageHeader::write: ";
224 buffer <<
sizeof (
timestamp) <<
" byte timestamp encoding cannot";
225 buffer <<
" fit in ";
226 buffer << buffer_remaining <<
" byte buffer\n";
233 if (buffer_remaining >= 1)
235 memcpy (buffer, &
ttl, 1);
238 buffer_remaining -= 1;
246 std::stringstream buffer;
247 buffer <<
"29: size (8:" <<
size <<
"), ";
248 buffer <<
"encoding (8:" <<
madara_id <<
"), ";
249 buffer <<
"numupdates (4:" <<
updates <<
"), ";
250 buffer <<
"clock (8:" <<
clock <<
"), ";
251 buffer <<
"ttl (1:" <<
ttl <<
"), ";
253 return buffer.str ();
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.