rapidjson::GenericReader
Engine/source/persistence/rapidjson/reader.h
SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator.
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.
const char *
A stack for storing decoded string temporarily during non-destructive parsing.
Public Functions
Private Functions
ParseArray(InputStream & is, Handler & handler)
ParseFalse(InputStream & is, Handler & handler)
unsigned
ParseHex4(InputStream & is)
ParseNumber(InputStream & is, Handler & handler)
ParseObject(InputStream & is, Handler & handler)
ParseString(InputStream & is, Handler & handler)
ParseStringToStream(InputStream & is, OutputStream & os)
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. |
| stream | Input stream to be parsed. |
| handler | The handler to receive events. |
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)
