join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
join::StreamReader Class Referenceabstract

stream deserializer abstract class. More...

#include <sax.hpp>

Inheritance diagram for join::StreamReader:
Collaboration diagram for join::StreamReader:

Public Member Functions

 StreamReader (Value &root)
 default constructor.
 
 StreamReader (const StreamReader &other)=delete
 copy constructor.
 
StreamReaderoperator= (const StreamReader &other)=delete
 copy assignment.
 
 StreamReader (StreamReader &&other)=delete
 move constructor.
 
StreamReaderoperator= (StreamReader &&other)=delete
 move assignment.
 
virtual ~StreamReader ()=default
 destroy instance.
 
virtual int deserialize (const char *document, size_t length)=0
 deserialize a document.
 
virtual int deserialize (const char *first, const char *last)=0
 deserialize a document.
 
virtual int deserialize (const std::string &document)=0
 deserialize a document.
 
virtual int deserialize (std::stringstream &document)=0
 deserialize a document.
 
virtual int deserialize (std::istringstream &document)=0
 deserialize a document.
 
virtual int deserialize (std::fstream &document)=0
 deserialize a document.
 
virtual int deserialize (std::ifstream &document)=0
 deserialize a document.
 
virtual int deserialize (std::iostream &document)=0
 deserialize a document.
 
virtual int deserialize (std::istream &document)=0
 deserialize a document.
 

Protected Member Functions

virtual int setNull () override
 set null value.
 
virtual int setBool (bool value) override
 set boolean value.
 
virtual int setInt (int32_t value) override
 set integer value.
 
virtual int setUint (uint32_t value) override
 set unsigned integer value.
 
virtual int setInt64 (int64_t value) override
 set 64 bits integer value.
 
virtual int setUint64 (uint64_t value) override
 set unsigned 64 bits integer value.
 
virtual int setDouble (double value) override
 set real value.
 
virtual int setString (const std::string &value) override
 set string value.
 
virtual int startArray (uint32_t size=0) override
 start array.
 
virtual int stopArray () override
 stop array.
 
virtual int startObject (uint32_t size=0) override
 start object.
 
virtual int setKey (const std::string &key) override
 set key.
 
virtual int stopObject () override
 stop object.
 
virtual int setValue (Value &&value)
 set value.
 
- Protected Member Functions inherited from join::SaxHandler
 SaxHandler ()=default
 default constructor.
 
 SaxHandler (const SaxHandler &other)=default
 copy constructor.
 
SaxHandleroperator= (const SaxHandler &other)=default
 copy assignment.
 
 SaxHandler (SaxHandler &&other)=default
 move constructor.
 
SaxHandleroperator= (SaxHandler &&other)=default
 move assignment.
 
virtual ~SaxHandler ()=default
 destroy instance.
 

Protected Attributes

std::stack< Value * > _stack
 stack.
 
std::string _curkey
 current key.
 
Value_root
 root.
 

Static Protected Attributes

static constexpr size_t _maxdepth = 19
 max stack depth.
 

Detailed Description

stream deserializer abstract class.

Constructor & Destructor Documentation

◆ StreamReader() [1/3]

join::StreamReader::StreamReader ( Value & root)
inline

default constructor.

Parameters
rootValue to write.

◆ StreamReader() [2/3]

join::StreamReader::StreamReader ( const StreamReader & other)
delete

copy constructor.

Parameters
otherobject to copy.

◆ StreamReader() [3/3]

join::StreamReader::StreamReader ( StreamReader && other)
delete

move constructor.

Parameters
otherobject to move.

◆ ~StreamReader()

virtual join::StreamReader::~StreamReader ( )
virtualdefault

destroy instance.

Member Function Documentation

◆ deserialize() [1/9]

virtual int join::StreamReader::deserialize ( const char * document,
size_t length )
pure virtual

deserialize a document.

Parameters
documentdocument to deserialize.
lengthThe length of the document to parse.
Returns
0 on success, -1 otherwise.

Implemented in join::JsonReader, join::JsonReader, and join::PackReader.

◆ deserialize() [2/9]

virtual int join::StreamReader::deserialize ( const char * first,
const char * last )
pure virtual

deserialize a document.

Parameters
firstThe first character of the document to parse.
lastThe last character of the document to parse.
Returns
0 on success, -1 otherwise.

Implemented in join::JsonReader, join::JsonReader, and join::PackReader.

◆ deserialize() [3/9]

virtual int join::StreamReader::deserialize ( const std::string & document)
pure virtual

deserialize a document.

Parameters
documentdocument to parse.
Returns
0 on success, -1 otherwise.

Implemented in join::JsonReader, join::JsonReader, and join::PackReader.

◆ deserialize() [4/9]

virtual int join::StreamReader::deserialize ( std::fstream & document)
pure virtual

deserialize a document.

Parameters
documentdocument to deserialize.
Returns
0 on success, -1 otherwise.

