Class MessageEncoder#

Class Documentation#

class MessageEncoder#

Public Functions

inline MessageEncoder(const void *_data = nullptr, std::size_t _length = 0)#
Result stage(const uint8_t *_data, std::size_t _length)#
inline Result stage(const char *_data, std::size_t _length)#
inline Result stage(const std::byte *_data, std::size_t _length)#
template<class T, byte_size element_t = std::byte>
inline bool encode(PcBufferWriter<T, element_t> &writer)#
inline bool stats(uint32_t *buffer_load, uint32_t *bytes_count, uint16_t *messages_count)#

Protected Types

enum State#

Values:

enumerator not_initialized#
enumerator start#
enumerator encode_zero#
enumerator encode_data#
enumerator encode_delimeter#
enumerator complete#
enum ZeroPointerState#

Values:

enumerator empty#
enumerator pointer_to_data#
enumerator pointer_to_end#
enumerator pointer_to_pointer#

Protected Functions

void advance_message(bool only_zero_pointer = false, std::size_t count = 1)#
template<class T, byte_size element_t = std::byte>
inline bool handle_zero_pointer(PcBufferWriter<T, element_t> &writer)#
template<class T, byte_size element_t = std::byte>
inline bool handle_encode_zero(PcBufferWriter<T, element_t> &writer)#
template<class T, byte_size element_t = std::byte>
inline bool handle_encode_data(PcBufferWriter<T, element_t> &writer)#
ZeroPointerState pointer_kind(void)#

Protected Attributes

const uint8_t *data#
std::size_t length#
uint32_t bytes_sent#
uint16_t messages_sent#
bool stats_new#
State state#
ZeroPointerState zero_pointer_state = empty#
ZeroPointerState last_pointer_kind = empty#
uint8_t zero_pointer = 0#