roo_transport
API Documentation for roo_transport
Loading...
Searching...
No Matches
serialization.h File Reference
#include <memory>
#include <vector>
#include "roo_backport.h"
#include "roo_backport/byte.h"
#include "roo_backport/string_view.h"
#include "roo_io/data/read.h"
#include "roo_io/data/write.h"
#include "roo_io/memory/load.h"
#include "roo_io/memory/store.h"
#include "roo_transport/rpc/status.h"
Include dependency graph for serialization.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  roo_transport::Void
 
struct  roo_transport::NullSerialized
 
class  roo_transport::StaticSerialized< N >
 Serialized holder for small fixed-size payloads. More...
 
class  roo_transport::SimpleSerialized
 Serialized holder for variable-sized payloads stored on heap. More...
 
class  roo_transport::DynamicSerialized
 Mutable serialized buffer supporting append and random-position writes. More...
 
struct  roo_transport::IntoSerializer< T, Itr, S, typename >
 Default bridge implementing SerializeInto() via serialize(). More...
 
struct  roo_transport::IntoSerializer< T, Itr, Serializer< T >, decltype(std::declval< Serializer< T > >().serializeInto(std::declval< const T & >(), std::declval< Itr & >()), void())>
 Specialization using Serializer<T>::serializeInto() when available. More...
 
struct  roo_transport::Serializer< Void >
 Simple serializers/deserializers for basic types are provided below. More...
 
struct  roo_transport::Deserializer< Void >
 
struct  roo_transport::Serializer< bool >
 bool. More...
 
struct  roo_transport::Deserializer< bool >
 
struct  roo_transport::Serializer< int8_t >
 int8_t. More...
 
struct  roo_transport::Deserializer< int8_t >
 
struct  roo_transport::Serializer< uint8_t >
 uint8_t. More...
 
struct  roo_transport::Deserializer< uint8_t >
 
struct  roo_transport::Serializer< int16_t >
 int16_t. More...
 
struct  roo_transport::Deserializer< int16_t >
 
struct  roo_transport::Serializer< uint16_t >
 uint16_t. More...
 
struct  roo_transport::Deserializer< uint16_t >
 
struct  roo_transport::Serializer< int32_t >
 int32_t. More...
 
struct  roo_transport::Deserializer< int32_t >
 
struct  roo_transport::Serializer< uint32_t >
 uint32_t. More...
 
struct  roo_transport::Deserializer< uint32_t >
 
struct  roo_transport::Serializer< int64_t >
 int64_t. More...
 
struct  roo_transport::Deserializer< int64_t >
 
struct  roo_transport::Serializer< uint64_t >
 uint64_t. More...
 
struct  roo_transport::Deserializer< uint64_t >
 
class  roo_transport::SerializedByteArrayAdapter
 roo::string_view. More...
 
struct  roo_transport::Serializer< roo::string_view >
 
struct  roo_transport::Deserializer< roo::string_view >
 
struct  roo_transport::Serializer< std::pair< T1, T2 > >
 std::pair<T1, T2>. More...
 
struct  roo_transport::Deserializer< std::pair< T1, T2 > >
 
struct  roo_transport::Serializer< std::tuple< Types... > >
 
struct  roo_transport::Deserializer< std::tuple< Types... > >
 

Namespaces

namespace  roo_transport
 

Functions

template<typename T , typename Itr >
void roo_transport::SerializeInto (const T &val, Itr &output)
 
template<typename T , typename RandomItr >
void roo_transport::SerializeMemberInto (const T &val, RandomItr &result)
 Serializes nested member with 16-bit big-endian length prefix.
 
template<typename T >
constexpr RpcStatus roo_transport::DeserializeMember (const roo::byte *&data, size_t &len, T &result)
 
template<size_t index, typename RandomItr , typename... Types>
constexpr void roo_transport::SerializeTupleRecursive (const std::tuple< Types... > &t, RandomItr &result)
 std::tuple<Types...>.
 
template<size_t index, typename... Types>
constexpr RpcStatus roo_transport::DeserializeTupleRecursive (std::tuple< Types... > &t, const roo::byte *data, size_t len)