1 #ifndef _SERDES_FWD_DECLARATIONS_H_ 20 #define _SERDES_FWD_DECLARATIONS_H_ 22 #include <type_traits> 54 template <
typename T_array,
size_t N>
63 template <typename T_pointer, typename std::enable_if<std::is_pointer<T_pointer>::value,
int *>::type =
nullptr>
64 serdes::status_t store(T_pointer target_buffer,
size_t max_elements = ~
size_t(0),
size_t bit_offset = 0);
71 template <typename T_sized_pointer, typename std::enable_if<serdes::detail::is_sized_pointer<T_sized_pointer>::value,
int *>::type =
nullptr>
81 template <
typename T_array,
size_t N>
82 serdes::status_t load(
const T_array (&source_buffer)[N],
size_t max_elements = N,
size_t bit_offset = 0);
90 template <typename T_pointer, typename std::enable_if<std::is_pointer<T_pointer>::value,
int *>::type =
nullptr>
91 serdes::status_t load(
const T_pointer source_buffer,
size_t max_elements = ~
size_t(0),
size_t bit_offset = 0);
98 template <typename T_sized_pointer, typename std::enable_if<serdes::detail::is_sized_pointer<T_sized_pointer>::value,
int *>::type =
nullptr>
105 template <
typename T>
112 template <
typename T>
118 #endif // _SERDES_FWD_DECLARATIONS_H_ serdes::status_t store(T_array(&target_buffer)[N], size_t max_elements=N, size_t bit_offset=0)
[[serialize]] stores data into the target "sized" serial array according to the format() process ...
status_e
error status of serialization/deserialization process
Definition: serdes_errors.h:14
a serialization/deserialization helper class, with load, store, and stream operators ...
Definition: serdes.h:24
CppSerdes library namespace.
Definition: bitcpy_common.h:69
inheritable base class to allow format recording and application with no additional memory storage (e...
Definition: serdes_fwd_declarations.h:42
mode_e
the serdes mode of operation
Definition: serdes_errors.h:82
serdes::status_t operator>>(T &&value)
[[serialize]] stores the packet_base object into the passed serial data (same as store) ...
status returned after any serialization/deserialization process
Definition: serdes_errors.h:72
virtual void format(packet &)=0
override to declare the serdes process used in store() and load()
serdes::status_t load(const T_array(&source_buffer)[N], size_t max_elements=N, size_t bit_offset=0)
[[deserialize]] loads data from the source "sized" array according to the format() process ...
Defines sized_pointer, similar to std::array but with with size as a runtime constant.
serdes::status_t operator<<(T &&value)
[[deserialize]] loads packet_base data into the passed serial data (same as load) ...