1 #ifndef _MADARA_FILTERS_BUFFERFILTERHEADER_INL_
2 #define _MADARA_FILTERS_BUFFERFILTERHEADER_INL_
28 "CheckpointSettings::check_filter: header: "
29 " %s:%s, filter: %s:%s\n",
47 memcpy(
id, temp.c_str(), std::min(temp.size() + 1, (
size_t)8));
51 std::stringstream buffer;
52 buffer <<
"BufferFilterHeader::read: ";
53 buffer <<
" filter was null\n";
60 const char* buffer, int64_t& buffer_remaining)
62 if (buffer_remaining >= 20)
64 memcpy(&
size, buffer, 8);
66 memcpy(&
version, buffer + 16, 4);
71 buffer_remaining -= 20;
76 std::stringstream local_buffer;
77 local_buffer <<
"BufferFilterHeader::read: ";
78 local_buffer <<
" 20 byte size encoding cannot fit in ";
79 local_buffer << buffer_remaining <<
" byte buffer\n";
89 if (buffer_remaining >= 20)
94 memcpy(buffer, &new_size, 8);
95 memcpy(buffer + 8,
id, 8);
96 memcpy(buffer + 16, &new_version, 4);
98 buffer_remaining -= 20;
103 std::stringstream local_buffer;
104 local_buffer <<
"BufferFilterHeader::write: ";
105 local_buffer <<
" 20 byte size encoding cannot fit in ";
106 local_buffer << buffer_remaining <<
" byte buffer\n";
#define madara_logger_ptr_log(loggering, level,...)
Fast version of the madara::logger::log method for Logger pointers.
An exception for general memory errors like out-of-memory.
Abstract base class for implementing buffer filters via a functor interface.
virtual uint32_t get_version(void)=0
Gets the version of the filter.
virtual std::string get_id(void)=0
Gets the id of the filter.
T get(const KnowledgeRecord &kr)
Get the value of a KnowlegeRecord.
MADARA_EXPORT utility::Refcounter< logger::Logger > global_logger
uint64_t endian_swap(uint64_t value)
Converts a host format uint64_t into big endian.
std::string to_string_version(uint32_t version)
Converts a MADARA uint32_t version number to human-readable.
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.
Copyright(c) 2020 Galois.