Torque3D Documentation / _generateds / rapidjson::GenericReader

rapidjson::GenericReader

Engine/source/persistence/rapidjson/reader.h

SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator.

More...

Classes:

Public Types

SourceEncoding::Ch
Ch 

Private Static Attributes

const size_t

Default stack capacity in bytes for storing a single decoded string.

Private Attributes

size_t
jmp_buf

setjmp buffer for fast exit from nested parsing function calls.

A stack for storing decoded string temporarily during non-destructive parsing.

Public Functions

GenericReader(Allocator * allocator, size_t stackCapacity)

Constructor.

size_t
bool
Parse(InputStream & is, Handler & handler)

Parse JSON text.

Private Functions

ParseArray(InputStream & is, Handler & handler)
ParseFalse(InputStream & is, Handler & handler)
unsigned
ParseHex4(InputStream & is)
ParseNull(InputStream & is, Handler & handler)
ParseNumber(InputStream & is, Handler & handler)
ParseObject(InputStream & is, Handler & handler)
ParseString(InputStream & is, Handler & handler)
ParseStringToStream(InputStream & is, OutputStream & os)
ParseTrue(InputStream & is, Handler & handler)
ParseValue(InputStream & is, Handler & handler)

Detailed Description

SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator.

GenericReader parses JSON text from a stream, and send events synchronously to an object implementing Handler concept.

It needs to allocate a stack for storing a single decoded string during non-destructive parsing.

For in-situ parsing, the decoded string is directly written to the source text string, no temporary buffer is required.

A GenericReader object can be reused for parsing multiple JSON text.

Parameters:

SourceEncoding

Encoding of the input stream.

TargetEncoding

Encoding of the parse output.

Allocator type for stack.

Public Types

typedef SourceEncoding::Ch Ch 

Private Static Attributes

const size_t kDefaultStackCapacity 

Default stack capacity in bytes for storing a single decoded string.

Private Attributes

size_t errorOffset_ 
jmp_buf jmpbuf_ 

setjmp buffer for fast exit from nested parsing function calls.

const char * parseError_ 
internal::Stack< Allocator > stack_ 

A stack for storing decoded string temporarily during non-destructive parsing.

Public Functions

GenericReader(Allocator * allocator, size_t stackCapacity)

Constructor.

Parameters:

allocator

Optional allocator for allocating stack memory. (Only use for non-destructive parsing)

stackCapacity

stack capacity in bytes for storing a single decoded string. (Only use for non-destructive parsing)

GetErrorOffset()

GetParseError()

HasParseError()

Parse(InputStream & is, Handler & handler)

Parse JSON text.

Parameters:

parseFlags

Combination of ParseFlag.

InputStream

Type of input stream.

Type of handler which must implement Handler concept.

Parameters:
stream

Input stream to be parsed.

handler

The handler to receive events.

return:

Whether the parsing is successful.

Private Functions

ParseArray(InputStream & is, Handler & handler)

ParseFalse(InputStream & is, Handler & handler)

ParseHex4(InputStream & is)

ParseNull(InputStream & is, Handler & handler)

ParseNumber(InputStream & is, Handler & handler)

ParseObject(InputStream & is, Handler & handler)

ParseString(InputStream & is, Handler & handler)

ParseStringToStream(InputStream & is, OutputStream & os)

ParseTrue(InputStream & is, Handler & handler)

ParseValue(InputStream & is, Handler & handler)