21 return sizeof(uint64_t) * 3
23 +
sizeof(uint32_t) * 1;
27 const char* buffer, int64_t& buffer_remaining)
30 if ((
size_t)buffer_remaining >=
sizeof(size))
32 memcpy(&size, buffer,
sizeof(size));
34 buffer +=
sizeof(size);
38 std::stringstream buffer;
39 buffer <<
"ReducedMessageHeader::read: ";
40 buffer <<
sizeof(size) <<
" byte size encoding cannot";
42 buffer << buffer_remaining <<
" byte buffer\n";
46 buffer_remaining -=
sizeof(size);
56 std::stringstream buffer;
57 buffer <<
"ReducedMessageHeader::read: ";
60 buffer << buffer_remaining <<
" byte buffer\n";
67 if ((
size_t)buffer_remaining >=
sizeof(updates))
69 memcpy(&updates, buffer,
sizeof(updates));
71 buffer +=
sizeof(updates);
75 std::stringstream buffer;
76 buffer <<
"ReducedMessageHeader::read: ";
77 buffer <<
sizeof(updates) <<
" byte updates encoding cannot";
79 buffer << buffer_remaining <<
" byte buffer\n";
83 buffer_remaining -=
sizeof(updates);
86 if ((
size_t)buffer_remaining >=
sizeof(clock))
88 memcpy(&clock, buffer,
sizeof(clock));
90 buffer +=
sizeof(clock);
94 std::stringstream buffer;
95 buffer <<
"ReducedMessageHeader::read: ";
96 buffer <<
sizeof(clock) <<
" byte clock encoding cannot";
98 buffer << buffer_remaining <<
" byte buffer\n";
102 buffer_remaining -=
sizeof(clock);
105 if ((
size_t)buffer_remaining >=
sizeof(timestamp))
107 memcpy(×tamp, buffer,
sizeof(timestamp));
109 buffer +=
sizeof(timestamp);
113 std::stringstream buffer;
114 buffer <<
"ReducedMessageHeader::read: ";
115 buffer <<
sizeof(timestamp) <<
" byte timestamp encoding cannot";
116 buffer <<
" fit in ";
117 buffer << buffer_remaining <<
" byte buffer\n";
121 buffer_remaining -=
sizeof(timestamp);
124 if (buffer_remaining >= 1)
126 memcpy(&ttl, buffer, 1);
129 buffer_remaining -= 1;
135 char* buffer, int64_t& buffer_remaining)
138 if ((
size_t)buffer_remaining >=
sizeof(size))
141 buffer +=
sizeof(size);
145 std::stringstream buffer;
146 buffer <<
"ReducedMessageHeader::write: ";
147 buffer <<
sizeof(size) <<
" byte size encoding cannot";
148 buffer <<
" fit in ";
149 buffer << buffer_remaining <<
" byte buffer\n";
153 buffer_remaining -=
sizeof(size);
163 std::stringstream buffer;
164 buffer <<
"ReducedMessageHeader::write: ";
166 buffer <<
" fit in ";
167 buffer << buffer_remaining <<
" byte buffer\n";
174 if ((
size_t)buffer_remaining >=
sizeof(updates))
177 buffer +=
sizeof(updates);
181 std::stringstream buffer;
182 buffer <<
"ReducedMessageHeader::write: ";
183 buffer <<
sizeof(updates) <<
" byte updates encoding cannot";
184 buffer <<
" fit in ";
185 buffer << buffer_remaining <<
" byte buffer\n";
189 buffer_remaining -=
sizeof(updates);
192 if ((
size_t)buffer_remaining >=
sizeof(clock))
195 buffer +=
sizeof(clock);
199 std::stringstream buffer;
200 buffer <<
"ReducedMessageHeader::write: ";
201 buffer <<
sizeof(clock) <<
" byte clock encoding cannot";
202 buffer <<
" fit in ";
203 buffer << buffer_remaining <<
" byte buffer\n";
207 buffer_remaining -=
sizeof(clock);
210 if ((
size_t)buffer_remaining >=
sizeof(timestamp))
213 buffer +=
sizeof(timestamp);
217 std::stringstream buffer;
218 buffer <<
"ReducedMessageHeader::write: ";
219 buffer <<
sizeof(timestamp) <<
" byte timestamp encoding cannot";
220 buffer <<
" fit in ";
221 buffer << buffer_remaining <<
" byte buffer\n";
225 buffer_remaining -=
sizeof(timestamp);
228 if (buffer_remaining >= 1)
230 memcpy(buffer, &ttl, 1);
233 buffer_remaining -= 1;
240 std::stringstream buffer;
241 buffer <<
"29: size (8:" << size <<
"), ";
242 buffer <<
"encoding (8:" << madara_id <<
"), ";
243 buffer <<
"numupdates (4:" << updates <<
"), ";
244 buffer <<
"clock (8:" << clock <<
"), ";
245 buffer <<
"ttl (1:" << ttl <<
"), ";
252 return size == other.
size && updates == other.
updates &&
An exception for general memory errors like out-of-memory.
uint64_t endian_swap(uint64_t value)
Converts a host format uint64_t into big endian.
MADARA_EXPORT void strncpy_safe(char *dst, const char *src, size_t dst_size)
Performs a strncpy in a way that will compile without warnings.