Arcane  v3.16.8.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe GenericReader< SourceEncoding, TargetEncoding, StackAllocator >

SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator. Plus de détails...

#include <arcane/utils/internal/json/rapidjson/reader.h>

+ Graphe de collaboration de GenericReader< SourceEncoding, TargetEncoding, StackAllocator >:

Classes

struct  ClearStackOnExit
 
class  NumberStream
 
class  NumberStream< InputStream, StackCharacter, false, false >
 
class  NumberStream< InputStream, StackCharacter, true, false >
 
class  NumberStream< InputStream, StackCharacter, true, true >
 
class  StackStream
 

Types publics

typedef SourceEncoding::Ch Ch
 SourceEncoding character type.
 

Fonctions membres publiques

 GenericReader (StackAllocator *stackAllocator=0, size_t stackCapacity=kDefaultStackCapacity)
 Constructor.
 
template<unsigned parseFlags, typename InputStream, typename Handler>
ParseResult Parse (InputStream &is, Handler &handler)
 Parse JSON text.
 
template<typename InputStream, typename Handler>
ParseResult Parse (InputStream &is, Handler &handler)
 Parse JSON text (with kParseDefaultFlags)
 
void IterativeParseInit ()
 Initialize JSON text token-by-token parsing.
 
template<unsigned parseFlags, typename InputStream, typename Handler>
bool IterativeParseNext (InputStream &is, Handler &handler)
 Parse one token from JSON text.
 
RAPIDJSON_FORCEINLINE bool IterativeParseComplete () const
 Check if token-by-token parsing JSON text is complete.
 
bool HasParseError () const
 Whether a parse error has occurred in the last parsing.
 
ParseErrorCode GetParseErrorCode () const
 Get the ParseErrorCode of last parsing.
 
size_t GetErrorOffset () const
 Get the position of last parsing error in input, 0 otherwise.
 

Fonctions membres protégées

void SetParseError (ParseErrorCode code, size_t offset)
 

Types privés

enum  IterativeParsingState {
  IterativeParsingFinishState = 0 , IterativeParsingErrorState , IterativeParsingStartState , IterativeParsingObjectInitialState ,
  IterativeParsingMemberKeyState , IterativeParsingMemberValueState , IterativeParsingObjectFinishState , IterativeParsingArrayInitialState ,
  IterativeParsingElementState , IterativeParsingArrayFinishState , IterativeParsingValueState , IterativeParsingElementDelimiterState ,
  IterativeParsingMemberDelimiterState , IterativeParsingKeyValueDelimiterState , cIterativeParsingStateCount
}
 
enum  Token {
  LeftBracketToken = 0 , RightBracketToken , LeftCurlyBracketToken , RightCurlyBracketToken ,
  CommaToken , ColonToken , StringToken , FalseToken ,
  TrueToken , NullToken , NumberToken , kTokenCount
}
 

Fonctions membres privées

 GenericReader (const GenericReader &)
 
GenericReaderoperator= (const GenericReader &)
 
void ClearStack ()
 
template<unsigned parseFlags, typename InputStream>
void SkipWhitespaceAndComments (InputStream &is)
 
template<unsigned parseFlags, typename InputStream, typename Handler>
void ParseObject (InputStream &is, Handler &handler)
 
template<unsigned parseFlags, typename InputStream, typename Handler>
void ParseArray (InputStream &is, Handler &handler)
 
template<unsigned parseFlags, typename InputStream, typename Handler>
void ParseNull (InputStream &is, Handler &handler)
 
template<unsigned parseFlags, typename InputStream, typename Handler>
void ParseTrue (InputStream &is, Handler &handler)
 
template<unsigned parseFlags, typename InputStream, typename Handler>
void ParseFalse (InputStream &is, Handler &handler)
 
template<typename InputStream>
unsigned ParseHex4 (InputStream &is, size_t escapeOffset)
 
template<unsigned parseFlags, typename InputStream, typename Handler>
void ParseString (InputStream &is, Handler &handler, bool isKey=false)
 
template<unsigned parseFlags, typename SEncoding, typename TEncoding, typename InputStream, typename OutputStream>
RAPIDJSON_FORCEINLINE void ParseStringToStream (InputStream &is, OutputStream &os)
 
template<unsigned parseFlags, typename InputStream, typename Handler>
void ParseNumber (InputStream &is, Handler &handler)
 
template<unsigned parseFlags, typename InputStream, typename Handler>
void ParseValue (InputStream &is, Handler &handler)
 
RAPIDJSON_FORCEINLINE Token Tokenize (Ch c) const
 
RAPIDJSON_FORCEINLINE IterativeParsingState Predict (IterativeParsingState state, Token token) const
 
template<unsigned parseFlags, typename InputStream, typename Handler>
RAPIDJSON_FORCEINLINE IterativeParsingState Transit (IterativeParsingState src, Token token, IterativeParsingState dst, InputStream &is, Handler &handler)
 
