Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags > Class Template Reference

Writer with indentation and spacing. More...

#include <fwd.h>

Inheritance diagram for PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >:
Inheritance graph
[legend]

Public Types

typedef Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags > Base
 
typedef Base::Ch Ch
 
- Public Types inherited from Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >
typedef SourceEncoding::Ch Ch
 

Public Member Functions

 PrettyWriter (OutputStream &os, StackAllocator *allocator=0, size_t levelDepth=Base::kDefaultLevelDepth)
 Constructor. More...
 
 PrettyWriter (StackAllocator *allocator=0, size_t levelDepth=Base::kDefaultLevelDepth)
 
bool RawValue (const Ch *json, size_t length, Type type)
 Write a raw JSON value. More...
 
PrettyWriterSetFormatOptions (PrettyFormatOptions options)
 Set pretty writer formatting options. More...
 
PrettyWriterSetIndent (Ch indentChar, unsigned indentCharCount)
 Set custom indentation. More...
 
Implementation of Handler
See also
Handler
bool Null ()
 
bool Bool (bool b)
 
bool Int (int i)
 
bool Uint (unsigned u)
 
bool Int64 (int64_t i64)
 
bool Uint64 (uint64_t u64)
 
bool Double (double d)
 
bool RawNumber (const Ch *str, SizeType length, bool copy=false)
 
bool String (const Ch *str, SizeType length, bool copy=false)
 
bool StartObject ()
 
bool Key (const Ch *str, SizeType length, bool copy=false)
 
bool EndObject (SizeType memberCount=0)
 
bool StartArray ()
 
bool EndArray (SizeType memberCount=0)
 
Convenience extensions
bool String (const Ch *str)
 Simpler but slower overload. More...
 
bool Key (const Ch *str)
 
- Public Member Functions inherited from Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >
void Flush ()
 Flush the output stream. More...
 
int GetMaxDecimalPlaces () const
 
bool IsComplete () const
 Checks whether the output is a complete JSON. More...
 
bool RawValue (const Ch *json, size_t length, Type type)
 Write a raw JSON value. More...
 
void Reset (OutputStream &os)
 Reset the writer with a new stream. More...
 
void SetMaxDecimalPlaces (int maxDecimalPlaces)
 Sets the maximum number of decimal places for double output. More...
 
 Writer (OutputStream &os, StackAllocator *stackAllocator=0, size_t levelDepth=kDefaultLevelDepth)
 Constructor. More...
 
 Writer (StackAllocator *allocator=0, size_t levelDepth=kDefaultLevelDepth)
 
bool Null ()
 
bool Bool (bool b)
 
bool Int (int i)
 
bool Uint (unsigned u)
 
bool Int64 (int64_t i64)
 
bool Uint64 (uint64_t u64)
 
bool Double (double d)
 Writes the given double value to the stream. More...
 
bool RawNumber (const Ch *str, SizeType length, bool copy=false)
 
bool String (const Ch *str, SizeType length, bool copy=false)
 
bool StartObject ()
 
bool Key (const Ch *str, SizeType length, bool copy=false)
 
bool EndObject (SizeType memberCount=0)
 
bool StartArray ()
 
bool EndArray (SizeType elementCount=0)
 
bool String (const Ch *const &str)
 Simpler but slower overload. More...
 
bool Key (const Ch *const &str)
 

Protected Member Functions

void PrettyPrefix (Type type)
 
void WriteIndent ()
 
- Protected Member Functions inherited from Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >
bool EndValue (bool ret)
 
void Prefix (Type type)
 
bool ScanWriteUnescapedString (GenericStringStream< SourceEncoding > &is, size_t length)
 
bool WriteBool (bool b)
 
bool WriteDouble (double d)
 
template<>
bool WriteDouble (double d)
 
bool WriteEndArray ()
 
bool WriteEndObject ()
 
bool WriteInt (int i)
 
template<>
bool WriteInt (int i)
 
bool WriteInt64 (int64_t i64)
 
template<>
bool WriteInt64 (int64_t i64)
 
bool WriteNull ()
 
bool WriteRawValue (const Ch *json, size_t length)
 
bool WriteStartArray ()
 
bool WriteStartObject ()
 
bool WriteString (const Ch *str, SizeType length)
 
bool WriteUint (unsigned u)
 
template<>
bool WriteUint (unsigned u)
 
bool WriteUint64 (uint64_t u64)
 
template<>
bool WriteUint64 (uint64_t u)
 

Protected Attributes

PrettyFormatOptions formatOptions_
 
Ch indentChar_
 
unsigned indentCharCount_
 
- Protected Attributes inherited from Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >
bool hasRoot_
 
