C++ Actor Framework 1.0.0
|
Technology-independent deserialization interface. More...
#include <deserializer.hpp>
Public Types | |
using | super = load_inspector_base<deserializer> |
Public Member Functions | |
deserializer (actor_system &sys) noexcept | |
actor_system * | context () const noexcept |
bool | has_human_readable_format () const noexcept |
virtual bool | fetch_next_object_type (type_id_t &type)=0 |
Reads run-time-type information for the next object if available. | |
virtual bool | fetch_next_object_name (std::string_view &type_name) |
Reads run-time-type information for the next object if available. | |
bool | next_object_name_matches (std::string_view type_name) |
Convenience function for querying fetch_next_object_name comparing the result to type_name in one shot. | |
bool | assert_next_object_name (std::string_view type_name) |
Like next_object_name_matches , but sets an error on the deserializer on a mismatch. | |
virtual bool | begin_object (type_id_t type, std::string_view pretty_class_name)=0 |
Begins processing of an object, may perform a type check depending on the data format. | |
virtual bool | end_object ()=0 |
Ends processing of an object. | |
virtual bool | begin_field (std::string_view name)=0 |
virtual bool | begin_field (std::string_view, bool &is_present)=0 |
virtual bool | begin_field (std::string_view name, span< const type_id_t > types, size_t &index)=0 |
virtual bool | begin_field (std::string_view name, bool &is_present, span< const type_id_t > types, size_t &index)=0 |
virtual bool | end_field ()=0 |
virtual bool | begin_tuple (size_t size)=0 |
Begins processing of a fixed-size sequence. | |
virtual bool | end_tuple ()=0 |
Ends processing of a sequence. | |
virtual bool | begin_key_value_pair () |
Begins processing of a tuple with two elements, whereas the first element represents the key in an associative array. | |
virtual bool | end_key_value_pair () |
Ends processing of a key-value pair after both values were written. | |
virtual bool | begin_sequence (size_t &size)=0 |
Begins processing of a sequence. | |
virtual bool | end_sequence ()=0 |
Ends processing of a sequence. | |
virtual bool | begin_associative_array (size_t &size) |
Begins processing of an associative array (map). | |
virtual bool | end_associative_array () |
Ends processing of an associative array (map). | |
virtual bool | value (std::byte &x)=0 |
Reads x from the input. | |
virtual bool | value (bool &x)=0 |
Reads x from the input. | |
virtual bool | value (int8_t &)=0 |
Reads x from the input. | |
virtual bool | value (uint8_t &)=0 |
Reads x from the input. | |
virtual bool | value (int16_t &)=0 |
Reads x from the input. | |
virtual bool | value (uint16_t &)=0 |
Reads x from the input. | |
virtual bool | value (int32_t &)=0 |
Reads x from the input. | |
virtual bool | value (uint32_t &)=0 |
Reads x from the input. | |
virtual bool | value (int64_t &)=0 |
Reads x from the input. | |
virtual bool | value (uint64_t &)=0 |
Reads x from the input. | |
template<class T > | |
std::enable_if_t< std::is_integral_v< T >, bool > | value (T &x) noexcept |
Reads x from the input. | |
virtual bool | value (float &)=0 |
Reads x from the input. | |
virtual bool | value (double &)=0 |
Reads x from the input. | |
virtual bool | value (long double &)=0 |
Reads x from the input. | |
virtual bool | value (std::string &)=0 |
Reads x from the input. | |
virtual bool | value (std::u16string &)=0 |
Reads x from the input. | |
virtual bool | value (std::u32string &)=0 |
Reads x from the input. | |
virtual bool | value (span< std::byte > x)=0 |
Reads a byte sequence from the input. | |
virtual bool | list (std::vector< bool > &xs) |
Adds each boolean in xs to the output. | |
Protected Attributes | |
actor_system * | context_ = nullptr |
Provides access to the proxy_registry and to the actor_system. | |
bool | has_human_readable_format_ = false |
Configures whether client code should assume human-readable output. | |
Technology-independent deserialization interface.
|
virtual |
Begins processing of an associative array (map).
begin_sequence(size)
. Reimplemented in caf::config_value_reader, and caf::json_reader.
|
virtual |
Begins processing of a tuple with two elements, whereas the first element represents the key in an associative array.
begin_tuple(2)
. Reimplemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Begins processing of an object, may perform a type check depending on the data format.
type | 16-bit ID for known types, invalid_type_id otherwise. |
pretty_class_name | Either the output of type_name_or_anonymous or the optionally defined pretty name. |
Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Begins processing of a sequence.
Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Begins processing of a fixed-size sequence.
Implemented in caf::config_value_reader, and caf::json_reader.
|
virtual |
Ends processing of an associative array (map).
end_sequence()
. Reimplemented in caf::config_value_reader, and caf::json_reader.
|
virtual |
Ends processing of a key-value pair after both values were written.
end_tuple()
. Reimplemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Ends processing of an object.
Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Ends processing of a sequence.
Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Ends processing of a sequence.
Implemented in caf::config_value_reader, and caf::json_reader.
|
virtual |
Reads run-time-type information for the next object if available.
The default implementation calls fetch_next_object_type
and queries the CAF type name. However, implementations of the interface may retrieve the type name differently and the type name may not correspond to any type known to CAF. For example. the json_reader returns the content of the @type
field of the current object if available.
type_name
may point to an internal buffer that becomes invalid as soon as calling any other member function on the deserializer. Convert the type_name
to a string before storing it. Reimplemented in caf::json_reader.
|
pure virtual |
Reads run-time-type information for the next object if available.
Implemented in caf::config_value_reader, and caf::json_reader.
|
virtual |
Adds each boolean in xs
to the output.
Derived classes can override this member function to pack the booleans, for example to avoid using one byte for each value in a binary output format.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads a byte sequence from the input.
x | The byte sequence. |
sec::success
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
noexcept |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.
|
pure virtual |
Reads x
from the input.
x | A reference to a builtin type. |
true
on success, false
otherwise. Implemented in caf::config_value_reader, and caf::json_reader.