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

stream serializer abstract class. More...

#include <sax.hpp>

Inheritance diagram for join::StreamWriter:
Collaboration diagram for join::StreamWriter:

Public Member Functions

 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.
 
virtual int setNull ()=0
 set null value.
 
virtual int setBool (bool value)=0
 set boolean value.
 
virtual int setInt (int32_t value)=0
 set integer value.
 
virtual int setUint (uint32_t value)=0
 set unsigned integer value.
 
virtual int setInt64 (int64_t value)=0
 set 64 bits integer value.
 
virtual int setUint64 (uint64_t value)=0
 set unsigned 64 bits integer value.
 
virtual int setDouble (double value)=0
 set real value.
 
virtual int setString (const std::string &value)=0
 set string value.
 
virtual int startArray (uint32_t size=0)=0
 start array.
 
virtual int stopArray ()
 stop array.
 
virtual int startObject (uint32_t size=0)=0
 start object.
 
virtual int setKey (const std::string &key)=0
 set key.
 
virtual int stopObject ()
 stop object.
 

Protected Member Functions

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::streambuf * _out
 underlying output stream.
 

Detailed Description

stream serializer abstract class.

Constructor & Destructor Documentation

◆ StreamWriter() [1/3]

join::StreamWriter::StreamWriter ( std::ostream & document)
inline

create instance.

Parameters
documentdocument to create.

◆ StreamWriter() [2/3]

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

Create the Writer instance by copy.

Parameters
otherOther object to copy.

◆ StreamWriter() [3/3]

join::StreamWriter::StreamWriter ( StreamWriter && other)
delete

Create the Writer instance by move.

Parameters
otherOther object to move.

◆ ~StreamWriter()

virtual join::StreamWriter::~StreamWriter ( )
virtualdefault

Destroy the Writer instance.

Member Function Documentation

◆ append() [1/2]

void join::StreamWriter::append ( char data)
inlineprotectednoexcept

append character to output stream in batch.

Parameters
datadata to append to output stream.

◆ append() [2/2]

void join::StreamWriter::append ( const char * data,
uint32_t size )
inlineprotectednoexcept

append characters to output stream in batch.

Parameters
datadata to append to output stream.
sizedata size.

◆ append2()

void join::StreamWriter::append2 ( const char * data)
inlineprotectednoexcept

append 2-character literal to output stream in batch.

Parameters
datadata to append to output stream.

◆ append3()

void join::StreamWriter::append3 ( const char * data)
inlineprotectednoexcept

append 3-character literal to output stream in batch.

Parameters
datadata to append to output stream.

◆ append4()

void join::StreamWriter::append4 ( const char * data)
inlineprotectednoexcept

append 4-character literal to output stream in batch.

Parameters
datadata to append to output stream.

◆ append5()

void join::StreamWriter::append5 ( const char * data)
inlineprotectednoexcept

append 5-character literal to output stream in batch.

Parameters
datadata to append to output stream.

◆ operator=() [1/2]

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

Assign the Writer instance by copy.

Parameters
otherOther object to copy.

◆ operator=() [2/2]

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

Assign the Writer instance by move.

Parameters
otherOther object to move.

◆ serialize()

virtual int join::StreamWriter::serialize ( const Value & value)
inlinevirtual

Serialize data.

Parameters
valueValue to serialize.
Returns
0 on success, -1 otherwise.

◆ setArray()

virtual int join::StreamWriter::setArray ( const Array & array)
inlineprotectedvirtual

set array value.

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

◆ setObject()

virtual int join::StreamWriter::setObject ( const Object & object)
inlineprotectedvirtual

set object value.

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

Reimplemented in join::JsonCanonicalizer.

◆ setValue()

int join::StreamWriter::setValue ( const Value & value)
inlineprotected

set value.

Parameters
valueValue to write.
Returns
0 on success, -1 otherwise.

Member Data Documentation

◆ _out

std::streambuf* join::StreamWriter::_out
protected

underlying output stream.


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