RInside Version 0.2.16
binary_stream_helpers Namespace Reference

Classes

struct  has_serialization_members
 
struct  has_serialization_members_cv
 
struct  has_serialization_members_cv< T, void_t< serialize_member_t< T >, deserialize_member_t< T > > >
 
struct  void_t_struct
 

Typedefs

template<typename... C>
using void_t = typename void_t_struct< C... >::type
 
template<typename T >
using serialize_member_t = decltype(std::declval< T & >().serialize(std::declval< BinaryStream & >()))
 
template<typename T >
using deserialize_member_t = decltype(T::deserialize(std::declval< BinaryStream & >()))
 

Functions

template<typename T >
std::enable_if< std::is_arithmetic< T >::value >::type stream_write (BinaryStream &stream, T &t)
 
template<typename T >
std::enable_if< has_typeid< T >::value &&std::is_class< T >::value &&has_serialization_members< T >::value >::type stream_write (BinaryStream &stream, T &t)
 
template<typename T >
std::enable_if< has_typeid< T >::value &&std::is_class< T >::value &&!has_serialization_members< T >::value >::type stream_write (BinaryStream &stream, T &t)
 
template<typename T >
std::enable_if< std::is_arithmetic< T >::value, T >::type stream_read (BinaryStream &stream)
 
template<typename T >
std::enable_if< has_typeid< T >::value &&std::is_class< T >::value &&has_serialization_members< T >::value, T >::type stream_read (BinaryStream &stream)
 
template<typename T >
std::enable_if< has_typeid< T >::value &&std::is_class< T >::value &&!has_serialization_members< T >::value, T >::type stream_read (BinaryStream &stream)
 

Typedef Documentation

◆ deserialize_member_t

template<typename T >
using binary_stream_helpers::deserialize_member_t = typedef decltype( T::deserialize( std::declval<BinaryStream&>() ) )

Definition at line 116 of file binarystream.h.

◆ serialize_member_t

template<typename T >
using binary_stream_helpers::serialize_member_t = typedef decltype( std::declval<T&>().serialize( std::declval<BinaryStream&>() ) )

Definition at line 113 of file binarystream.h.

◆ void_t

template<typename... C>
using binary_stream_helpers::void_t = typedef typename void_t_struct<C...>::type

Definition at line 107 of file binarystream.h.

Function Documentation

◆ stream_read() [1/3]

template<typename T >
std::enable_if< std::is_arithmetic<T>::value, T >::type binary_stream_helpers::stream_read ( BinaryStream stream)

Definition at line 155 of file binarystream.h.

References BinaryStream::read().

Here is the call graph for this function:

◆ stream_read() [2/3]

template<typename T >
std::enable_if< has_typeid<T>::value && std::is_class<T>::value && has_serialization_members<T>::value, T >::type binary_stream_helpers::stream_read ( BinaryStream stream)

Definition at line 163 of file binarystream.h.

◆ stream_read() [3/3]

template<typename T >
std::enable_if< has_typeid<T>::value && std::is_class<T>::value && !has_serialization_members<T>::value, T >::type binary_stream_helpers::stream_read ( BinaryStream stream)

Definition at line 169 of file binarystream.h.

◆ stream_write() [1/3]

template<typename T >
std::enable_if< std::is_arithmetic<T>::value >::type binary_stream_helpers::stream_write ( BinaryStream stream,
T &  t 
)

Definition at line 133 of file binarystream.h.

References BinaryStream::write().

Here is the call graph for this function:

◆ stream_write() [2/3]

template<typename T >
std::enable_if< has_typeid<T>::value && std::is_class<T>::value && has_serialization_members<T>::value >::type binary_stream_helpers::stream_write ( BinaryStream stream,
T &  t 
)

Definition at line 139 of file binarystream.h.

◆ stream_write() [3/3]

template<typename T >
std::enable_if< has_typeid<T>::value && std::is_class<T>::value && !has_serialization_members<T>::value >::type binary_stream_helpers::stream_write ( BinaryStream stream,
T &  t 
)

Definition at line 145 of file binarystream.h.