10 : size(encoded_size()),
28 return sizeof(uint64_t) * 4 +
sizeof(
char) * (64 + 8) +
sizeof(uint32_t);
32 const char* buffer, int64_t& buffer_remaining)
35 if ((
size_t)buffer_remaining >=
sizeof(size))
38 buffer +=
sizeof(size);
42 std::stringstream buffer;
43 buffer <<
"FileHeader::read: ";
44 buffer <<
sizeof(size) <<
" byte size encoding cannot";
46 buffer << buffer_remaining <<
" byte buffer\n";
50 buffer_remaining -=
sizeof(size);
53 if ((
size_t)buffer_remaining >=
sizeof(states))
56 buffer +=
sizeof(states);
60 std::stringstream buffer;
61 buffer <<
"FileHeader::read: ";
62 buffer <<
sizeof(states) <<
" byte states encoding cannot";
64 buffer << buffer_remaining <<
" byte buffer\n";
68 buffer_remaining -=
sizeof(states);
71 if ((
size_t)buffer_remaining >=
sizeof(initial_timestamp))
74 buffer +=
sizeof(initial_timestamp);
78 std::stringstream buffer;
79 buffer <<
"FileHeader::read: ";
80 buffer <<
sizeof(initial_timestamp)
81 <<
" byte initial_timestamp encoding cannot";
83 buffer << buffer_remaining <<
" byte buffer\n";
87 buffer_remaining -=
sizeof(initial_timestamp);
90 if ((
size_t)buffer_remaining >=
sizeof(last_timestamp))
93 buffer +=
sizeof(last_timestamp);
97 std::stringstream buffer;
98 buffer <<
"FileHeader::read: ";
99 buffer <<
sizeof(last_timestamp) <<
" byte last_timestamp encoding cannot";
100 buffer <<
" fit in ";
101 buffer << buffer_remaining <<
" byte buffer\n";
105 buffer_remaining -=
sizeof(last_timestamp);
108 if ((
size_t)buffer_remaining >=
sizeof(char) * 8)
111 buffer +=
sizeof(char) * 8;
115 std::stringstream buffer;
116 buffer <<
"FileHeader::read: ";
117 buffer << 8 <<
" byte file_type encoding cannot";
118 buffer <<
" fit in ";
119 buffer << buffer_remaining <<
" byte buffer\n";
123 buffer_remaining -=
sizeof(char) * 8;
126 if ((
size_t)buffer_remaining >=
sizeof(karl_version))
129 buffer +=
sizeof(karl_version);
133 std::stringstream buffer;
134 buffer <<
"FileHeader::read: ";
135 buffer <<
sizeof(karl_version) <<
" byte version encoding cannot";
136 buffer <<
" fit in ";
137 buffer << buffer_remaining <<
" byte buffer\n";
141 buffer_remaining -=
sizeof(karl_version);
144 if ((
size_t)buffer_remaining >=
sizeof(char) * 64)
147 buffer +=
sizeof(char) * 64;
151 std::stringstream buffer;
152 buffer <<
"FileHeader::read: ";
153 buffer <<
sizeof(originator) <<
" byte originator encoding cannot";
154 buffer <<
" fit in ";
155 buffer << buffer_remaining <<
" byte buffer\n";
159 buffer_remaining -=
sizeof(char) * 64;
165 char* buffer, int64_t& buffer_remaining)
168 if ((
size_t)buffer_remaining >=
sizeof(size))
171 buffer +=
sizeof(size);
175 std::stringstream buffer;
176 buffer <<
"FileHeader::read: ";
177 buffer <<
sizeof(size) <<
" byte size encoding cannot";
178 buffer <<
" fit in ";
179 buffer << buffer_remaining <<
" byte buffer\n";
183 buffer_remaining -=
sizeof(size);
186 if ((
size_t)buffer_remaining >=
sizeof(states))
189 buffer +=
sizeof(states);
193 std::stringstream buffer;
194 buffer <<
"FileHeader::read: ";
195 buffer <<
sizeof(states) <<
" byte states encoding cannot";
196 buffer <<
" fit in ";
197 buffer << buffer_remaining <<
" byte buffer\n";
201 buffer_remaining -=
sizeof(states);
204 if ((
size_t)buffer_remaining >=
sizeof(initial_timestamp))
207 buffer +=
sizeof(initial_timestamp);
211 std::stringstream buffer;
212 buffer <<
"FileHeader::read: ";
213 buffer <<
sizeof(initial_timestamp)
214 <<
" byte initial_timestamp encoding cannot";
215 buffer <<
" fit in ";
216 buffer << buffer_remaining <<
" byte buffer\n";
220 buffer_remaining -=
sizeof(initial_timestamp);
223 if ((
size_t)buffer_remaining >=
sizeof(last_timestamp))
226 buffer +=
sizeof(last_timestamp);
230 std::stringstream buffer;
231 buffer <<
"FileHeader::read: ";
232 buffer <<
sizeof(last_timestamp) <<
" byte last_timestamp encoding cannot";
233 buffer <<
" fit in ";
234 buffer << buffer_remaining <<
" byte buffer\n";
238 buffer_remaining -=
sizeof(last_timestamp);
241 if ((
size_t)buffer_remaining >=
sizeof(char) * 8)
244 buffer +=
sizeof(char) * 8;
248 std::stringstream buffer;
249 buffer <<
"FileHeader::read: ";
250 buffer << 8 <<
" byte last_timestamp encoding cannot";
251 buffer <<
" fit in ";
252 buffer << buffer_remaining <<
" byte buffer\n";
256 buffer_remaining -=
sizeof(char) * 8;
259 if ((
size_t)buffer_remaining >=
sizeof(karl_version))
262 buffer +=
sizeof(karl_version);
266 std::stringstream buffer;
267 buffer <<
"FileHeader::read: ";
268 buffer <<
sizeof(karl_version) <<
" byte version encoding cannot";
269 buffer <<
" fit in ";
270 buffer << buffer_remaining <<
" byte buffer\n";
274 buffer_remaining -=
sizeof(karl_version);
277 if ((
size_t)buffer_remaining >=
sizeof(char) * 64)
280 buffer +=
sizeof(char) * 64;
284 std::stringstream buffer;
285 buffer <<
"FileHeader::read: ";
286 buffer <<
sizeof(originator) <<
" byte originator encoding cannot";
287 buffer <<
" fit in ";
288 buffer << buffer_remaining <<
" byte buffer\n";
292 buffer_remaining -=
sizeof(char) * 64;
299 return size == other.
size && states == other.
states &&
303 strncmp(file_type, other.
file_type, 4) == 0 &&
304 strncmp(originator, other.
originator, 64) == 0;
An exception for general memory errors like out-of-memory.
Provides utility functions and classes for common tasks and needs.
uint64_t endian_swap(uint64_t value)
Converts a host format uint64_t into big endian.
int64_t get_time(void)
Returns a time of day in nanoseconds If simtime feature is enabled, this may be simulation time inste...
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.
uint32_t get_uint_version(const std::string &str_version)
Converts a string version to a uint32.
Copyright(c) 2020 Galois.