internal::Stack< StackAllocator > level_stack_
 
int maxDecimalPlaces_
 
OutputStream * os_
 

Private Member Functions

PrettyWriteroperator= (const PrettyWriter &)
 
 PrettyWriter (const PrettyWriter &)
 

Additional Inherited Members

- Static Public Attributes inherited from Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >
static const int kDefaultMaxDecimalPlaces = 324
 
- Static Protected Attributes inherited from Writer< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >
static const size_t kDefaultLevelDepth = 32
 

Detailed Description

template<typename OutputStream, typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
class PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >

Writer with indentation and spacing.

Template Parameters
OutputStreamType of output os.
SourceEncodingEncoding of source string.
TargetEncodingEncoding of output stream.
StackAllocatorType of allocator for allocating memory of stack.

Definition at line 111 of file fwd.h.

Member Typedef Documentation

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
typedef Writer<OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags> PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Base

Definition at line 53 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
typedef Base::Ch PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Ch

Definition at line 54 of file prettywriter.h.

Constructor & Destructor Documentation

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::PrettyWriter ( OutputStream &  os,
StackAllocator *  allocator = 0,
size_t  levelDepth = Base::kDefaultLevelDepth 
)
inlineexplicit

Constructor.

Parameters
osOutput stream.
allocatorUser supplied allocator. If it is null, it will create a private one.
levelDepthInitial capacity of stack.

Definition at line 61 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::PrettyWriter ( StackAllocator *  allocator = 0,
size_t  levelDepth = Base::kDefaultLevelDepth 
)
inlineexplicit

Definition at line 66 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::PrettyWriter ( const PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags > &  )
private

Member Function Documentation

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Bool ( bool  b)
inline

Definition at line 113 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Double ( double  d)
inline

Definition at line 138 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::EndArray ( SizeType  memberCount = 0)
inline

Definition at line 217 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::EndObject ( SizeType  memberCount = 0)
inline

Definition at line 186 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Int ( int  i)
inline

Definition at line 118 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Int64 ( int64_t  i64)
inline

Definition at line 128 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Key ( const Ch str,
SizeType  length,
bool  copy = false 
)
inline

Definition at line 174 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Key ( const Ch str)
inline

Definition at line 247 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Null ( )
inline

Definition at line 108 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
PrettyWriter& PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::operator= ( const PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags > &  )
private
template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
void PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::PrettyPrefix ( Type  type)
inlineprotected

Definition at line 271 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::RawNumber ( const Ch str,
SizeType  length,
bool  copy = false 
)
inline

Definition at line 144 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::RawValue ( const Ch json,
size_t  length,
Type  type 
)
inline

Write a raw JSON value.

For user to write a stringified JSON as a value.

Parameters
jsonA well-formed JSON value. It should not contain null character within [0, length - 1] range.
lengthLength of the json.
typeType of the root of json.
Note
When using PrettyWriter::RawValue(), the result json may not be indented correctly.

Definition at line 263 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
PrettyWriter& PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::SetFormatOptions ( PrettyFormatOptions  options)
inline

Set pretty writer formatting options.

Parameters
optionsFormatting options.

Definition at line 97 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
PrettyWriter& PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::SetIndent ( Ch  indentChar,
unsigned  indentCharCount 
)
inline

Set custom indentation.

Parameters
indentCharCharacter for indentation. Must be whitespace character (' ', '\t', '\n', '\r').
indentCharCountNumber of indent characters for each indentation level.
Note
The default indentation is 4 spaces.

Definition at line 86 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::StartArray ( )
inline

Definition at line 210 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::StartObject ( )
inline

Definition at line 167 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::String ( const Ch str,
SizeType  length,
bool  copy = false 
)
inline

Definition at line 152 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::String ( const Ch str)
inline

Simpler but slower overload.

Definition at line 243 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Uint ( unsigned  u)
inline

Definition at line 123 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
bool PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::Uint64 ( uint64_t  u64)
inline

Definition at line 133 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
void PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::WriteIndent ( )
inlineprotected

Definition at line 325 of file prettywriter.h.

Member Data Documentation

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
PrettyFormatOptions PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::formatOptions_
protected

Definition at line 333 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
Ch PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::indentChar_
protected

Definition at line 331 of file prettywriter.h.

template<typename OutputStream , typename SourceEncoding = UTF8<>, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags>
unsigned PrettyWriter< OutputStream, SourceEncoding, TargetEncoding, StackAllocator, writeFlags >::indentCharCount_
protected

Definition at line 332 of file prettywriter.h.


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


xbot_talker
Author(s): wangxiaoyun
autogenerated on Sat Oct 10 2020 03:27:54