Serialization without default constructibility.
More...
|
| template<class F > |
| std::vector< std::byte > | buffer (F &&f) |
| | Serialize into a buffer.
|
| |
| template<class T > |
| T | get (const std::byte *&p) |
| | Reconstruct an object, advancing past its serialized form.
|
| |
| template<class... TT> |
| auto | get_tuple (const std::byte *p, const std::byte *e=nullptr) |
| | Construct a tuple of objects.
|
| |
| template<class T , class S = typename std::vector<T>::size_type> |
| auto | get_vector (const std::byte *&p) |
| | Construct a std::vector from a size and then elements.
|
| |
| template<class... TT, class P > |
| void | put (P &p, const TT &... tt) |
| | Store objects and advance past their serialized form.
|
| |
| template<class... TT> |
| auto | put_tuple (const TT &... tt) |
| | Serialize a fixed set of objects into a buffer.
|
| |
| template<class... TT> |
| std::size_t | size (const TT &... tt) |
| | Compute the serialized size of a fixed set of objects.
|
| |
Serialization without default constructibility.
Supported types:
- any default-constructible, trivially-move-assignable, non-pointer type
- any type that supports the Legion return-value serialization interface
std::string
- any type with an appropriate specialization of
traits or convert
- any
std::pair, std::tuple, std::array, std::vector, std::set, std::map, std::unordered_map of a supported type
Contents are in flecsi::util::serial unless otherwise specified.
◆ put()
template<class... TT, class P >
| void put |
( |
P & | p, |
|
|
const TT &... | tt ) |
Store objects and advance past their serialized form.
- Template Parameters
-
| P | std::size_t for calculating sizes, or std::byte* for actual serialization |
- Parameters
-
| p | pointer or size |
| tt | objects |
◆ size()
template<class... TT>
| std::size_t size |
( |
const TT &... | tt | ) |
|
Compute the serialized size of a fixed set of objects.
◆ get()
template<class T >
| T get |
( |
const std::byte *& | p | ) |
|
Reconstruct an object, advancing past its serialized form.
◆ buffer()
template<class F >
| std::vector< std::byte > buffer |
( |
F && | f | ) |
|
Serialize into a buffer.
- Parameters
-
| f | a function that accepts an argument for put |
◆ put_tuple()
template<class... TT>
| auto put_tuple |
( |
const TT &... | tt | ) |
|
Serialize a fixed set of objects into a buffer.
Reconstruct with get_tuple.
◆ get_tuple()
template<class... TT>
| auto get_tuple |
( |
const std::byte * | p, |
|
|
const std::byte * | e = nullptr ) |
Construct a tuple of objects.
- Parameters
-
| e | pointer to end of representation, if known |
◆ get_vector()
template<class T , class S = typename std::vector<T>::size_type>
| auto get_vector |
( |
const std::byte *& | p | ) |
|
Construct a std::vector from a size and then elements.
- Template Parameters
-
- Warning
get<std::vector<T>> is not guaranteed to be equivalent.