libcaf  0.15.3
Public Member Functions | Protected Member Functions | List of all members
caf::stream_deserializer< Streambuf > Class Template Reference

Implements the deserializer interface with a binary serialization protocol. More...

#include <stream_deserializer.hpp>

Inheritance diagram for caf::stream_deserializer< Streambuf >:
caf::deserializer caf::data_processor< deserializer >

Public Member Functions

template<class... Ts>
 stream_deserializer (actor_system &sys, Ts &&...xs)
 
template<class... Ts>
 stream_deserializer (execution_unit *ctx, Ts &&...xs)
 
template<class S , class = typename std::enable_if< std::is_same< typename std::remove_reference<S>::type, typename std::remove_reference<Streambuf>::type >::value >::type>
 stream_deserializer (S &&sb)
 
error begin_object (uint16_t &typenr, std::string &name) override
 Begins processing of an object. More...
 
error end_object () override
 Ends processing of an object.
 
error begin_sequence (size_t &num_elements) override
 Begins processing of a sequence. More...
 
error end_sequence () override
 Ends processing of a sequence.
 
error apply_raw (size_t num_bytes, void *data) override
 Applies this processor to a raw block of data of size num_bytes.
 
- Public Member Functions inherited from caf::deserializer
 deserializer (actor_system &x)
 
 deserializer (execution_unit *x=nullptr)
 
- Public Member Functions inherited from caf::data_processor< deserializer >
 data_processor (const data_processor &)=delete
 
 data_processor (execution_unit *ctx=nullptr)
 
data_processoroperator= (const data_processor &)=delete
 
execution_unitcontext ()
 Returns the actor system associated to this data processor.
 
std::enable_if< std::is_floating_point< T >::value, error >::type apply (T &x)
 Applies this processor to an arithmetic type.
 
std::enable_if< std::is_integral< T >::value &&!std::is_same< bool, T >::value, error >::type apply (T &x)
 
error apply (std::string &x)
 
error apply (std::u16string &x)
 
error apply (std::u32string &x)
 
error apply (atom_constant< V > &x)
 
std::enable_if< std::is_enum< T >::value &&!detail::has_serialize< T >::value, error >::type apply (T &x)
 Serializes enums using the underlying type if no user-defined serialization is defined. More...
 
std::enable_if< std::is_empty< T >::value &&!detail::is_inspectable< deserializer, T >::value, error >::type apply (T &)
 Applies this processor to an empty type.
 
error apply (bool &x)
 
std::enable_if< detail::is_iterable< T >::value &&!detail::has_serialize< T >::value &&!detail::is_inspectable< deserializer, T >::value, error >::type apply (T &xs)
 Applies this processor to a sequence of values.
 
std::enable_if< detail::is_serializable< T >::value, error >::type apply (std::array< T, S > &xs)
 Applies this processor to an array.
 
std::enable_if< detail::is_serializable< T >::value, error >::type apply (T(&xs)[S])
 Applies this processor to an array.
 
std::enable_if< detail::is_serializable< typename std::remove_const< F >::type >::value &&detail::is_serializable< S >::value, error >::type apply (std::pair< F, S > &xs)
 
std::enable_if< detail::conjunction< detail::is_serializable< Ts >::value... >::value, error >::type apply (std::tuple< Ts... > &xs)
 
std::enable_if< !std::is_empty< T >::value &&detail::has_serialize< T >::value, error >::type apply (T &x)
 
std::enable_if< std::is_integral< Rep >::value, error >::type apply (std::chrono::duration< Rep, Period > &x)
 
std::enable_if< std::is_floating_point< Rep >::value, error >::type apply (std::chrono::duration< Rep, Period > &x)
 
error apply (std::chrono::time_point< std::chrono::system_clock, Duration > &t)
 
std::enable_if< detail::is_inspectable< deserializer, T >::value &&!detail::has_serialize< T >::value, decltype(inspect(std::declval< deserializer & >), std::declval< T & >))) >::type apply (T &x)
 
error consume_range (T &xs)
 
error consume_range_c (T &xs)
 Converts each element in xs to U before calling apply.
 
error fill_range (T &xs, size_t num_elements)
 
error fill_range_c (T &xs, size_t num_elements)
 Loads elements from type U before inserting to xs.
 
error operator() ()
 
error operator() (meta::save_callback_t< F > x, Ts &&...xs)
 
error operator() (meta::load_callback_t< F > x, Ts &&...xs)
 
error operator() (const meta::annotation &, Ts &&...xs)
 
std::enable_if< is_allowed_unsafe_message_type< T >::value, error >::type operator() (const T &, Ts &&...xs)
 
std::enable_if< !meta::is_annotation< T >::value &&!is_allowed_unsafe_message_type< T >::value, error >::type operator() (T &&x, Ts &&...xs)
 

Protected Member Functions

template<class T >
error varbyte_decode (T &x)
 
error apply_builtin (builtin type, void *val) override
 Applies this processor to a single builtin value.
 

Additional Inherited Members

- Public Types inherited from caf::deserializer
using super = data_processor< deserializer >
 
using is_saving = std::false_type
 
using is_loading = std::true_type
 
- Public Types inherited from caf::data_processor< deserializer >
enum  builtin
 List of builtin types for data processors as enum.
 
using result_type = error
 Return type for operator().
 
using builtin_t = detail::type_list< int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t, float, double, long double, std::string, std::u16string, std::u32string >
 List of builtin types for data processors.
 
- Static Public Member Functions inherited from caf::data_processor< deserializer >
static error apply_atom_constant (D &self, atom_constant< V > &)
 
static std::enable_if< D::reads_state &&!detail::is_byte_sequence< T >::value, error >::type apply_sequence (D &self, T &xs)
 
static std::enable_if< !D::reads_state &&!detail::is_byte_sequence< T >::value, error >::type apply_sequence (D &self, T &xs)
 
static std::enable_if< D::reads_state &&detail::is_byte_sequence< T >::value, error >::type apply_sequence (D &self, T &xs)
 
static std::enable_if< !D::reads_state &&detail::is_byte_sequence< T >::value, error >::type apply_sequence (D &self, T &xs)
 
- Static Public Attributes inherited from caf::deserializer
static constexpr bool reads_state = false
 
static constexpr bool writes_state = true
 

Detailed Description

template<class Streambuf>
class caf::stream_deserializer< Streambuf >

Implements the deserializer interface with a binary serialization protocol.

Member Function Documentation

template<class Streambuf >
error caf::stream_deserializer< Streambuf >::begin_object ( uint16_t &  typenr,
std::string &  name 
)
overridevirtual

Begins processing of an object.

Saves the type information to the underlying storage when in saving mode, otherwise extracts them and sets both arguments accordingly.

Implements caf::data_processor< deserializer >.

template<class Streambuf >
error caf::stream_deserializer< Streambuf >::begin_sequence ( size_t &  num)
overridevirtual

Begins processing of a sequence.

Saves the size to the underlying storage when in saving mode, otherwise sets num accordingly.

Implements caf::data_processor< deserializer >.


The documentation for this class was generated from the following file: