join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
join::PackReader Class Reference

message pack reader class. More...

#include <pack.hpp>

Inheritance diagram for join::PackReader:
Collaboration diagram for join::PackReader:

Public Member Functions

 PackReader (Value &root)
 default constructor.
 
 PackReader (const PackReader &other)=delete
 copy constructor.
 
PackReaderoperator= (const PackReader &other)=delete
 copy assignment.
 
 PackReader (PackReader &&other)=delete
 move constructor.
 
PackReaderoperator= (PackReader &&other)=delete
 move assignment.
 
virtual ~PackReader ()=default
 destroy instance.
 
int deserialize (const char *document, size_t length) override
 deserialize a document.
 
int deserialize (const char *first, const char *last) override
 deserialize a document.
 
int deserialize (const std::string &document) override
 deserialize a document.
 
int deserialize (std::stringstream &document) override
 deserialize a document.
 
int deserialize (std::istringstream &document) override
 deserialize a document.
 
int deserialize (std::fstream &document) override
 deserialize a document.
 
int deserialize (std::ifstream &document) override
 deserialize a document.
 
int deserialize (std::iostream &document) override
 deserialize a document.
 
int deserialize (std::istream &document) override
 deserialize a document.
 
- Public Member Functions inherited from join::StreamReader
 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.
 

Protected Member Functions

template<typename ViewType >
int read (ViewType &document)
 parse a document.
 
template<typename ViewType >
int readValue (ViewType &document)
 parse value.
 
template<typename ViewType >
int readNull (ViewType &document)
 parse a null value.
 
template<typename ViewType >
int readFalse (ViewType &document)
 parse a false value.
 
template<typename ViewType >
int readTrue (ViewType &document)
 parse a true value.
 
template<typename ViewType >
int readArray (ViewType &document)
 parse an array value.
 
template<typename ViewType >
int readObject (ViewType &document)
 parse an object value.
 
template<typename ViewType >
int readString (ViewType &document, bool isKey=false)
 parse a string value.
 
template<typename ViewType >
int readBin (ViewType &document)
 parse binary data.
 
template<typename ViewType >
int readNumber (ViewType &document)
 parse a number value.
 
constexpr bool isNull (uint8_t c)
 check if null.
 
constexpr bool isFalse (uint8_t c)
 check if false.
 
constexpr bool isTrue (uint8_t c)
 check if true.
 
constexpr bool isInt (uint8_t c)
 check if 32 bits integer.
 
constexpr bool isUint (uint8_t c)
 check if unsigned 32 bits integer.
 
constexpr bool isInt64 (uint8_t c)
 check if 64 bits integer.
 
constexpr bool isUint64 (uint8_t c)
 check if unsigned 64 bits integer.
 
constexpr bool isReal (uint8_t c)
 check if real.
 
constexpr bool isNumber (uint8_t c)
 check if number.
 
constexpr bool isString (uint8_t c)
 check if string.
 
constexpr bool isBin (uint8_t c)
 check if binary data.
 
constexpr bool isArray (uint8_t c)
 check if array.
 
constexpr bool isObject (uint8_t c)
 check if object.
 
- Protected Member Functions inherited from join::StreamReader
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.
 

Static Protected Member Functions

template<typename Type , typename ViewType >
static std::enable_if_t< std::is_arithmetic< Type >::value, Type > unpack (ViewType &document)
 unpack value from stream.
 

Additional Inherited Members

- Protected Attributes inherited from join::StreamReader
std::stack< Value * > _stack
 stack.
 
std::string _curkey
 current key.
 
Value_root
 root.
 
- Static Protected Attributes inherited from join::StreamReader
static constexpr size_t _maxdepth = 19
 max stack depth.
 

Detailed Description

message pack reader class.

Constructor & Destructor Documentation

◆ PackReader() [1/3]

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

default constructor.

Parameters
rootValue to write.

◆ PackReader() [2/3]

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

copy constructor.

Parameters
otherobject to copy.

◆ PackReader() [3/3]

join::PackReader::PackReader ( PackReader && other)
delete

move constructor.

Parameters
otherobject to move.

◆ ~PackReader()

virtual join::PackReader::~PackReader ( )
virtualdefault

destroy instance.

Member Function Documentation

◆ deserialize() [1/9]

int join::PackReader::deserialize ( const char * document,
size_t length )
inlineoverridevirtual

deserialize a document.

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

Implements join::StreamReader.

◆ deserialize() [2/9]

int join::PackReader::deserialize ( const char * first,
const char * last )
inlineoverridevirtual

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.

Implements join::StreamReader.

◆ deserialize() [3/9]

int join::PackReader::deserialize ( const std::string & document)
inlineoverridevirtual

deserialize a document.

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

Implements join::StreamReader.

◆ deserialize() [4/9]

int join::PackReader::deserialize ( std::fstream & document)
inlineoverridevirtual

deserialize a document.

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

Implements join::StreamReader.

◆ deserialize() [5/9]

int join::PackReader::deserialize ( std::ifstream & document)
inlineoverridevirtual

deserialize a document.

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

Implements join::StreamReader.

◆ deserialize() [6/9]

int join::PackReader::deserialize ( std::iostream & document)
inlineoverridevirtual

