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

JSON writer class. More...

#include <json.hpp>

Inheritance diagram for join::JsonWriter:
Collaboration diagram for join::JsonWriter:

Public Member Functions

 JsonWriter (std::ostream &document, size_t indentation=0)
 create instance.
 
 JsonWriter (const JsonWriter &other)=delete
 copy constructor.
 
JsonWriteroperator= (const JsonWriter &other)=delete
 copy assignment.
 
 JsonWriter (JsonWriter &&other)=delete
 move constructor.
 
JsonWriteroperator= (JsonWriter &&other)=delete
 move assignment.
 
virtual ~JsonWriter ()=default
 destroy instance.
 
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.
 
- Public Member Functions inherited from join::StreamWriter
 StreamWriter (std::ostream &document)
 create instance.
 
 StreamWriter (const StreamWriter &other)=delete
 Create the Writer instance by copy.
 
StreamWriteroperator= (const StreamWriter &other)=delete
 Assign the Writer instance by copy.
 
 StreamWriter (StreamWriter &&other)=delete
 Create the Writer instance by move.
 
StreamWriteroperator= (StreamWriter &&other)=delete
 Assign the Writer instance by move.
 
virtual ~StreamWriter ()=default
 Destroy the Writer instance.
 
virtual int serialize (const Value &value)
 Serialize data.
 
- Public 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 Member Functions

virtual void writeInt (int32_t value)
 write integer value.
 
virtual void writeUint (uint32_t value)
 write unsigned integer value.
 
virtual void writeInt64 (int64_t value)
 write 64 bits integer value.
 
virtual void writeUint64 (uint64_t value)
 write 64 bits unsigned integer value.
 
virtual void writeDouble (double value)
 write real value.
 
virtual int utf8Codepoint (std::string::const_iterator &cur, std::string::const_iterator &end, uint32_t &codepoint)
 get UTF8 codepoint.
 
virtual int writeEscaped (const std::string &value)
 escape string value.
 
void comma () noexcept
 write comma.
 
void indent () noexcept
 write indentation.
 
void space () noexcept
 write space.
 
void endLine () noexcept
 write end of line.
 
void array () noexcept
 add comma, go to line and indent if in array.
 
- Protected Member Functions inherited from join::StreamWriter
int setValue (const Value &value)
 set value.
 
virtual int setArray (const Array &array)
 set array value.
 
virtual int setObject (const Object &object)
 set object value.
 
void append (char data) noexcept
 append character to output stream in batch.
 
void append2 (const char *data) noexcept
 append 2-character literal to output stream in batch.
 
void append3 (const char *data) noexcept
 append 3-character literal to output stream in batch.
 
void append4 (const char *data) noexcept
 append 4-character literal to output stream in batch.
 
void append5 (const char *data) noexcept
 append 5-character literal to output stream in batch.
 
void append (const char *data, uint32_t size) noexcept
 append characters to output stream in batch.
 

Protected Attributes

std::stack< bool > _stack
 array stack.
 
size_t _indentation
 indentation.
 
std::string _tab
 tabulation.
 
bool _first = true
 is first element.
 
- Protected Attributes inherited from join::StreamWriter
std::streambuf * _out
 underlying output stream.
 

Detailed Description

JSON writer class.

Constructor & Destructor Documentation

◆ JsonWriter() [1/3]

join::JsonWriter::JsonWriter ( std::ostream & document,
size_t indentation = 0 )
inline

create instance.

Parameters
documentJSON document to create.
indentationnumber of characters used to indent JSON.

◆ JsonWriter() [2/3]

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

copy constructor.

Parameters
otherobject to copy.

◆ JsonWriter() [3/3]

join::JsonWriter::JsonWriter ( JsonWriter && other)
delete

move constructor.

Parameters
otherobject to move.

◆ ~JsonWriter()

virtual join::JsonWriter::~JsonWriter ( )
virtualdefault

destroy instance.

Member Function Documentation

◆ array()

void join::JsonWriter::array ( )
inlineprotectednoexcept

add comma, go to line and indent if in array.

◆ comma()

void join::JsonWriter::comma ( )
inlineprotectednoexcept

write comma.

◆ endLine()

void join::JsonWriter::endLine ( )
inlineprotectednoexcept

write end of line.

◆ indent()

void join::JsonWriter::indent ( )
inlineprotectednoexcept

write indentation.

