OGLplus  (0.59.0) a C++ wrapper for rendering APIs

eagine::common_deserializer_backend< Derived, Source > Class Template Reference

CRTP mixin implementing the common parts of deserializer backends. More...

#include <eagine/serialize/read_backend.hpp>

Public Member Functions

 common_deserializer_backend () noexcept=default
 Default constructor.
 
 common_deserializer_backend (Source &source) noexcept
 Construction from a reference to a Source.
 
auto set_source (Source &s) noexcept -> Derived &
 Sets a reference to a new Source object.
 
auto source () -> deserializer_data_source *final
 Returns a pointer to the associated data source, if any.
 
auto enum_as_string () -> bool override
 @brie Indicates if the backed stores enumerators as strings (or numeric values).
 
auto begin () -> result override
 Starts the deserialization of a potentially complex structured value.
 
auto read (span< bool > values, span_size_t &done) -> result override
 Reads boolean values, returns how many were done through second argument.
 
auto read (span< char > values, span_size_t &done) -> result override
 Reads character values, returns how many were done through second argument.
 
auto read (span< std::int8_t > values, span_size_t &done) -> result override
 Reads 8-bit int values, returns how many were done through second argument.
 
auto read (span< short > values, span_size_t &done) -> result override
 Reads short values, returns how many were done through second argument.
 
auto read (span< int > values, span_size_t &done) -> result override
 Reads int values, returns how many were done through second argument.
 
auto read (span< long > values, span_size_t &done) -> result override
 Reads long values, returns how many were done through second argument.
 
auto read (span< long long > values, span_size_t &done) -> result override
 Reads long long values, returns how many were done through second argument.
 
auto read (span< std::uint8_t > values, span_size_t &done) -> result override
 Reads 8-bit uint values, returns how many were done through second argument.
 
auto read (span< unsigned short > values, span_size_t &done) -> result override
 Reads ushort values, returns how many were done through second argument.
 
auto read (span< unsigned > values, span_size_t &done) -> result override
 Reads uint values, returns how many were done through second argument.
 
auto read (span< unsigned long > values, span_size_t &done) -> result override
 Reads ulong values, returns how many were done through second argument.
 
auto read (span< unsigned long long > values, span_size_t &done) -> result override
 Reads ulong long values, returns how many were done through second argument.
 
auto read (span< float > values, span_size_t &done) -> result override
 Reads float values, returns how many were done through second argument.
 
auto read (span< double > values, span_size_t &done) -> result override
 Reads double values, returns how many were done through second argument.
 
auto read (span< identifier > values, span_size_t &done) -> result override
 Reads identifier values, returns how many were done through second argument.
 
auto read (span< decl_name_storage > values, span_size_t &done) -> result override
 Reads decl_name values, returns how many were done through second argument.
 
auto read (span< std::string > values, span_size_t &done) -> result override
 Reads string values, returns how many were done through second argument.
 
auto begin_struct (span_size_t &) -> result override
 Begins the deserialization of a structure instance.
 
auto begin_member (string_view) -> result override
 Begins the deserialization of a structure data member.
 
auto finish_member (string_view) -> result override
 Finishes the deserialization of a structure data member.
 
auto finish_struct () -> result override
 Finishes the deserialization of a structure instance.
 
auto begin_list (span_size_t &) -> result override
 Begins the deserialization of a container instance.
 
auto begin_element (span_size_t) -> result override
 Begins the deserialization of a container element.
 
auto finish_element (span_size_t) -> result override
 Finishes the deserialization of a container element.
 
auto finish_list () -> result override
 Finishes the deserialization of a container instance.
 
auto finish () -> result override
 Finishes the deserialization of a potentially complex structured value.
 
- Public Member Functions inherited from eagine::deserializer_backend
virtual auto type_id () -> identifier=0
 Returns a descriptive identifier of the implementation.
 
- Public Member Functions inherited from eagine::interface< deserializer_backend >
constexpr interface (const interface &)=delete
 Not copyable.
 
auto operator= (interface &&)=delete
 Not move assignable.
 
auto operator= (const interface &)=delete
 Not copy assignable.
 

Additional Inherited Members

- Public Types inherited from eagine::deserializer_backend
using result = deserialization_errors
 Alias for the deserialization operations result type.
 
- Protected Member Functions inherited from eagine::interface< deserializer_backend >
constexpr interface () noexcept=default
 Default constructible by derived.
 
constexpr interface (interface &&) noexcept=default
 Move constructible by derived.
 

Detailed Description

template<typename Derived, typename Source = deserializer_data_source>
class eagine::common_deserializer_backend< Derived, Source >

CRTP mixin implementing the common parts of deserializer backends.

Template Parameters
Derivedthe derived backend implementation
Sourcethe data source type.

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

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).