a serialization/deserialization helper class, with load, store, and stream operators
More...
|
void | reset () noexcept |
| resets the bit offset to 0 and the status to NO_ERROR
|
|
template<typename T_pointer , typename std::enable_if< std::is_pointer< T_pointer >::value, int * >::type = nullptr> |
| packet (T_pointer array_init, size_t max_elements=~size_t(0), size_t b_offset=0, mode_e m=mode_e::UNSPECIFIED) |
| Construct a new packet object from an c style array pointer. More...
|
|
template<typename T_array , size_t N> |
| packet (T_array(&array_init)[N], size_t max_elements=~size_t(0), size_t b_offset=0, mode_e m=mode_e::UNSPECIFIED) |
| Construct a new packet object from an c style array pointer. More...
|
|
template<typename T_sized_pointer , typename std::enable_if< serdes::detail::is_sized_pointer< T_sized_pointer >::value, int * >::type = nullptr> |
| packet (T_sized_pointer array_init, size_t b_offset=0, mode_e m=mode_e::UNSPECIFIED) |
| Construct a new packet object from an sized_pointer array for size safety. More...
|
|
void | pad (const size_t bits) |
| moves the bit offset head the specified bits More...
|
|
void | align (size_t bits) |
| aligns (increases) the bit offset to a multiple of the specified bits More...
|
|
template<typename T , size_t N> |
void | load (T(&value)[N], size_t bits=detail::default_bitsize< T >::value) |
| [[deserialize]] loads from serial buffer into the passed array of values More...
|
|
template<typename T , typename std::enable_if<!detail::is_format_modifier< T >::value, int * >::type = nullptr> |
void | load (T &value, size_t bits=detail::default_bitsize< T >::value) |
| [[deserialize]] loads from serial buffer into the passed value reference More...
|
|
template<typename T , typename std::enable_if< std::is_rvalue_reference< T && >::value &&!std::is_base_of< packet_base, T >::value, int * >::type = nullptr> |
void | load (T &&value, size_t bits=detail::default_bitsize< T >::value) |
| [[deserialize]] loads from serial buffer into the passed value rvalue NOTE: using this method will cause a status_e::NO_LOAD_TO_RVALUE error
|
|
void | load (formatter &value) |
| [[deserialize]] loads from serial buffer into a formatter reference More...
|
|
void | load (formatter &&value) |
| [[deserialize]] loads from serial buffer into a formatter rvalue More...
|
|
template<typename T , typename std::enable_if<!detail::is_format_modifier< T >::value, int * >::type = nullptr> |
void | load (delimited_array< T > &value, size_t bits=detail::default_bitsize< T >::value) |
| [[deserialize]] loads from serial buffer into a delimited_array reference More...
|
|
template<typename T , typename std::enable_if< std::is_base_of< packet_base, T >::value, int * >::type = nullptr> |
void | load (delimited_array< T > &value) |
| [[deserialize]] loads from serial buffer into a delimited_array<packet_base> reference More...
|
|
template<typename T > |
void | load (delimited_array< T > &&value) |
| [[deserialize]] loads from serial buffer into a delimited_array<T> reference More...
|
|
template<typename T , typename T2 , typename std::enable_if<!detail::is_format_modifier< T >::value, int * >::type = nullptr> |
void | load (array< T, T2 > &value, size_t bits=detail::default_bitsize< T >::value) |
| [[deserialize]] loads from serial buffer into a array<T1, T2> reference More...
|
|
template<typename T , typename T2 , typename std::enable_if< std::is_base_of< packet_base, T >::value, int * >::type = nullptr> |
void | load (array< T, T2 > &value) |
| [[deserialize]] loads from serial buffer into a array<packet_base, T2> reference More...
|
|
template<typename T , typename T2 > |
void | load (array< T, T2 > &&value) |
| [[deserialize]] loads from serial buffer into a array<T, T2> forwarding reference More...
|
|
template<typename ST > |
void | load (const serdes::pad< ST > padding) |
| [[deserialize, pad]] applies a padding step to the load process More...
|
|
template<typename ST > |
void | load (const serdes::align< ST > alignment) |
| [[deserialize, align]] applies an alignment step to the load process More...
|
|
template<typename T , typename ST > |
void | load (bitpack< T, ST > &&value) |
| [[deserialize]] loads from serial buffer into a bitpack<T, ST> rvalue More...
|
|
template<typename T , typename ST > |
void | load (bitpack< T, ST > &value) |
| [[deserialize]] loads from serial buffer into a bitpack<T, ST> reference More...
|
|
void | load (packet_base &value) |
| [[deserialize]] loads from serial buffer into a packet_base reference More...
|
|
void | load (packet_base &&value) |
| [[deserialize]] loads from serial buffer into a packet_base rvalue More...
|
|
template<typename T , typename std::enable_if<!detail::is_format_modifier< T >::value, int * >::type = nullptr> |
void | store (const T &value, size_t bits=detail::default_bitsize< T >::value) |
| [[serialize]] stores a value reference into a serial buffer More...
|
|
template<typename T , size_t N> |
void | store (const T(&value)[N], size_t bits=detail::default_bitsize< T >::value) |
| [[serialize]] stores a raw array reference into a serial buffer More...
|
|
template<typename T , size_t N> |
void | store (const T(&&value)[N], size_t bits=detail::default_bitsize< T >::value) |
| [[serialize]] stores a raw array rvalue into a serial buffer More...
|
|
template<typename T , typename std::enable_if<!detail::is_format_modifier< T >::value, int * >::type = nullptr> |
void | store (const delimited_array< T > &value, size_t bits=detail::default_bitsize< T >::value) |
| [[serialize]] stores a delimited_array reference into a serial buffer More...
|
|
template<typename T , typename std::enable_if< std::is_base_of< packet_base, T >::value, int * >::type = nullptr> |
void | store (const delimited_array< T > &value) |
| [[serialize]] stores a delimited_array<packet_base> reference into a serial buffer More...
|
|
template<typename T > |
void | store (const delimited_array< T > &&value) |
| [[serialize]] stores a delimited_array<packet_base> rvalue into a serial buffer More...
|
|
template<typename T , typename T2 , typename std::enable_if<!detail::is_format_modifier< T >::value, int * >::type = nullptr> |
void | store (const array< T, T2 > &value, size_t bits=detail::default_bitsize< T >::value) |
| [[serialize]] stores an array<T1, T2> reference into a serial buffer More...
|
|
template<typename T , typename T2 , typename std::enable_if< std::is_base_of< packet_base, T >::value, int * >::type = nullptr> |
void | store (const array< T, T2 > &value) |
| [[serialize]] stores an array<packet_base, T2> reference into a serial buffer More...
|
|
template<typename T , typename T2 > |
void | store (const array< T, T2 > &&value) |
| [[serialize]] stores an array<T, T2> rvalue into a serial buffer More...
|
|
void | store (const formatter &value) |
| [[serialize]] stores a formatter reference into a serial buffer More...
|
|
void | store (const formatter &&value) |
| [[serialize]] stores a formatter rvalue into a serial buffer More...
|
|
template<typename ST > |
void | store (const serdes::pad< ST > padding) |
| [[serialize, pad]] applies a padding step to the store process More...
|
|
template<typename ST > |
void | store (const serdes::align< ST > alignment) |
| [[serialize, align]] applies an alignment step to the store process More...
|
|
template<typename T , typename ST > |
void | store (const bitpack< T, ST > &&value) |
| [[serialize]] stores a bitpack<T, ST> rvalue into a serial buffer More...
|
|
template<typename T , typename ST > |
void | store (const bitpack< T, ST > &value) |
| [[serialize]] stores a bitpack<T, ST> reference into a serial buffer More...
|
|
void | store (const packet_base &value) |
| [[serialize]] stores a packet_base reference into a serial buffer More...
|
|
void | store (const packet_base &&value) |
| [[serialize]] stores a packet_base rvalue into a serial buffer More...
|
|
template<typename T > |
packet & | operator>> (T &&x) |
| [[deserialize]] loads serial data into the passed value (same as load) More...
|
|
template<typename T > |
packet & | operator<< (T &&x) |
| [[serialize]] stores the passed value into the serial data (same as store) More...
|
|
template<typename T > |
void | add (T &&x, size_t bits) |
| adds a referenced field to the serial format for both serialization and deserialization More...
|
|
template<typename T , size_t N> |
void | add (T(&x)[N], size_t bits) |
| adds an array field to the serial format for both serialization and deserialization More...
|
|
template<typename T > |
void | add (T &&x) |
| adds a referenced field to the serial format for both serialization and deserialization More...
|
|
template<typename T , size_t N> |
void | add (T(&x)[N]) |
| adds an array field to the serial format for both serialization and deserialization More...
|
|
template<typename T > |
void | add (T &value, const std::function< bool()> &validation) |
| adds a referenced field to the serial format for both serialization and deserialization along with a validation process to run before serialization, and/or after deserialization More...
|
|
template<typename T > |
void | add (T &&value, std::function< bool()> &&validation) |
| adds a referenced field to the serial format for both serialization and deserialization along with a validation process to run before serialization, and/or after deserialization More...
|
|
template<typename T > |
packet & | operator+ (T &&value) |
| adds a field to the serial format for both serialization and deserialization (same as packet.add()) More...
|
|