deserialize a document.

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

Implements join::StreamReader.

◆ deserialize() [7/9]

int join::PackReader::deserialize ( std::istream & document)
inlineoverridevirtual

deserialize a document.

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

Implements join::StreamReader.

◆ deserialize() [8/9]

int join::PackReader::deserialize ( std::istringstream & document)
inlineoverridevirtual

deserialize a document.

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

Implements join::StreamReader.

◆ deserialize() [9/9]

int join::PackReader::deserialize ( std::stringstream & document)
inlineoverridevirtual

deserialize a document.

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

Implements join::StreamReader.

◆ isArray()

bool join::PackReader::isArray ( uint8_t c)
inlineconstexprprotected

check if array.

Parameters
ccharacter to check.
Returns
true if array, false otherwise.

◆ isBin()

bool join::PackReader::isBin ( uint8_t c)
inlineconstexprprotected

check if binary data.

Parameters
ccharacter to check.
Returns
true if binary data, false otherwise.

◆ isFalse()

bool join::PackReader::isFalse ( uint8_t c)
inlineconstexprprotected

check if false.

Parameters
ccharacter to check.
Returns
true if false, false otherwise.

◆ isInt()

bool join::PackReader::isInt ( uint8_t c)
inlineconstexprprotected

check if 32 bits integer.

Parameters
ccharacter to check.
Returns
true if 32 bits integer, false otherwise.

◆ isInt64()

bool join::PackReader::isInt64 ( uint8_t c)
inlineconstexprprotected

check if 64 bits integer.

Parameters
ccharacter to check.
Returns
true if 64 bits integer, false otherwise.

◆ isNull()

bool join::PackReader::isNull ( uint8_t c)
inlineconstexprprotected

check if null.

Parameters
ccharacter to check.
Returns
true if null, false otherwise.

◆ isNumber()

bool join::PackReader::isNumber ( uint8_t c)
inlineconstexprprotected

check if number.

Parameters
ccharacter to check.
Returns
true if number, false otherwise.

◆ isObject()

bool join::PackReader::isObject ( uint8_t c)
inlineconstexprprotected

check if object.

Parameters
ccharacter to check.
Returns
true if object, false otherwise.

◆ isReal()

bool join::PackReader::isReal ( uint8_t c)
inlineconstexprprotected

check if real.

Parameters
ccharacter to check.
Returns
true if real, false otherwise.

◆ isString()

bool join::PackReader::isString ( uint8_t c)
inlineconstexprprotected

check if string.

Parameters
ccharacter to check.
Returns
true if string, false otherwise.

◆ isTrue()

bool join::PackReader::isTrue ( uint8_t c)
inlineconstexprprotected

check if true.

Parameters
ccharacter to check.
Returns
true if true, false otherwise.

◆ isUint()

bool join::PackReader::isUint ( uint8_t c)
inlineconstexprprotected

check if unsigned 32 bits integer.

Parameters
ccharacter to check.
Returns
true if unsigned 32 bits integer, false otherwise.

◆ isUint64()

bool join::PackReader::isUint64 ( uint8_t c)
inlineconstexprprotected

check if unsigned 64 bits integer.

Parameters
ccharacter to check.
Returns
true if unsigned 64 bits integer, false otherwise.

◆ operator=() [1/2]

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

copy assignment.

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

◆ operator=() [2/2]

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

move assignment.

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

◆ read()

template<typename ViewType >
int join::PackReader::read ( ViewType & document)
inlineprotected

parse a document.

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

◆ readArray()

template<typename ViewType >
int join::PackReader::readArray ( ViewType & document)
inlineprotected

parse an array value.

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

◆ readBin()

template<typename ViewType >
int join::PackReader::readBin ( ViewType & document)
inlineprotected

parse binary data.

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

◆ readFalse()

template<typename ViewType >
int join::PackReader::readFalse ( ViewType & document)
inlineprotected

parse a false value.

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

◆ readNull()

template<typename ViewType >
int join::PackReader::readNull ( ViewType & document)
inlineprotected

parse a null value.

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

◆ readNumber()

template<typename ViewType >
int join::PackReader::readNumber ( ViewType & document)
inlineprotected

parse a number value.

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

◆ readObject()

template<typename ViewType >
int join::PackReader::readObject ( ViewType & document)
inlineprotected

parse an object value.

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

◆ readString()

template<typename ViewType >
int join::PackReader::readString ( ViewType & document,
bool isKey = false )
inlineprotected

parse a string value.

Parameters
documentdocument to parse.
isKeyindicate whether the string to parse is a key or not.
Returns
0 on success, -1 otherwise.

◆ readTrue()

template<typename ViewType >
int join::PackReader::readTrue ( ViewType & document)
inlineprotected

parse a true value.

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

◆ readValue()

template<typename ViewType >
int join::PackReader::readValue ( ViewType & document)
inlineprotected

parse value.

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

◆ unpack()

template<typename Type , typename ViewType >
static std::enable_if_t< std::is_arithmetic< Type >::value, Type > join::PackReader::unpack ( ViewType & document)
inlinestaticprotected

unpack value from stream.

Parameters
documentdocument to parse.
Returns
unpacked value.

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