Quick Links:

bal | bbl | bdl | bsl

Public Member Functions

baljsn::Formatter Class Reference

#include <baljsn_formatter.h>

List of all members.

Public Member Functions

 Formatter (bsl::ostream &stream, bool usePrettyStyle=false, int initialIndentLevel=0, int spacesPerLevel=0, bslma::Allocator *basicAllocator=0)
 ~Formatter ()
void openObject ()
void closeObject ()
void openArray (bool formatAsEmptyArray=false)
void closeArray (bool formatAsEmptyArray=false)
int openMember (const bsl::string_view &name)
void putNullValue ()
template<class TYPE >
int putValue (const TYPE &value, const EncoderOptions *options=0)
void closeMember ()
void addArrayElementSeparator ()
int nestingDepth () const

Detailed Description

This class implements a formatter providing operations for rendering JSON text elements to an output stream (supplied at construction) according to a set of formatting options (also supplied at construction).

See Component baljsn_formatter


Constructor & Destructor Documentation

baljsn::Formatter::Formatter ( bsl::ostream &  stream,
bool  usePrettyStyle = false,
int  initialIndentLevel = 0,
int  spacesPerLevel = 0,
bslma::Allocator basicAllocator = 0 
)

Create a Formatter object using the specified stream. Optionally specify usePrettyStyle to inform the formatter whether the pretty encoding style should be used when writing data. If usePrettyStyle is not specified then the data is written in a compact style. If usePrettyStyle is specified, additionally specify initialIndentLevel and spacesPerLevel to provide the initial indentation level and spaces per level at which the data should be formatted. If initialIndentLevel or spacesPerLevel is not specified then an initial value of 0 is used for both parameters. If usePrettyStyle is false then initialIndentLevel and spacesPerLevel are both ignored. Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used.

baljsn::Formatter::~Formatter (  ) 

Destroy this object.


Member Function Documentation

void baljsn::Formatter::openObject (  ) 

Print onto the stream supplied at construction the sequence of characters designating the start of an object (referred to as an "object" in JSON).

void baljsn::Formatter::closeObject (  ) 

Print onto the stream supplied at construction the sequence of characters designating the end of an object (referred to as an "object" in JSON). The behavior is undefined unless this Formatter is currently formatting an object.

void baljsn::Formatter::openArray ( bool  formatAsEmptyArray = false  ) 

Print onto the stream supplied at construction the sequence of characters designating the start of an array (referred to as an "array" in JSON). Optionally specify formatAsEmptyArray denoting if the array being opened should be formatted as an empty array. If formatAsEmptyArray is not specified then the array being opened is formatted as an array having elements. Note that the formatting (and as a consequence the formatAsEmptyArray) is relevant only if this formatter encodes in the pretty style and is ignored otherwise.

void baljsn::Formatter::closeArray ( bool  formatAsEmptyArray = false  ) 

Print onto the stream supplied at construction the sequence of characters designating the end of an array (referred to as an "array" in JSON). Optionally specify formatAsEmptyArray denoting if the array being closed should be formatted as an empty array. If formatAsEmptyArray is not specified then the array being closed is formatted as an array having elements. The behavior is undefined unless this Formatter is currently formatting an array. Note that the formatting (and as a consequence the formatAsEmptyArray) is relevant only if this formatter encodes in the pretty style and is ignored otherwise.

int baljsn::Formatter::openMember ( const bsl::string_view &  name  ) 

Print onto the stream supplied at construction the sequence of characters designating the start of a member (referred to as a "name/value pair" in JSON) having the specified name. Return 0 on success and a non-zero value otherwise.

void baljsn::Formatter::putNullValue (  ) 

Print onto the stream supplied at construction the value corresponding to a null element.

template<class TYPE >
int baljsn::Formatter::putValue ( const TYPE &  value,
const EncoderOptions options = 0 
)

Print onto the stream supplied at construction the specified value. Optionally specify options according which value should be encoded. Return 0 on success and a non-zero value otherwise.

void baljsn::Formatter::closeMember (  ) 

Print onto the stream supplied at construction the sequence of characters designating the end of an member (referred to as a "name/value pair" in JSON). The behavior is undefined unless this Formatter is currently formatting a member.

void baljsn::Formatter::addArrayElementSeparator (  ) 

Print onto the stream supplied at construction the sequence of characters designating an array element separator (i.e., ,). The behavior is undefined unless this Formatter is currently formatting a member.

int baljsn::Formatter::nestingDepth (  )  const

Return the number of currently open nested objects or arrays.


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