MySQL 8.4.2
Source Code Documentation
mysql::serialization::Archive_text Class Reference

Archive implementation based on stringstream. More...

#include <archive_text.h>

Inheritance diagram for mysql::serialization::Archive_text:
[legend]

Public Member Functions

template<typename Field_type >
Archive_textoperator<< (Field_type &&arg)
 Ingests argument into this archive. More...
 
template<typename Field_type >
Archive_textoperator>> (Field_type &&arg)
 Reads argument from this archive. More...
 
std::string 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...
 
void put_field_separator () override
 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...
 
void put_entry_separator () override
 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...
 
void put_level_separator () override
 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...
 
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...
 
- Public Member Functions inherited from mysql::serialization::Archive< Archive_text >
Archive_textoperator<< (Type &&arg)
 Ingests argument into this archive. More...
 
Archive_textoperator>> (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 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 T , Field_size S>
static std::size_t get_size (Field_wrapper< T, S > &&arg)
 Function returns size of serialized argument. More...
 
template<typename T , Field_size S>
static constexpr std::size_t get_max_size ()
 Function returns size of serialized argument. More...
 
- Static Public Member Functions inherited from mysql::serialization::Archive< Archive_text >
static std::size_t get_size (Type &&arg)
 Function returns size of serialized argument. More...
 
static constexpr std::size_t get_max_size ()
 Function returns maximum size of the Type. More...
 

Private Attributes

std::stringstream m_stream
 Internal data stream. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mysql::serialization::Archive< Archive_text >
const Archive_textget_derived_const ()
 Casts this to derived type. More...
 
Archive_textget_derived ()
 Casts this to derived type. More...
 
Field_id_type peek_type_field_id ()
 This method decodes field id, without moving stream positions. More...
 
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_errorget_error ()
 
void clear_error ()
 
virtual ~Archive ()=default
 Destructor. More...
 
- Protected Attributes inherited from mysql::serialization::Archive< Archive_text >
Serialization_error m_error
 Holds information about error. More...
 

Detailed Description

Archive implementation based on stringstream.

Note
Does not provide backward or forward compatibility, used only for printing text, debug internally

Member Function Documentation

◆ get_max_size()

template<typename T , Field_size S>
static constexpr std::size_t mysql::serialization::Archive_text::get_max_size ( )
inlinestaticconstexpr

Function returns size of serialized argument.

Template Parameters
Typetype of the argument
Parameters
[in]argserialized argument
Returns
size of serialized argument
Note
To be implemented in Archive_derived_type

◆ get_raw_data()

std::string mysql::serialization::Archive_text::get_raw_data ( )

Function for the API user to access data in the archive.

Returns
Archive data, defined in the Archive (e.g. pointer to bytes ...)
Note
To be implemented in Archive_derived_type

◆ get_read_pos()

std::size_t mysql::serialization::Archive_text::get_read_pos ( ) const
inline

Gets current read pos.

Returns
Current read pos
Note
To be implemented in Archive_derived_type

◆ get_size()

template<typename T , Field_size S>
static std::size_t mysql::serialization::Archive_text::get_size ( Field_wrapper< T, S > &&  arg)
inlinestatic

Function returns size of serialized argument.

Template Parameters
Typetype of the argument
Parameters
[in]argserialized argument
Returns
size of serialized argument
Note
To be implemented in Archive_derived_type

◆ get_size_written()

std::size_t mysql::serialization::Archive_text::get_size_written ( ) const
inline

Returns archive size - size of data written to the archive.

Returns
archive size - size of data written to the archive
Note
To be implemented in Archive_derived_type

◆ operator<<()

template<typename Field_type >
Archive_text & mysql::serialization::Archive_text::operator<< ( Field_type &&  arg)

Ingests argument into this archive.

Template Parameters
Typetype of the argument
Parameters
[in]argArgument to read data from
Returns
This archive reference
Note
To be implemented in Archive_derived_type

◆ operator>>()

template<typename Field_type >
Archive_text & mysql::serialization::Archive_text::operator>> ( Field_type &&  arg)

Reads argument from this archive.

Template Parameters
Typetype of the argument
Parameters
[in]argArgument to store data into
Returns
This archive reference
Note
To be implemented in Archive_derived_type

◆ peek()

template<class Field_type >
void mysql::serialization::Archive_text::peek ( Field_type &&  field)

Peeks selected field wrapper (reads data without updating read stream position)

Note
To be implemented in Archive_derived_type

◆ put_entry_separator()

void mysql::serialization::Archive_text::put_entry_separator ( )
overridevirtual

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 from mysql::serialization::Archive< Archive_text >.

◆ put_field_separator()

void mysql::serialization::Archive_text::put_field_separator ( )
overridevirtual

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 from mysql::serialization::Archive< Archive_text >.

◆ put_level_separator()

void mysql::serialization::Archive_text::put_level_separator ( )
overridevirtual

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 from mysql::serialization::Archive< Archive_text >.

◆ seek_to()

void mysql::serialization::Archive_text::seek_to ( std::size_t  num_pos)
inline

Moves the current read position to current position + size.

Parameters
[in]num_posNumber of positions to be skipped
Note
To be implemented in Archive_derived_type

Member Data Documentation

◆ m_stream

std::stringstream mysql::serialization::Archive_text::m_stream
private

Internal data stream.


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