MySQL 9.1.0
Source Code Documentation
|
Interface for archives (file archive, byte vector archive, string archive etc.), available only to instances implementing Serializable interface and Archive interface. More...
#include <archive.h>
Public Member Functions | |
template<typename Type > | |
Archive_derived_type & | operator<< (Type &&arg) |
Ingests argument into this archive. More... | |
template<typename Type > | |
Archive_derived_type & | operator>> (Type &&arg) |
Reads argument from this archive. More... | |
decltype(auto) | get_raw_data () |
Function for the API user to access data in the archive. More... | |
std::size_t | get_size_written () const |
Returns archive size - size of data written to the archive. More... | |
virtual void | put_field_separator () |
This method needs to define field separator to be inserted after the field, note that some formats won't contain separators Used mainly for text formatters. More... | |
virtual void | put_entry_separator () |
This method needs to define field entry separator to be inserted after the field entry, note that some formats won't contain separators Used mainly for text formatters. More... | |
virtual void | put_level_separator () |
This method needs to define level separator to be inserted after the level, note that some formats won't contain separators Used mainly for text formatters. More... | |
virtual void | process_field_separator () |
This method needs to define how to process field separator during decoding. More... | |
virtual void | process_entry_separator () |
This method needs to define how to process field entry separator during decoding. More... | |
virtual void | process_level_separator () |
This method needs to define how to process level separator during decoding. More... | |
Static Public Member Functions | |
template<typename Type > | |
static std::size_t | get_size (Type &&arg) |
Function returns size of serialized argument. More... | |
template<typename Type > | |
static constexpr std::size_t | get_max_size () |
Function returns maximum size of the Type. More... | |
Protected Member Functions | |
const Archive_derived_type * | get_derived_const () |
Casts this to derived type. More... | |
Archive_derived_type * | get_derived () |
Casts this to derived type. More... | |
Field_id_type | peek_type_field_id () |
This method decodes field id, without moving stream positions. More... | |
template<class Field_type > | |
void | peek (Field_type &&field) |
Peeks selected field wrapper (reads data without updating read stream position) More... | |
void | seek_to (std::size_t num_pos) |
Moves the current read position to current position + size. More... | |
std::size_t | get_read_pos () const |
Gets current read pos. More... | |
bool | is_error () const |
bool | is_good () const |
const Serialization_error & | get_error () |
void | clear_error () |
virtual | ~Archive ()=default |
Destructor. More... | |
Protected Attributes | |
Serialization_error | m_error |
Holds information about error. More... | |
Friends | |
template<class Serializer_derived_current_type , class Archive_current_type > | |
class | Serializer |
Interface for archives (file archive, byte vector archive, string archive etc.), available only to instances implementing Serializable interface and Archive interface.
Archive is responsible for primitive types byte-level formatting and data storage. It also provides implementation of separation between serializable types, serializable type fields, separate entries in containers (repeated fields). Derived class should implement all methods of provided interface (except methods for error handling).
Archive_derived_type | Archive derived that is implementing Archive interface (CRTP) |
|
protectedvirtualdefault |
Destructor.
|
inlineprotected |
|
inlineprotected |
Casts this to derived type.
|
inlineprotected |
Casts this to derived type.
|
inlineprotected |
|
inlinestaticconstexpr |
Function returns maximum size of the Type.
Type | serialized type |
|
inline |
Function for the API user to access data in the archive.
|
inlineprotected |
Gets current read pos.
|
inlinestatic |
Function returns size of serialized argument.
Type | type of the argument |
[in] | arg | serialized argument |
|
inline |
Returns archive size - size of data written to the archive.
|
inlineprotected |
|
inlineprotected |
|
inline |
Ingests argument into this archive.
Type | type of the argument |
[in] | arg | Argument to read data from |
|
inline |
Reads argument from this archive.
Type | type of the argument |
[in] | arg | Argument to store data into |
|
inlineprotected |
Peeks selected field wrapper (reads data without updating read stream position)
|
inlineprotected |
This method decodes field id, without moving stream positions.
|
inlinevirtual |
This method needs to define how to process field entry separator during decoding.
Used mainly for text formatters
Each field may have a several entries (e.g. vector)
|
inlinevirtual |
This method needs to define how to process field separator during decoding.
Used mainly for text formatters
Field is defined a a single field in object of serializable class
|
inlinevirtual |
This method needs to define how to process level separator during decoding.
Used mainly for text formatters
Each field that is an object of serializable class creates a new level
|
inlinevirtual |
This method needs to define field entry separator to be inserted after the field entry, note that some formats won't contain separators Used mainly for text formatters.
Each field may have a several entries (e.g. vector)
Reimplemented in mysql::serialization::Archive_text.
|
inlinevirtual |
This method needs to define field separator to be inserted after the field, note that some formats won't contain separators Used mainly for text formatters.
Field is defined a a single field in object of serializable class
Reimplemented in mysql::serialization::Archive_text.
|
inlinevirtual |
This method needs to define level separator to be inserted after the level, note that some formats won't contain separators Used mainly for text formatters.
Each field that is an object of serializable class creates a new level
Reimplemented in mysql::serialization::Archive_text.
|
inlineprotected |
Moves the current read position to current position + size.
[in] | num_pos | Number of positions to be skipped |
|
friend |
|
protected |
Holds information about error.