Implemented in join::JsonReader, join::JsonReader, and join::PackReader.

◆ deserialize() [5/9]

virtual int join::StreamReader::deserialize ( std::ifstream & document)
pure virtual

deserialize a document.

Parameters
documentdocument to deserialize.
Returns
0 on success, -1 otherwise.

Implemented in join::JsonReader, join::JsonReader, and join::PackReader.

◆ deserialize() [6/9]

virtual int join::StreamReader::deserialize ( std::iostream & document)
pure virtual

deserialize a document.

Parameters
documentdocument to deserialize.
Returns
0 on success, -1 otherwise.

Implemented in join::JsonReader, join::JsonReader, and join::PackReader.

◆ deserialize() [7/9]

virtual int join::StreamReader::deserialize ( std::istream & document)
pure virtual

deserialize a document.

Parameters
documentdocument to deserialize.
Returns
0 on success, -1 otherwise.

Implemented in join::JsonReader, join::JsonReader, and join::PackReader.

◆ deserialize() [8/9]

virtual int join::StreamReader::deserialize ( std::istringstream & document)
pure virtual

deserialize a document.

Parameters
documentdocument to deserialize.
Returns
0 on success, -1 otherwise.

Implemented in join::JsonReader, join::JsonReader, and join::PackReader.

◆ deserialize() [9/9]

virtual int join::StreamReader::deserialize ( std::stringstream & document)
pure virtual

deserialize a document.

Parameters
documentdocument to deserialize.
Returns
0 on success, -1 otherwise.

Implemented in join::JsonReader, join::JsonReader, and join::PackReader.

◆ operator=() [1/2]

StreamReader & join::StreamReader::operator= ( const StreamReader & other)
delete

copy assignment.

Parameters
otherobject to copy.
Returns
a reference of the current object.

◆ operator=() [2/2]

StreamReader & join::StreamReader::operator= ( StreamReader && other)
delete

move assignment.

Parameters
otherobject to move.
Returns
a reference of the current object.

◆ setBool()

virtual int join::StreamReader::setBool ( bool value)
inlineoverrideprotectedvirtual

set boolean value.

Parameters
valueboolean value to set.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setDouble()

virtual int join::StreamReader::setDouble ( double value)
inlineoverrideprotectedvirtual

set real value.

Parameters
valuereal value to set.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setInt()

virtual int join::StreamReader::setInt ( int32_t value)
inlineoverrideprotectedvirtual

set integer value.

Parameters
valueinteger value to set.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setInt64()

virtual int join::StreamReader::setInt64 ( int64_t value)
inlineoverrideprotectedvirtual

set 64 bits integer value.

Parameters
value64 bits integer value to set.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setKey()

virtual int join::StreamReader::setKey ( const std::string & key)
inlineoverrideprotectedvirtual

set key.

Parameters
keyobject key.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setNull()

virtual int join::StreamReader::setNull ( )
inlineoverrideprotectedvirtual

set null value.

Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setString()

virtual int join::StreamReader::setString ( const std::string & value)
inlineoverrideprotectedvirtual

set string value.

Parameters
valuestring value to set.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setUint()

virtual int join::StreamReader::setUint ( uint32_t value)
inlineoverrideprotectedvirtual

set unsigned integer value.

Parameters
valueunsigned integer value to set.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setUint64()

virtual int join::StreamReader::setUint64 ( uint64_t value)
inlineoverrideprotectedvirtual

set unsigned 64 bits integer value.

Parameters
valueunsigned 64 bits integer value to set.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setValue()

virtual int join::StreamReader::setValue ( Value && value)
inlineprotectedvirtual

set value.

Parameters
valuevalue to set.
Returns
0 on success, -1 otherwise.

◆ startArray()

virtual int join::StreamReader::startArray ( uint32_t size = 0)
inlineoverrideprotectedvirtual

start array.

Parameters
sizearray size.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ startObject()

virtual int join::StreamReader::startObject ( uint32_t size = 0)
inlineoverrideprotectedvirtual

start object.

Parameters
sizearray size.
Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ stopArray()

virtual int join::StreamReader::stopArray ( )
inlineoverrideprotectedvirtual

stop array.

Returns
0 on success, -1 otherwise.

Reimplemented from join::SaxHandler.

◆ stopObject()

virtual int join::StreamReader::stopObject ( )
inlineoverrideprotectedvirtual

stop object.

Returns
0 on success, -1 otherwise.

Reimplemented from join::SaxHandler.

Member Data Documentation

◆ _curkey

std::string join::StreamReader::_curkey
protected

current key.

◆ _maxdepth

size_t join::StreamReader::_maxdepth = 19
staticconstexprprotected

max stack depth.

◆ _root

Value& join::StreamReader::_root
protected

root.

◆ _stack

std::stack<Value*> join::StreamReader::_stack
protected

stack.


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