template<typename InputStream>
void HandleError (IterativeParsingState src, InputStream &is)
 
RAPIDJSON_FORCEINLINE bool IsIterativeParsingDelimiterState (IterativeParsingState s) const
 
RAPIDJSON_FORCEINLINE bool IsIterativeParsingCompleteState (IterativeParsingState s) const
 
template<unsigned parseFlags, typename InputStream, typename Handler>
ParseResult IterativeParse (InputStream &is, Handler &handler)
 

Fonctions membres privées statiques

template<typename InputStream>
static RAPIDJSON_FORCEINLINE bool Consume (InputStream &is, typename InputStream::Ch expect)
 
template<typename InputStream, typename OutputStream>
static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString (InputStream &, OutputStream &)
 

Attributs privés

internal::Stack< StackAllocator > stack_
 A stack for storing decoded string temporarily during non-destructive parsing.
 
ParseResult parseResult_
 
IterativeParsingState state_
 

Attributs privés statiques

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

Description détaillée

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
class GenericReader< SourceEncoding, TargetEncoding, StackAllocator >

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.

Paramètres du template
SourceEncodingEncoding of the input stream.
TargetEncodingEncoding of the parse output.
StackAllocatorAllocator type for stack.

Définition à la ligne 540 du fichier reader.h.

Documentation des définitions de type membres

◆ Ch

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
typedef SourceEncoding::Ch GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::Ch

SourceEncoding character type.

Définition à la ligne 542 du fichier reader.h.

Documentation des énumérations membres

◆ IterativeParsingState

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
enum GenericReader::IterativeParsingState
private

Définition à la ligne 1771 du fichier reader.h.

◆ Token

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
enum GenericReader::Token
private

Définition à la ligne 1799 du fichier reader.h.

Documentation des constructeurs et destructeur

◆ GenericReader()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::GenericReader ( StackAllocator * stackAllocator = 0,
size_t stackCapacity = kDefaultStackCapacity )
inline

Constructor.

Paramètres
stackAllocatorOptional 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)

Définition à la ligne 548 du fichier reader.h.

Documentation des fonctions membres

◆ ClearStack()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ClearStack ( )
inlineprivate

Définition à la ligne 699 du fichier reader.h.

◆ Consume()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<typename InputStream>
static RAPIDJSON_FORCEINLINE bool GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::Consume ( InputStream & is,
typename InputStream::Ch expect )
inlinestaticprivate

Définition à la ligne 896 du fichier reader.h.

◆ GetErrorOffset()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
size_t GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::GetErrorOffset ( ) const
inline

Get the position of last parsing error in input, 0 otherwise.

Définition à la ligne 689 du fichier reader.h.

◆ GetParseErrorCode()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
ParseErrorCode GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::GetParseErrorCode ( ) const
inline

Get the ParseErrorCode of last parsing.

Définition à la ligne 686 du fichier reader.h.

◆ HandleError()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<typename InputStream>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::HandleError ( IterativeParsingState src,
InputStream & is )
inlineprivate

Définition à la ligne 2164 du fichier reader.h.

◆ HasParseError()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
bool GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::HasParseError ( ) const
inline

Whether a parse error has occurred in the last parsing.

Définition à la ligne 683 du fichier reader.h.

◆ IsIterativeParsingCompleteState()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
RAPIDJSON_FORCEINLINE bool GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::IsIterativeParsingCompleteState ( IterativeParsingState s) const
inlineprivate

Définition à la ligne 2188 du fichier reader.h.

◆ IsIterativeParsingDelimiterState()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
RAPIDJSON_FORCEINLINE bool GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::IsIterativeParsingDelimiterState ( IterativeParsingState s) const
inlineprivate

Définition à la ligne 2184 du fichier reader.h.

◆ IterativeParse()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
ParseResult GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::IterativeParse ( InputStream & is,
Handler & handler )
inlineprivate

Définition à la ligne 2193 du fichier reader.h.

◆ IterativeParseComplete()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
RAPIDJSON_FORCEINLINE bool GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::IterativeParseComplete ( ) const
inline

Check if token-by-token parsing JSON text is complete.

Renvoie
Whether the JSON has been fully decoded.

Définition à la ligne 678 du fichier reader.h.

◆ IterativeParseInit()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::IterativeParseInit ( )
inline

Initialize JSON text token-by-token parsing.

Définition à la ligne 608 du fichier reader.h.

◆ IterativeParseNext()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
bool GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::IterativeParseNext ( InputStream & is,
Handler & handler )
inline

Parse one token from JSON text.

Paramètres du template
InputStreamType of input stream, implementing Stream concept
HandlerType of handler, implementing Handler concept.
Paramètres
isInput stream to be parsed.
handlerThe handler to receive events.
Renvoie
Whether the parsing is successful.

Définition à la ligne 621 du fichier reader.h.

◆ Parse() [1/2]

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
ParseResult GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::Parse ( InputStream & is,
Handler & handler )
inline

Parse JSON text.

