Classes | |
class | eagine::block_data_sink |
Serialization data sink backed by a pre-allocated memory block. More... | |
class | eagine::block_data_source |
Deserialization data source backed by a pre-allocated memory block. More... | |
struct | eagine::serializer_data_sink |
Abstract base class for serialization data sinks. More... | |
struct | eagine::deserializer_data_source |
Abstract base class for deserialization data sources. More... | |
class | eagine::istream_data_source |
Deserialization data source backed by an input stream. More... | |
class | eagine::ostream_data_sink |
Serialization data sink backed by an output stream. More... | |
class | eagine::packed_block_data_sink |
Packing serialization data sink backed by a pre-allocated memory block. More... | |
class | eagine::packed_block_data_source |
Unpacking deserialization data source backed by a pre-allocated memory block. More... | |
struct | eagine::deserializer_backend |
Interface for deserialization read backends. More... | |
class | eagine::common_deserializer_backend< Derived, Source > |
CRTP mixin implementing the common parts of deserializer backends. More... | |
class | eagine::string_serializer_backend |
Cross-platform implementation of serializer backend using ASCII-only strings. More... | |
class | eagine::string_deserializer_backend |
Cross-platform implementation of deserializer backend using ASCII-only strings. More... | |
struct | eagine::serializer_backend |
Interface for serialization write backends. More... | |
class | eagine::common_serializer_backend< Derived, Sink > |
CRTP mixin implementing the common parts of serializer backends. More... | |
class | eagine::serializer_backend_id< Base, Id > |
Base class partially implementing serializer and deserialized backends. More... | |
Typedefs | |
using | eagine::serialization_errors = bitfield< serialization_error_code > |
Alias for serialization error bitfield. More... | |
using | eagine::deserialization_errors = bitfield< deserialization_error_code > |
Alias for deserialization error bitfield. More... | |
template<typename T > | |
using | eagine::serialization_result = valid_if_indicated< T, serialization_errors, bool, false > |
Alias for result type of serialization operations. More... | |
template<typename T > | |
using | eagine::deserialization_result = valid_if_indicated< T, deserialization_errors, bool, false > |
Alias for result type of deserialization operations. More... | |
Functions | |
template<identifier_t SerializerId, typename T , typename Selector = default_selector_t> | |
constexpr auto | eagine::serialize_buffer_for (const T &inst, Selector sel={}) |
Returns a buffer large enough for the serialization of the specified instance. | |
template<typename T , typename Backend > | |
auto | eagine::deserialize (T &value, Backend &backend) -> std::enable_if_t< std::is_base_of_v< deserializer_backend, Backend >, deserialization_errors > |
Deserializes a value with the specified serialization backend. More... | |
template<typename T > | |
static auto | eagine::get_errors (const serialization_result< T > &result) noexcept -> serialization_errors |
Returns the error bitfield from a serialization result. | |
template<typename T > | |
static auto | eagine::get_errors (const deserialization_result< T > &result) noexcept -> deserialization_errors |
Returns the error bitfield from a deserialization result. | |
static auto | eagine::store_data_with_size (memory::const_block src, memory::block dst) noexcept -> memory::block |
Encodes the size of the source block into destination, copies data afterwards. More... | |
static auto | eagine::skip_data_with_size (memory::const_block src) noexcept -> span_size_t |
In a block starting with sub-block with size returns the size of the sub-block. More... | |
static auto | eagine::get_data_with_size (memory::block src) noexcept -> memory::block |
Extracts a sub-block from a larger mutable block with encoded sub-block size. More... | |
static auto | eagine::get_data_with_size (memory::const_block src) noexcept -> memory::const_block |
Extracts a sub-block from a larger const block with encoded sub-block size. More... | |
template<typename Function > | |
static void | eagine::for_each_data_with_size (memory::const_block src, Function function) noexcept |
In a larger block with sub-blocks with size, calls function on each sub-block. More... | |
template<typename T , typename Backend > | |
auto | eagine::serialize (T &value, Backend &backend) -> std::enable_if_t< std::is_base_of_v< serializer_backend, Backend >, serialization_errors > |
Serializes a value with the specified serialization backend. More... | |
using eagine::deserialization_errors = typedef bitfield<deserialization_error_code> |
Alias for deserialization error bitfield.
using eagine::deserialization_result = typedef valid_if_indicated<T, deserialization_errors, bool, false> |
Alias for result type of deserialization operations.
using eagine::serialization_errors = typedef bitfield<serialization_error_code> |
Alias for serialization error bitfield.
using eagine::serialization_result = typedef valid_if_indicated<T, serialization_errors, bool, false> |
Alias for result type of serialization operations.
|
strong |
Deserialization error code bits enumeration.
|
strong |
Serialization error code bits enumeration.
auto eagine::deserialize | ( | T & | value, |
Backend & | backend | ||
) | -> std::enable_if_t< std::is_base_of_v<deserializer_backend, Backend>, deserialization_errors> |
Deserializes a value with the specified serialization backend.
Referenced by eagine::msgbus::default_deserialize(), eagine::msgbus::default_deserialize_packed(), and eagine::msgbus::deserialize_message_header().
|
inlinestaticnoexcept |
In a larger block with sub-blocks with size, calls function on each sub-block.
|
inlinestaticnoexcept |
Extracts a sub-block from a larger mutable block with encoded sub-block size.
|
inlinestaticnoexcept |
Extracts a sub-block from a larger const block with encoded sub-block size.
auto eagine::serialize | ( | T & | value, |
Backend & | backend | ||
) | -> std::enable_if_t< std::is_base_of_v<serializer_backend, Backend>, serialization_errors> |
Serializes a value with the specified serialization backend.
Referenced by eagine::msgbus::default_serialize(), eagine::msgbus::default_serialize_packed(), and eagine::msgbus::serialize_message_header().
|
inlinestaticnoexcept |
In a block starting with sub-block with size returns the size of the sub-block.
Referenced by eagine::msgbus::stored_message::signature().
|
inlinestaticnoexcept |
Encodes the size of the source block into destination, copies data afterwards.