Classes | |
| struct | ByteRepresentable |
| A non-POD type which wishes to mark itself byte representable should extend this class. More... | |
| struct | Bytes |
| struct | ContextDeleter |
| struct | ContextDeleter< void > |
| struct | DeserializationManager |
| The manager for any RemoteDeserializationContexts. More... | |
| struct | dsr_info |
| struct | is_list |
| struct | is_list< std::list< T > > |
| struct | is_map |
| struct | is_map< std::map< K, V > > |
| struct | is_pair |
| struct | is_pair< std::pair< T, U > > |
| struct | is_string |
| struct | is_string< const std::string > |
| struct | is_string< std::string > |
| struct | marshalled |
| The "marshalled" type is a wrapper for already-serialized types;. More... | |
| struct | RemoteDeserializationContext |
| If a class which implements ByteRepresentable requires a context in order to correctly deserialize, that context should be represented as a class that extends RemoteDeserializationContext. More... | |
Typedefs | |
| template<typename T > | |
| using | context_ptr = std::unique_ptr< T, ContextDeleter< T > > |
| using | RemoteDeserializationContext_p = RemoteDeserializationContext * |
| using | RemoteDeserialization_v = std::vector< RemoteDeserializationContext_p > |
Functions | |
| template<typename T , restrict2(std::is_pod< T >::value) > | |
| auto | bytes_size (const T &) |
| Just calls sizeof(T) More... | |
| std::size_t | bytes_size (const ByteRepresentable &b) |
| calls b.bytes_size() when b is a ByteRepresentable; calls sizeof(decay_t<decltype(b)>) when b is a POD; custom logic is implemented for some STL types. More... | |
| std::size_t | bytes_size (const std::string &b) |
| effectively strlen(). More... | |
| template<typename... T> | |
| std::size_t | bytes_size (const std::tuple< T... > &t) |
| template<typename T , typename V > | |
| std::size_t | bytes_size (const std::pair< T, V > &pair) |
| sums the size of both pair elements More... | |
| std::size_t | bytes_size (const std::vector< bool > &v) |
| all of the elements of this vector, plus one int for the number of elements. More... | |
| template<typename T > | |
| std::size_t | bytes_size (const std::vector< T > &v) |
| template<typename T > | |
| std::size_t | bytes_size (const std::list< T > &list) |
| Sums the size of all elements of this list, plus one int for the number of elements. More... | |
| template<typename T > | |
| std::size_t | bytes_size (const std::set< T > &s) |
| All the elements of the set, plus one int for the number of elements. More... | |
| template<typename K , typename V > | |
| std::size_t | bytes_size (const std::map< K, V > &m) |
| Sums the size of each key and value in the map, plus one int for the number of entries. More... | |
| template<typename... T> | |
| std::size_t | bytes_size_helper (const T &... t) |
| Sums the size of each element of the tuple. More... | |
| template<typename F , typename BR , typename... Args> | |
| std::enable_if_t< std::is_pod< BR >::value > | post_object (const F &f, const BR &br, Args &&... args) |
| In-place serialization is also sometimes possible. More... | |
| void | post_object (const std::function< void(char const *const, std::size_t)> &f, const ByteRepresentable &br) |
| std::size_t | to_bytes (const ByteRepresentable &b, char *v) |
| calls b.to_bytes(v) when b is a ByteRepresentable; calls std::memcpy() when b is POD. More... | |
| std::size_t | to_bytes (const std::string &b, char *v) |
| extracts the C string (char*) equivalent to this std::string and stores it in v More... | |
| template<typename T > | |
| std::enable_if_t< std::is_base_of< ByteRepresentable CMA T >::value, std::unique_ptr< T > > | from_bytes (DeserializationManager *ctx, char const *v) |
| Calls T::from_bytes(ctx,v) when T is a ByteRepresentable. More... | |
| template<typename T > | |
| std::enable_if_t< std::is_pod< T >::value, std::unique_ptr< std::decay_t< T > > > | from_bytes (DeserializationManager *, char const *v) |
| Calls T::from_bytes(ctx,v) when T is a ByteRepresentable. More... | |
| template<typename T > | |
| std::enable_if_t< std::is_base_of< ByteRepresentable CMA std::decay_t< T > >::value, context_ptr< T > > | from_bytes_noalloc (DeserializationManager *ctx, const char *v, context_ptr< std::decay_t< T >>=context_ptr< std::decay_t< T >>{}) |
| Calls T::from_bytes_noalloc(ctx,v) when T is a ByteRepresentable. More... | |
| template<typename T > | |
| std::enable_if_t< std::is_pod< T >::value, context_ptr< std::decay_t< T > > > | from_bytes_noalloc (DeserializationManager *, char *v) |
| Calls T::from_bytes_noalloc(ctx,v) when T is a ByteRepresentable. More... | |
| template<typename T > | |
| std::enable_if_t< std::is_pod< T >::value, context_ptr< const std::decay_t< T > > > | from_bytes_noalloc (DeserializationManager *, char const *const v, context_ptr< T >=context_ptr< T >{}) |
| template<typename T , typename F > | |
| auto | deserialize_and_run (DeserializationManager *dsm, char *v, const F &fun) |
| Calls mutils::from_bytes_noalloc<T>(ctx,v), dereferences the result, and passes it to fun. More... | |
| void | post_object (const std::function< void(char const *const, std::size_t)> &f, const std::string &str) |
| template<typename T , typename V > | |
| void | post_object (const std::function< void(char const *const, std::size_t)> &f, const std::pair< T, V > &pair) |
| template<typename... T> | |
| void | post_object_helper (const std::function< void(char const *const, std::size_t)> &f, const T &... t) |
| template<typename... T> | |
| void | post_object (const std::function< void(char const *const, std::size_t)> &f, const std::tuple< T... > &t) |
| void | post_object (const std::function< void(char const *const, std::size_t)> &f, const std::vector< bool > &vec) |
| template<typename T > | |
| void | post_object (const std::function< void(char const *const, std::size_t)> &f, const std::vector< T > &vec) |
| template<typename T > | |
| void | post_object (const std::function< void(char const *const, std::size_t)> &f, const std::list< T > &list) |
| template<typename T > | |
| void | post_object (const std::function< void(char const *const, std::size_t)> &f, const std::set< T > &s) |
| template<typename K , typename V > | |
| void | post_object (const std::function< void(char const *const, std::size_t)> &f, const std::map< K, V > &map) |
| template<typename T , restrict(std::is_pod< T >::value) > | |
| std::size_t | to_bytes (const T &t, char *v) |
| Special to_bytes for POD types, which just uses memcpy. More... | |
| std::size_t | to_bytes (const std::vector< bool > &vec, char *v) |
| template<typename T > | |
| std::size_t | to_bytes (const std::vector< T > &vec, char *v) |
| template<typename T > | |
| std::size_t | to_bytes (const std::list< T > &list, char *buffer) |
| template<typename T , typename V > | |
| std::size_t | to_bytes (const std::pair< T, V > &pair, char *buffer) |
| template<typename... T> | |
| std::size_t | to_bytes (const std::tuple< T... > &tuple, char *buffer) |
| template<typename T > | |
| std::size_t | to_bytes (const std::set< T > &s, char *_v) |
| template<typename K , typename V > | |
| std::size_t | to_bytes (const std::map< K, V > &m, char *buffer) |
| template<typename T > | |
| std::unique_ptr< type_check< std::is_integral, T > > | from_string (DeserializationManager *, char const *v, std::size_t length) |
| template<typename T > | |
| std::unique_ptr< type_check< std::is_floating_point, T > > | from_string (DeserializationManager *, char const *v, std::size_t length) |
| template<typename T > | |
| std::unique_ptr< type_check< is_string, T > > | from_string (DeserializationManager *, char const *v, std::size_t length) |
| template<typename T > | |
| std::enable_if_t< std::is_pod< T >::value, context_ptr< std::decay_t< T > > > | from_bytes_noalloc (DeserializationManager *, char *v, context_ptr< T >=context_ptr< T >{}) |
| template<typename T > | |
| std::unique_ptr< type_check< is_string, T > > | from_bytes (DeserializationManager *, char const *v) |
| template<typename T > | |
| context_ptr< type_check< is_string, T > > | from_bytes_noalloc (DeserializationManager *, char const *v, context_ptr< T >=context_ptr< T >{}) |
| template<typename T > | |
| std::unique_ptr< type_check< is_set, T > > | from_bytes (DeserializationManager *ctx, const char *_v) |
| template<typename T > | |
| context_ptr< type_check< is_set, T > > | from_bytes_noalloc (DeserializationManager *ctx, char const *v, context_ptr< T >=context_ptr< T >{}) |
| template<typename T > | |
| std::unique_ptr< type_check< is_pair, T > > | from_bytes (DeserializationManager *ctx, const char *v) |
| template<typename L > | |
| std::unique_ptr< type_check< is_list, L > > | from_bytes (DeserializationManager *ctx, const char *buffer) |
| template<typename T > | |
| context_ptr< type_check< is_pair, T > > | from_bytes_noalloc (DeserializationManager *ctx, char const *v, context_ptr< T >=context_ptr< T >{}) |
| template<typename T > | |
| std::unique_ptr< T > | boolvec_from_bytes (DeserializationManager *ctx, char const *v) |
| template<typename TupleType , std::size_t N> | |
| auto | from_bytes_helper (DeserializationManager *ctx, char const *v) |
| template<typename T > | |
| std::unique_ptr< type_check< is_tuple, T > > | from_bytes (DeserializationManager *ctx, char const *v) |
| template<typename T > | |
| std::enable_if_t< is_vector< T >::value, std::unique_ptr< T > > | from_bytes (DeserializationManager *ctx, char const *v) |
| template<typename T > | |
| context_ptr< type_check< is_vector, T > > | from_bytes_noalloc (DeserializationManager *ctx, char const *v, context_ptr< T >=context_ptr< T >{}) |
| template<typename T > | |
| std::enable_if_t< is_map< T >::value, std::unique_ptr< T > > | from_bytes (DeserializationManager *ctx, char const *buffer) |
| template<typename T > | |
| context_ptr< type_check< is_map, T > > | from_bytes_noalloc (DeserializationManager *ctx, char const *v, context_ptr< T >=context_ptr< T >{}) |
| std::size_t | to_bytes_v (char *) |
| For Serializing and Deserializing many objects at once. More... | |
| template<typename T , typename... Rest> | |
| std::size_t | to_bytes_v (char *buf, const T &first, const Rest &... rest) |
| std::size_t | from_bytes_v (DeserializationManager *, char const *const) |
| template<typename T , typename... Rest> | |
| std::size_t | from_bytes_v (DeserializationManager *dsm, char const *const buf, std::unique_ptr< T > &first, Rest &... rest) |
| std::size_t | from_bytes_noalloc_v (DeserializationManager *, char const *const) |
| template<typename T , typename... Rest> | |
| std::size_t | from_bytes_noalloc_v_nc (DeserializationManager *dsm, char *buf, context_ptr< T > &first, context_ptr< Rest > &... rest) |
| template<typename T , typename... Rest> | |
| std::size_t | from_bytes_noalloc_v (DeserializationManager *dsm, char *buf, context_ptr< T > &first, context_ptr< Rest > &... rest) |
| template<typename T , typename... Rest> | |
| std::size_t | from_bytes_noalloc_v (DeserializationManager *dsm, char const *const buf, context_ptr< const T > &first, context_ptr< const Rest > &... rest) |
| template<typename F , typename R , typename... Args> | |
| auto | deserialize_and_run (DeserializationManager *dsm, char const *const v, const F &fun, std::function< R(Args...)> const *const) |
| template<typename F > | |
| auto | deserialize_and_run (DeserializationManager *dsm, char const *const v, const F &fun) |
| std::function< void(char const *const, std::size_t)> | post_to_buffer (std::size_t &index, char *dest_buf) |
Variables | |
| std::function< void(char const *const, std::size_t)> | post_to_buffer (std::size_t &index, char *dest_buf) |
| Serialization is also implemented for the following STL types: vector pair string set. More... | |
| struct mutils::dsr_info |
Definition at line 954 of file SerializationSupport.hpp.
| Class Members | ||
|---|---|---|
| time_point | start_time | |
| nanoseconds | to_callfunc | |
| nanoseconds | to_exit | |
| using mutils::context_ptr = typedef std::unique_ptr<T,ContextDeleter<T> > |
Definition at line 20 of file context_ptr.hpp.
| using mutils::RemoteDeserialization_v = typedef std::vector<RemoteDeserializationContext_p> |
Definition at line 121 of file SerializationSupport.hpp.
| using mutils::RemoteDeserializationContext_p = typedef RemoteDeserializationContext* |
Definition at line 116 of file SerializationSupport.hpp.
| std::unique_ptr<T> mutils::boolvec_from_bytes | ( | DeserializationManager * | ctx, |
| char const * | v | ||
| ) |
| auto mutils::bytes_size | ( | const T & | ) |
Just calls sizeof(T)
Definition at line 201 of file SerializationSupport.hpp.
| std::size_t mutils::bytes_size | ( | const ByteRepresentable & | b | ) |
calls b.bytes_size() when b is a ByteRepresentable; calls sizeof(decay_t<decltype(b)>) when b is a POD; custom logic is implemented for some STL types.
Definition at line 11 of file SerializationSupport.cpp.
| std::size_t mutils::bytes_size | ( | const std::string & | b | ) |
effectively strlen().
Definition at line 20 of file SerializationSupport.cpp.
| std::size_t mutils::bytes_size | ( | const std::tuple< T... > & | t | ) |
Definition at line 299 of file SerializationSupport.hpp.
| std::size_t mutils::bytes_size | ( | const std::pair< T, V > & | pair | ) |
sums the size of both pair elements
Definition at line 224 of file SerializationSupport.hpp.
| std::size_t mutils::bytes_size | ( | const std::vector< bool > & | v | ) |
all of the elements of this vector, plus one int for the number of elements.
| std::size_t mutils::bytes_size | ( | const std::vector< T > & | v | ) |
Definition at line 234 of file SerializationSupport.hpp.
| std::size_t mutils::bytes_size | ( | const std::list< T > & | list | ) |
Sums the size of all elements of this list, plus one int for the number of elements.
Definition at line 254 of file SerializationSupport.hpp.
| std::size_t mutils::bytes_size | ( | const std::set< T > & | s | ) |
All the elements of the set, plus one int for the number of elements.
Definition at line 269 of file SerializationSupport.hpp.
| std::size_t mutils::bytes_size | ( | const std::map< K, V > & | m | ) |
Sums the size of each key and value in the map, plus one int for the number of entries.
Definition at line 282 of file SerializationSupport.hpp.
| std::size_t mutils::bytes_size_helper | ( | const T &... | t | ) |
Sums the size of each element of the tuple.
Definition at line 295 of file SerializationSupport.hpp.
| auto mutils::deserialize_and_run | ( | DeserializationManager * | dsm, |
| char * | v, | ||
| const F & | fun | ||
| ) |
Calls mutils::from_bytes_noalloc<T>(ctx,v), dereferences the result, and passes it to fun.
Returns whatever fun returns. Memory safe, assuming fun doesn't do something stupid.
| auto mutils::deserialize_and_run | ( | DeserializationManager * | dsm, |
| char const *const | v, | ||
| const F & | fun, | ||
| std::function< R(Args...)> const * | const | ||
| ) |
Definition at line 966 of file SerializationSupport.hpp.
| auto mutils::deserialize_and_run | ( | DeserializationManager * | dsm, |
| char const *const | v, | ||
| const F & | fun | ||
| ) |
Definition at line 1020 of file SerializationSupport.hpp.
| std::enable_if_t<std::is_base_of<ByteRepresentable CMA T>::value, std::unique_ptr<T> > mutils::from_bytes | ( | DeserializationManager * | ctx, |
| char const * | v | ||
| ) |
Calls T::from_bytes(ctx,v) when T is a ByteRepresentable.
uses std::memcpy() when T is a POD. custom logic is implemented for some STL types.
Definition at line 356 of file SerializationSupport.hpp.
| std::enable_if_t< std::is_pod< T >::value, std::unique_ptr< std::decay_t< T > > > mutils::from_bytes | ( | DeserializationManager * | , |
| char const * | v | ||
| ) |
Calls T::from_bytes(ctx,v) when T is a ByteRepresentable.
uses std::memcpy() when T is a POD. custom logic is implemented for some STL types.
Definition at line 684 of file SerializationSupport.hpp.
| std::unique_ptr<type_check<is_string, T> > mutils::from_bytes | ( | DeserializationManager * | , |
| char const * | v | ||
| ) |
Definition at line 739 of file SerializationSupport.hpp.
| std::unique_ptr<type_check<is_set, T> > mutils::from_bytes | ( | DeserializationManager * | ctx, |
| const char * | _v | ||
| ) |
Definition at line 754 of file SerializationSupport.hpp.
| std::unique_ptr<type_check<is_pair, T> > mutils::from_bytes | ( | DeserializationManager * | ctx, |
| const char * | v | ||
| ) |
Definition at line 775 of file SerializationSupport.hpp.
| std::unique_ptr<type_check<is_list, L> > mutils::from_bytes | ( | DeserializationManager * | ctx, |
| const char * | buffer | ||
| ) |
Definition at line 785 of file SerializationSupport.hpp.
| std::unique_ptr<type_check<is_tuple, T> > mutils::from_bytes | ( | DeserializationManager * | ctx, |
| char const * | v | ||
| ) |
Definition at line 823 of file SerializationSupport.hpp.
| std::enable_if_t<is_vector<T>::value, std::unique_ptr<T> > mutils::from_bytes | ( | DeserializationManager * | ctx, |
| char const * | v | ||
| ) |
Definition at line 830 of file SerializationSupport.hpp.
| std::enable_if_t<is_map<T>::value, std::unique_ptr<T> > mutils::from_bytes | ( | DeserializationManager * | ctx, |
| char const * | buffer | ||
| ) |
Definition at line 874 of file SerializationSupport.hpp.
| auto mutils::from_bytes_helper | ( | DeserializationManager * | ctx, |
| char const * | v | ||
| ) |
Definition at line 811 of file SerializationSupport.hpp.
| std::enable_if_t< std::is_base_of< ByteRepresentable CMA std::decay_t< T > >::value, context_ptr< T > > mutils::from_bytes_noalloc | ( | DeserializationManager * | ctx, |
| const char * | v, | ||
| context_ptr< std::decay_t< T >> | = context_ptr<std::decay_t<T>>{} |
||
| ) |
Calls T::from_bytes_noalloc(ctx,v) when T is a ByteRepresentable.
returns raw pointer when T is a POD custom logic is implemented for some STL types.
Definition at line 377 of file SerializationSupport.hpp.
| std::enable_if_t<std::is_pod<T>::value, context_ptr<std::decay_t<T> > > mutils::from_bytes_noalloc | ( | DeserializationManager * | , |
| char * | v | ||
| ) |
Calls T::from_bytes_noalloc(ctx,v) when T is a ByteRepresentable.
returns raw pointer when T is a POD custom logic is implemented for some STL types.
| std::enable_if_t< std::is_pod< T >::value, context_ptr< const std::decay_t< T > > > mutils::from_bytes_noalloc | ( | DeserializationManager * | , |
| char const *const | v, | ||
| context_ptr< T > | = context_ptr<T>{} |
||
| ) |
Definition at line 704 of file SerializationSupport.hpp.
| std::enable_if_t<std::is_pod<T>::value, context_ptr<std::decay_t<T> > > mutils::from_bytes_noalloc | ( | DeserializationManager * | , |
| char * | v, | ||
| context_ptr< T > | = context_ptr<T>{} |
||
| ) |
Definition at line 696 of file SerializationSupport.hpp.
| context_ptr<type_check<is_string, T> > mutils::from_bytes_noalloc | ( | DeserializationManager * | , |
| char const * | v, | ||
| context_ptr< T > | = context_ptr<T>{} |
||
| ) |
Definition at line 747 of file SerializationSupport.hpp.
| context_ptr<type_check<is_set, T> > mutils::from_bytes_noalloc | ( | DeserializationManager * | ctx, |
| char const * | v, | ||
| context_ptr< T > | = context_ptr<T>{} |
||
| ) |
Definition at line 769 of file SerializationSupport.hpp.
| context_ptr<type_check<is_pair, T> > mutils::from_bytes_noalloc | ( | DeserializationManager * | ctx, |
| char const * | v, | ||
| context_ptr< T > | = context_ptr<T>{} |
||
| ) |
Definition at line 801 of file SerializationSupport.hpp.
| context_ptr<type_check<is_vector, T> > mutils::from_bytes_noalloc | ( | DeserializationManager * | ctx, |
| char const * | v, | ||
| context_ptr< T > | = context_ptr<T>{} |
||
| ) |
Definition at line 867 of file SerializationSupport.hpp.
| context_ptr<type_check<is_map, T> > mutils::from_bytes_noalloc | ( | DeserializationManager * | ctx, |
| char const * | v, | ||
| context_ptr< T > | = context_ptr<T>{} |
||
| ) |
Definition at line 893 of file SerializationSupport.hpp.
| std::size_t mutils::from_bytes_noalloc_v | ( | DeserializationManager * | , |
| char const * const | |||
| ) |
Definition at line 58 of file SerializationSupport.cpp.
| std::size_t mutils::from_bytes_noalloc_v | ( | DeserializationManager * | dsm, |
| char * | buf, | ||
| context_ptr< T > & | first, | ||
| context_ptr< Rest > &... | rest | ||
| ) |
Definition at line 935 of file SerializationSupport.hpp.
| std::size_t mutils::from_bytes_noalloc_v | ( | DeserializationManager * | dsm, |
| char const *const | buf, | ||
| context_ptr< const T > & | first, | ||
| context_ptr< const Rest > &... | rest | ||
| ) |
Definition at line 942 of file SerializationSupport.hpp.
| std::size_t mutils::from_bytes_noalloc_v_nc | ( | DeserializationManager * | dsm, |
| char * | buf, | ||
| context_ptr< T > & | first, | ||
| context_ptr< Rest > &... | rest | ||
| ) |
Definition at line 926 of file SerializationSupport.hpp.
| std::size_t mutils::from_bytes_v | ( | DeserializationManager * | , |
| char const * const | |||
| ) |
Definition at line 54 of file SerializationSupport.cpp.
| std::size_t mutils::from_bytes_v | ( | DeserializationManager * | dsm, |
| char const *const | buf, | ||
| std::unique_ptr< T > & | first, | ||
| Rest &... | rest | ||
| ) |
Definition at line 916 of file SerializationSupport.hpp.
| std::unique_ptr<type_check<std::is_integral, T> > mutils::from_string | ( | DeserializationManager * | , |
| char const * | v, | ||
| std::size_t | length | ||
| ) |
Definition at line 656 of file SerializationSupport.hpp.
| std::unique_ptr<type_check<std::is_floating_point, T> > mutils::from_string | ( | DeserializationManager * | , |
| char const * | v, | ||
| std::size_t | length | ||
| ) |
Definition at line 662 of file SerializationSupport.hpp.
| std::unique_ptr<type_check<is_string, T> > mutils::from_string | ( | DeserializationManager * | , |
| char const * | v, | ||
| std::size_t | length | ||
| ) |
Definition at line 677 of file SerializationSupport.hpp.
| std::enable_if_t<std::is_pod<BR>::value> mutils::post_object | ( | const F & | f, |
| const BR & | br, | ||
| Args &&... | args | ||
| ) |
In-place serialization is also sometimes possible.
This will take a function that expects buffers to be posted, and will post the object (potentially in multiple buffers) via repeated calls to the function
Definition at line 310 of file SerializationSupport.hpp.
| void mutils::post_object | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const ByteRepresentable & | br | ||
| ) |
Definition at line 42 of file SerializationSupport.cpp.
| void mutils::post_object | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const std::string & | str | ||
| ) |
Definition at line 46 of file SerializationSupport.cpp.
| void mutils::post_object | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const std::pair< T, V > & | pair | ||
| ) |
Definition at line 484 of file SerializationSupport.hpp.
| void mutils::post_object | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const std::tuple< T... > & | t | ||
| ) |
Definition at line 498 of file SerializationSupport.hpp.
| void mutils::post_object | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const std::vector< bool > & | vec | ||
| ) |
| void mutils::post_object | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const std::vector< T > & | vec | ||
| ) |
Definition at line 511 of file SerializationSupport.hpp.
| void mutils::post_object | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const std::list< T > & | list | ||
| ) |
Definition at line 526 of file SerializationSupport.hpp.
| void mutils::post_object | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const std::set< T > & | s | ||
| ) |
Definition at line 536 of file SerializationSupport.hpp.
| void mutils::post_object | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const std::map< K, V > & | map | ||
| ) |
Definition at line 546 of file SerializationSupport.hpp.
| void mutils::post_object_helper | ( | const std::function< void(char const *const, std::size_t)> & | f, |
| const T &... | t | ||
| ) |
Definition at line 491 of file SerializationSupport.hpp.
| std::function<void(char const* const, std::size_t)> mutils::post_to_buffer | ( | std::size_t & | index, |
| char * | dest_buf | ||
| ) |
Definition at line 35 of file SerializationSupport.cpp.
| std::size_t mutils::to_bytes | ( | const ByteRepresentable & | b, |
| char * | v | ||
| ) |
calls b.to_bytes(v) when b is a ByteRepresentable; calls std::memcpy() when b is POD.
Custom logic is implemented for some STL types. When ubuntu gets GCC5.0 or better, this will also work if b is trivially copyable.
Definition at line 7 of file SerializationSupport.cpp.
| std::size_t mutils::to_bytes | ( | const std::string & | b, |
| char * | v | ||
| ) |
extracts the C string (char*) equivalent to this std::string and stores it in v
Definition at line 15 of file SerializationSupport.cpp.
| std::size_t mutils::to_bytes | ( | const T & | t, |
| char * | v | ||
| ) |
Special to_bytes for POD types, which just uses memcpy.
Definition at line 566 of file SerializationSupport.hpp.
| std::size_t mutils::to_bytes | ( | const std::vector< bool > & | vec, |
| char * | v | ||
| ) |
| std::size_t mutils::to_bytes | ( | const std::vector< T > & | vec, |
| char * | v | ||
| ) |
Definition at line 576 of file SerializationSupport.hpp.
| std::size_t mutils::to_bytes | ( | const std::list< T > & | list, |
| char * | buffer | ||
| ) |
Definition at line 584 of file SerializationSupport.hpp.
| std::size_t mutils::to_bytes | ( | const std::pair< T, V > & | pair, |
| char * | buffer | ||
| ) |
Definition at line 592 of file SerializationSupport.hpp.
| std::size_t mutils::to_bytes | ( | const std::tuple< T... > & | tuple, |
| char * | buffer | ||
| ) |
Definition at line 599 of file SerializationSupport.hpp.
| std::size_t mutils::to_bytes | ( | const std::set< T > & | s, |
| char * | _v | ||
| ) |
Definition at line 606 of file SerializationSupport.hpp.
| std::size_t mutils::to_bytes | ( | const std::map< K, V > & | m, |
| char * | buffer | ||
| ) |
Definition at line 614 of file SerializationSupport.hpp.
| std::size_t mutils::to_bytes_v | ( | char * | ) |
For Serializing and Deserializing many objects at once.
The deserialization expects unique_ptr references; this is important! Also the buffer is at the beginning! This is important.
Definition at line 50 of file SerializationSupport.cpp.
| std::size_t mutils::to_bytes_v | ( | char * | buf, |
| const T & | first, | ||
| const Rest &... | rest | ||
| ) |
Definition at line 908 of file SerializationSupport.hpp.
| std::function<void(char const* const, std::size_t)> mutils::post_to_buffer(std::size_t &index, char *dest_buf) |
Serialization is also implemented for the following STL types: vector pair string set.
Constructs a buffer-consuming function that will copy its input to the provided destination buffer at the specified index. The created function can be used as an input to post_object to make post_object serialize the object to a buffer.
| index | The offset within dest_buf at which the function should copy inputs |
| dest_buf | The buffer that should receive bytes read by the function |
Definition at line 476 of file SerializationSupport.hpp.
1.8.13