◆ operator=() [1/2]

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

copy assignment.

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

◆ operator=() [2/2]

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

move assignment.

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

◆ setBool()

virtual int join::JsonWriter::setBool ( bool value)
inlineoverridevirtual

set boolean value.

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

Implements join::SaxHandler.

◆ setDouble()

virtual int join::JsonWriter::setDouble ( double value)
inlineoverridevirtual

set real value.

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

Implements join::SaxHandler.

Reimplemented in join::JsonCanonicalizer.

◆ setInt()

virtual int join::JsonWriter::setInt ( int32_t value)
inlineoverridevirtual

set integer value.

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

Implements join::SaxHandler.

◆ setInt64()

virtual int join::JsonWriter::setInt64 ( int64_t value)
inlineoverridevirtual

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::JsonWriter::setKey ( const std::string & key)
inlineoverridevirtual

set key.

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

Implements join::SaxHandler.

◆ setNull()

virtual int join::JsonWriter::setNull ( )
inlineoverridevirtual

set null value.

Returns
0 on success, -1 otherwise.

Implements join::SaxHandler.

◆ setString()

virtual int join::JsonWriter::setString ( const std::string & value)
inlineoverridevirtual

set string value.

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

Implements join::SaxHandler.

◆ setUint()

virtual int join::JsonWriter::setUint ( uint32_t value)
inlineoverridevirtual

set unsigned integer value.

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

Implements join::SaxHandler.

◆ setUint64()

virtual int join::JsonWriter::setUint64 ( uint64_t value)
inlineoverridevirtual

set unsigned 64 bits integer value.

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

Implements join::SaxHandler.

◆ space()

void join::JsonWriter::space ( )
inlineprotectednoexcept

write space.

◆ startArray()

virtual int join::JsonWriter::startArray ( uint32_t size = 0)
inlineoverridevirtual

start array.

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

Implements join::SaxHandler.

◆ startObject()

virtual int join::JsonWriter::startObject ( uint32_t size = 0)
inlineoverridevirtual

start object.

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

Implements join::SaxHandler.

◆ stopArray()

virtual int join::JsonWriter::stopArray ( )
inlineoverridevirtual

stop array.

Returns
0 on success, -1 otherwise.

Reimplemented from join::SaxHandler.

◆ stopObject()

virtual int join::JsonWriter::stopObject ( )
inlineoverridevirtual

stop object.

Returns
0 on success, -1 otherwise.

Reimplemented from join::SaxHandler.

◆ utf8Codepoint()

virtual int join::JsonWriter::utf8Codepoint ( std::string::const_iterator & cur,
std::string::const_iterator & end,
uint32_t & codepoint )
inlineprotectedvirtual

get UTF8 codepoint.

Parameters
curcurrent character.
endend of string.
codepointcalculated UTF8 codepoint.
Returns
0 on success, -1 otherwise.

◆ writeDouble()

virtual void join::JsonWriter::writeDouble ( double value)
inlineprotectedvirtual

write real value.

Parameters
valuereal value to write.

Reimplemented in join::JsonCanonicalizer.

◆ writeEscaped()

virtual int join::JsonWriter::writeEscaped ( const std::string & value)
inlineprotectedvirtual

escape string value.

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

◆ writeInt()

virtual void join::JsonWriter::writeInt ( int32_t value)
inlineprotectedvirtual

write integer value.

Parameters
valueinteger value to write.

◆ writeInt64()

virtual void join::JsonWriter::writeInt64 ( int64_t value)
inlineprotectedvirtual

write 64 bits integer value.

Parameters
value64 bits integer value to write.

◆ writeUint()

virtual void join::JsonWriter::writeUint ( uint32_t value)
inlineprotectedvirtual

write unsigned integer value.

Parameters
valueunsigned integer value to write.

◆ writeUint64()

virtual void join::JsonWriter::writeUint64 ( uint64_t value)
inlineprotectedvirtual

write 64 bits unsigned integer value.

Parameters
value64 bits unsigned integer value to write.

Member Data Documentation

◆ _first

bool join::JsonWriter::_first = true
protected

is first element.

◆ _indentation

size_t join::JsonWriter::_indentation
protected

indentation.

◆ _stack

std::stack<bool> join::JsonWriter::_stack
protected

array stack.

◆ _tab

std::string join::JsonWriter::_tab
protected

tabulation.


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