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

message pack writer class. More...

#include <pack.hpp>

Public Member Functions

 PackWriter (std::ostream &document)
 create instance.
 
 PackWriter (const PackWriter &other)=delete
 copy constructor.
 
PackWriter & operator= (const PackWriter &other)=delete
 copy assignment.
 
 PackWriter (PackWriter &&other)=delete
 move constructor.
 
PackWriter & operator= (PackWriter &&other)=delete
 move assignment.
 
 ~PackWriter ()=default
 destroy instance.
 
int setNull ()
 set null value.
 
int setBool (bool value)
 set boolean value.
 
int setInt (int32_t value)
 set integer value.
 
int setUint (uint32_t value)
 set unsigned integer value.
 
int setInt64 (int64_t value)
 set 64 bits integer value.
 
int setUint64 (uint64_t value)
 set unsigned 64 bits integer value.
 
int setDouble (double value)
 set real value.
 
int setString (std::string_view value)
 set string value.
 
int startArray (uint32_t size)
 start array.
 
int stopArray ()
 stop array.
 
int startObject (uint32_t size)
 start object.
 
const Object & members (const Object &object) const noexcept
 get object members in writing order.
 
int setKey (std::nullptr_t key)
 set null key.
 
int setKey (bool key)
 set boolean key.
 
int setKey (int32_t key)
 set integer key.
 
int setKey (uint32_t key)
 set unsigned integer key.
 
int setKey (int64_t key)
 set 64 bits integer key.
 
int setKey (uint64_t key)
 set unsigned 64 bits integer key.
 
int setKey (double key)
 set real key.
 
int setKey (std::string_view key)
 set string key.
 
int setKey (const char *key)
 set string key.
 
int stopObject ()
 stop object.
 
void flush ()
 flush buffered data to output stream.
 
void reset () noexcept
 reset the writer state, discarding buffered data.
 

Protected Member Functions

void append (char data)
 append character to output stream in batch.
 
void append (const char *data, uint32_t size)
 append data to output stream in batch.
 
template<typename Type >
void pack (Type value)
 pack value into stream.
 
void endValue ()
 mark the end of a value, flushing the document once complete.
 

Protected Attributes

std::streambuf * _out
 underlying output stream.
 
char _buffer [1024] = {}
 output buffer.
 
size_t _size = 0
 output buffer size.
 
size_t _depth = 0
 number of open containers.
 

Detailed Description

message pack writer class.

Constructor & Destructor Documentation

◆ PackWriter() [1/3]

join::PackWriter::PackWriter ( std::ostream & document)
inlineexplicit

create instance.

Parameters
documentMessagePack document to create.

◆ PackWriter() [2/3]

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

copy constructor.

Parameters
otherobject to copy.

◆ PackWriter() [3/3]

join::PackWriter::PackWriter ( PackWriter && other)
delete

move constructor.

Parameters
otherobject to move.

◆ ~PackWriter()

join::PackWriter::~PackWriter ( )
default

destroy instance.

Member Function Documentation

◆ append() [1/2]

void join::PackWriter::append ( char data)
inlineprotected

append character to output stream in batch.

Parameters
datacharacter to append to output stream.

◆ append() [2/2]

void join::PackWriter::append ( const char * data,
uint32_t size )
inlineprotected

append data to output stream in batch.

Parameters
datadata to append to output stream.
sizedata size.

◆ endValue()

void join::PackWriter::endValue ( )
inlineprotected

mark the end of a value, flushing the document once complete.

◆ flush()

void join::PackWriter::flush ( )
inline

flush buffered data to output stream.

◆ members()

const Object & join::PackWriter::members ( const Object & object) const
inlinenoexcept

get object members in writing order.

Parameters
objectobject to write.
Returns
object members in insertion order.

◆ operator=() [1/2]

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

copy assignment.

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

◆ operator=() [2/2]

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

move assignment.

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

◆ pack()

template<typename Type >
void join::PackWriter::pack ( Type value)
inlineprotected

pack value into stream.

Parameters
valuevalue to pack.

◆ reset()

void join::PackWriter::reset ( )
inlinenoexcept

reset the writer state, discarding buffered data.

◆ setBool()

int join::PackWriter::setBool ( bool value)
inline

set boolean value.

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

◆ setDouble()

int join::PackWriter::setDouble ( double value)
inline

set real value.

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

◆ setInt()

int join::PackWriter::setInt ( int32_t value)
inline

set integer value.

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

◆ setInt64()

int join::PackWriter::setInt64 ( int64_t value)
inline

set 64 bits integer value.

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

◆ setKey() [1/9]

int join::PackWriter::setKey ( bool key)
inline

set boolean key.

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

◆ setKey() [2/9]

int join::PackWriter::setKey ( const char * key)
inline

set string key.

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

◆ setKey() [3/9]

int join::PackWriter::setKey ( double key)
inline

set real key.

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

◆ setKey() [4/9]

int join::PackWriter::setKey ( int32_t key)
inline

set integer key.

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

◆ setKey() [5/9]

int join::PackWriter::setKey ( int64_t key)
inline

set 64 bits integer key.

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

◆ setKey() [6/9]

int join::PackWriter::setKey ( std::nullptr_t key)
inline

set null key.

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

◆ setKey() [7/9]

int join::PackWriter::setKey ( std::string_view key)
inline

set string key.

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

◆ setKey() [8/9]

int join::PackWriter::setKey ( uint32_t key)
inline

set unsigned integer key.

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

◆ setKey() [9/9]

int join::PackWriter::setKey ( uint64_t key)
inline

set unsigned 64 bits integer key.

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

◆ setNull()

int join::PackWriter::setNull ( )
inline

set null value.

Returns
0 on success, -1 otherwise.

◆ setString()

int join::PackWriter::setString ( std::string_view value)
inline

set string value.

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

◆ setUint()

int join::PackWriter::setUint ( uint32_t value)
inline

set unsigned integer value.

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

◆ setUint64()

int join::PackWriter::setUint64 ( uint64_t value)
inline

set unsigned 64 bits integer value.

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

◆ startArray()

int join::PackWriter::startArray ( uint32_t size)
inline

start array.

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

◆ startObject()

int join::PackWriter::startObject ( uint32_t size)
inline

start object.

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

◆ stopArray()

int join::PackWriter::stopArray ( )
inline

stop array.

Returns
0 on success, -1 otherwise.

◆ stopObject()

int join::PackWriter::stopObject ( )
inline

stop object.

Returns
0 on success, -1 otherwise.

Member Data Documentation

◆ _buffer

char join::PackWriter::_buffer[1024] = {}
protected

output buffer.

◆ _depth

size_t join::PackWriter::_depth = 0
protected

number of open containers.

◆ _out

std::streambuf* join::PackWriter::_out
protected

underlying output stream.

◆ _size

size_t join::PackWriter::_size = 0
protected

output buffer size.


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