Template Class MessageBuffer#

Nested Relationships#

Nested Types#

Inheritance Relationships#

Base Type#

Class Documentation#

template<std::size_t depth, std::size_t max_messages, byte_size element_t = std::byte, std::size_t alignment = sizeof(element_t)>
class MessageBuffer : public Coral::CircularBuffer<depth, std::byte, sizeof(std::byte)>#

Public Functions

inline MessageBuffer()#
inline MessageContext context(void)#
inline std::size_t space(void)#
inline bool full(std::size_t check = 0)#
inline Result put_message(const element_t *data, std::size_t len)#
inline Result get_message(element_t *data, std::size_t &len)#
inline bool empty()#
inline void clear(void)#

Protected Functions

inline void add_message(std::size_t len)#
inline auto remove_message(void)#

Protected Attributes

CircularBuffer<max_messages, std::size_t> message_sizes#
std::size_t num_messages#
std::size_t data_size#
bool locked#
class MessageContext#

Public Functions

inline MessageContext(MessageBuffer *_buf)#
inline ~MessageContext()#
template<std::endian endianness, std::integral T>
inline std::size_t custom(const element_t *elem, std::size_t length)#
template<std::endian endianness, ifgen_struct T>
inline std::size_t point(const T *elem)#

Public Members

const std::size_t max#

Protected Attributes

MessageBuffer *buf#