Paramètres du template
parseFlagsCombination of ParseFlag.
InputStreamType of input stream, implementing Stream concept.
HandlerType of handler, implementing Handler concept.
Paramètres
isInput stream to be parsed.
handlerThe handler to receive events.
Renvoie
Whether the parsing is successful.

Définition à la ligne 560 du fichier reader.h.

Référencé par GenericReader< UTF8< char >, UTF8< char >, CrtAllocator >::Parse().

+ Voici le graphe des appelants de cette fonction :

◆ Parse() [2/2]

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<typename InputStream, typename Handler>
ParseResult GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::Parse ( InputStream & is,
Handler & handler )
inline

Parse JSON text (with kParseDefaultFlags)

Paramètres du template
InputStreamType of input stream, implementing Stream concept
HandlerType of handler, implementing Handler concept.
Paramètres
isInput stream to be parsed.
handlerThe handler to receive events.
Renvoie
Whether the parsing is successful.

Définition à la ligne 601 du fichier reader.h.

◆ ParseArray()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseArray ( InputStream & is,
Handler & handler )
inlineprivate

Définition à la ligne 809 du fichier reader.h.

◆ ParseFalse()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseFalse ( InputStream & is,
Handler & handler )
inlineprivate

Définition à la ligne 883 du fichier reader.h.

◆ ParseHex4()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<typename InputStream>
unsigned GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseHex4 ( InputStream & is,
size_t escapeOffset )
inlineprivate

Définition à la ligne 907 du fichier reader.h.

◆ ParseNull()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseNull ( InputStream & is,
Handler & handler )
inlineprivate

Définition à la ligne 857 du fichier reader.h.

◆ ParseNumber()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseNumber ( InputStream & is,
Handler & handler )
inlineprivate

Définition à la ligne 1469 du fichier reader.h.

◆ ParseObject()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseObject ( InputStream & is,
Handler & handler )
inlineprivate

Définition à la ligne 741 du fichier reader.h.

◆ ParseString()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseString ( InputStream & is,
Handler & handler,
bool isKey = false )
inlineprivate

Définition à la ligne 960 du fichier reader.h.

◆ ParseStringToStream()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename SEncoding, typename TEncoding, typename InputStream, typename OutputStream>
RAPIDJSON_FORCEINLINE void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseStringToStream ( InputStream & is,
OutputStream & os )
inlineprivate

Définition à la ligne 992 du fichier reader.h.

◆ ParseTrue()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseTrue ( InputStream & is,
Handler & handler )
inlineprivate

Définition à la ligne 870 du fichier reader.h.

◆ ParseValue()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ParseValue ( InputStream & is,
Handler & handler )
inlineprivate

Définition à la ligne 1753 du fichier reader.h.

◆ Predict()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
RAPIDJSON_FORCEINLINE IterativeParsingState GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::Predict ( IterativeParsingState state,
Token token ) const
inlineprivate

Définition à la ligne 1845 du fichier reader.h.

◆ ScanCopyUnescapedString()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<typename InputStream, typename OutputStream>
static RAPIDJSON_FORCEINLINE void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::ScanCopyUnescapedString ( InputStream & ,
OutputStream &  )
inlinestaticprivate

Définition à la ligne 1072 du fichier reader.h.

◆ SetParseError()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::SetParseError ( ParseErrorCode code,
size_t offset )
inlineprotected

Définition à la ligne 692 du fichier reader.h.

◆ SkipWhitespaceAndComments()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream>
void GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::SkipWhitespaceAndComments ( InputStream & is)
inlineprivate

Définition à la ligne 712 du fichier reader.h.

◆ Tokenize()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
RAPIDJSON_FORCEINLINE Token GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::Tokenize ( Ch c) const
inlineprivate

Définition à la ligne 1818 du fichier reader.h.

◆ Transit()

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
template<unsigned parseFlags, typename InputStream, typename Handler>
RAPIDJSON_FORCEINLINE IterativeParsingState GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::Transit ( IterativeParsingState src,
Token token,
IterativeParsingState dst,
InputStream & is,
Handler & handler )
inlineprivate

Définition à la ligne 2012 du fichier reader.h.

Documentation des données membres

◆ kDefaultStackCapacity

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
const size_t GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::kDefaultStackCapacity = 256
staticprivate

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

Définition à la ligne 2227 du fichier reader.h.

◆ parseResult_

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
ParseResult GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::parseResult_
private

Définition à la ligne 2229 du fichier reader.h.

◆ stack_

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
internal::Stack<StackAllocator> GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::stack_
private

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

Définition à la ligne 2228 du fichier reader.h.

◆ state_

template<typename SourceEncoding, typename TargetEncoding, typename StackAllocator = CrtAllocator>
IterativeParsingState GenericReader< SourceEncoding, TargetEncoding, StackAllocator >::state_
private

Définition à la ligne 2230 du fichier reader.h.


La documentation de cette classe a été générée à partir des fichiers suivants :