VR-Vantage 2.2 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
rapidjson::GenericReader< Encoding, Allocator > Class Template Reference

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

Public Types

typedef Encoding::Ch Ch

Public Member Functions

 GenericReader (Allocator *allocator=0, size_t stackCapacity=kDefaultStackCapacity)
 Constructor.
template<unsigned parseFlags, typename Stream , typename Handler >
bool Parse (Stream &stream, Handler &handler)
 Parse JSON text.
bool HasParseError () const
const char * GetParseError () const
size_t GetErrorOffset () const

Private Member Functions

template<unsigned parseFlags, typename Stream , typename Handler >
void ParseObject (Stream &stream, Handler &handler)
template<unsigned parseFlags, typename Stream , typename Handler >
void ParseArray (Stream &stream, Handler &handler)
template<unsigned parseFlags, typename Stream , typename Handler >
void ParseNull (Stream &stream, Handler &handler)
template<unsigned parseFlags, typename Stream , typename Handler >
void ParseTrue (Stream &stream, Handler &handler)
template<unsigned parseFlags, typename Stream , typename Handler >
void ParseFalse (Stream &stream, Handler &handler)
template<typename Stream >
unsigned ParseHex4 (Stream &stream)
template<unsigned parseFlags, typename Stream , typename Handler >
void ParseString (Stream &stream, Handler &handler)
template<unsigned parseFlags, typename Stream , typename Handler >
void ParseNumber (Stream &stream, Handler &handler)
template<unsigned parseFlags, typename Stream , typename Handler >
void ParseValue (Stream &stream, Handler &handler)

Private Attributes

internal::Stack< Allocatorstack_
 A stack for storing decoded string temporarily during non-destructive parsing.
jmp_buf jmpbuf_
 setjmp buffer for fast exit from nested parsing function calls.
const char * parseError_
size_t errorOffset_

Static Private Attributes

static const size_t kDefaultStackCapacity = 256
 Default stack capacity in bytes for storing a single decoded string.

Detailed Description

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
class rapidjson::GenericReader< Encoding, Allocator >

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.

Template Parameters
EncodingEncoding of both the stream and the parse output.
AllocatorAllocator type for stack.

Member Typedef Documentation

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
typedef Encoding::Ch rapidjson::GenericReader< Encoding, Allocator >::Ch

Constructor & Destructor Documentation

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
rapidjson::GenericReader< Encoding, Allocator >::GenericReader ( Allocator allocator = 0,
size_t  stackCapacity = kDefaultStackCapacity 
)
inline

Constructor.

Parameters
allocatorOptional allocator for allocating stack memory. (Only use for non-destructive parsing)
stackCapacitystack capacity in bytes for storing a single decoded string. (Only use for non-destructive parsing)

Member Function Documentation

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream , typename Handler >
bool rapidjson::GenericReader< Encoding, Allocator >::Parse ( Stream stream,
Handler handler 
)
inline

Parse JSON text.

Template Parameters
parseFlagsCombination of ParseFlag.
StreamType of input stream.
HandlerType of handler which must implement Handler concept.
Parameters
streamInput stream to be parsed.
handlerThe handler to receive events.
Returns
Whether the parsing is successful.

References rapidjson::GenericReader< Encoding, Allocator >::errorOffset_, rapidjson::GenericReader< Encoding, Allocator >::jmpbuf_, rapidjson::GenericReader< Encoding, Allocator >::parseError_, RAPIDJSON_PARSE_ERROR, rapidjson::SkipWhitespace(), and rapidjson::GenericReader< Encoding, Allocator >::stack_.

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
bool rapidjson::GenericReader< Encoding, Allocator >::HasParseError ( ) const
inline
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
const char* rapidjson::GenericReader< Encoding, Allocator >::GetParseError ( ) const
inline
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
size_t rapidjson::GenericReader< Encoding, Allocator >::GetErrorOffset ( ) const
inline
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream , typename Handler >
void rapidjson::GenericReader< Encoding, Allocator >::ParseObject ( Stream stream,
Handler handler 
)
inlineprivate
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream , typename Handler >
void rapidjson::GenericReader< Encoding, Allocator >::ParseArray ( Stream stream,
Handler handler 
)
inlineprivate
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream , typename Handler >
void rapidjson::GenericReader< Encoding, Allocator >::ParseNull ( Stream stream,
Handler handler 
)
inlineprivate
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream , typename Handler >
void rapidjson::GenericReader< Encoding, Allocator >::ParseTrue ( Stream stream,
Handler handler 
)
inlineprivate
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream , typename Handler >
void rapidjson::GenericReader< Encoding, Allocator >::ParseFalse ( Stream stream,
Handler handler 
)
inlineprivate
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<typename Stream >
unsigned rapidjson::GenericReader< Encoding, Allocator >::ParseHex4 ( Stream stream)
inlineprivate
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream , typename Handler >
void rapidjson::GenericReader< Encoding, Allocator >::ParseString ( Stream stream,
Handler handler 
)
inlineprivate
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream , typename Handler >
void rapidjson::GenericReader< Encoding, Allocator >::ParseNumber ( Stream stream,
Handler handler 
)
inlineprivate
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
template<unsigned parseFlags, typename Stream , typename Handler >
void rapidjson::GenericReader< Encoding, Allocator >::ParseValue ( Stream stream,
Handler handler 
)
inlineprivate

Member Data Documentation

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
const size_t rapidjson::GenericReader< Encoding, Allocator >::kDefaultStackCapacity = 256
staticprivate

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

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
internal::Stack<Allocator> rapidjson::GenericReader< Encoding, Allocator >::stack_
private

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

Referenced by rapidjson::GenericReader< Encoding, Allocator >::Parse(), and rapidjson::GenericReader< Encoding, Allocator >::ParseString().

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
jmp_buf rapidjson::GenericReader< Encoding, Allocator >::jmpbuf_
private

setjmp buffer for fast exit from nested parsing function calls.

Referenced by rapidjson::GenericReader< Encoding, Allocator >::Parse().

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
const char* rapidjson::GenericReader< Encoding, Allocator >::parseError_
private
template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
size_t rapidjson::GenericReader< Encoding, Allocator >::errorOffset_
private

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


Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)