XII Release 0.1.0
Loading...
Searching...
No Matches
xiiOpenDdlParser Class Referenceabstract

A low level parser for the OpenDDL format. It can incrementally parse the structure, individual blocks can be skipped. More...

#include <OpenDdlParser.h>

Inheritance diagram for xiiOpenDdlParser:
[legend]

Public Member Functions

bool HadFatalParsingError () const
 Whether an error occurred during parsing that resulted in cancellation of further parsing.
 

Protected Member Functions

void SetLogInterface (xiiLogInterface *pLog)
 Sets a xiiLogInterface through which errors and warnings are reported.
 
void SetCacheSize (xiiUInt32 uiSizeInKB)
 Data is returned in larger chunks, to reduce the number of function calls. The cache size determines the maximum chunk size per primitive type.
 
void SetInputStream (xiiStreamReader &stream, xiiUInt32 uiFirstLineOffset=0)
 Configures the parser to read from the given stream. This can only be called once on a parser instance.
 
bool ContinueParsing ()
 Call this to parse the next piece of the document. This may trigger a callback through which data is returned.
 
xiiResult ParseAll ()
 Calls ContinueParsing() in a loop until that returns false.
 
void SkipRestOfObject ()
 Skips the rest of the currently open object. No OnEndObject() call will be done for this object either.
 
void StopParsing ()
 Can be used to prevent parsing the rest of the document.
 
void ParsingError (xiiStringView sMessage, bool bFatal)
 Outputs that a parsing error was detected (via OnParsingError) and stops further parsing, if bFatal is set to true.
 
virtual void OnParsingError (xiiStringView sMessage, bool bFatal, xiiUInt32 uiLine, xiiUInt32 uiColumn)
 Called when something unexpected is encountered in the document.
 
virtual void OnBeginObject (xiiStringView sType, xiiStringView sName, bool bGlobalName)=0
 Called when a new object is encountered.
 
virtual void OnEndObject ()=0
 Called when the end of an object is encountered.
 
virtual void OnBeginPrimitiveList (xiiOpenDdlPrimitiveType type, xiiStringView sName, bool bGlobalName)=0
 Called when a new primitive object is encountered.
 
virtual void OnEndPrimitiveList ()=0
 Called when the end of a primitive object is encountered.
 
virtual void OnPrimitiveBool (xiiUInt32 count, const bool *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveInt8 (xiiUInt32 count, const xiiInt8 *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveInt16 (xiiUInt32 count, const xiiInt16 *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveInt32 (xiiUInt32 count, const xiiInt32 *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveInt64 (xiiUInt32 count, const xiiInt64 *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveUInt8 (xiiUInt32 count, const xiiUInt8 *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveUInt16 (xiiUInt32 count, const xiiUInt16 *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveUInt32 (xiiUInt32 count, const xiiUInt32 *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveUInt64 (xiiUInt32 count, const xiiUInt64 *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveFloat (xiiUInt32 count, const float *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveDouble (xiiUInt32 count, const double *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 
virtual void OnPrimitiveString (xiiUInt32 count, const xiiStringView *pData, bool bThisIsAll)=0
 Called when data for a primitive type is available. More than one value may be reported at a time.
 

Protected Attributes

xiiLogInterfacem_pLogInterface
 

Detailed Description

A low level parser for the OpenDDL format. It can incrementally parse the structure, individual blocks can be skipped.

The document structure is returned through virtual functions that need to be overridden.

Member Function Documentation

◆ ContinueParsing()

bool xiiOpenDdlParser::ContinueParsing ( )
protected

Call this to parse the next piece of the document. This may trigger a callback through which data is returned.

This function returns false when the end of the document has been reached, or a fatal parsing error has been reported.

◆ OnBeginObject()

virtual void xiiOpenDdlParser::OnBeginObject ( xiiStringView sType,
xiiStringView sName,
bool bGlobalName )
protectedpure virtual

Called when a new object is encountered.

Implemented in xiiOpenDdlReader.

◆ OnBeginPrimitiveList()

virtual void xiiOpenDdlParser::OnBeginPrimitiveList ( xiiOpenDdlPrimitiveType type,
xiiStringView sName,
bool bGlobalName )
protectedpure virtual

Called when a new primitive object is encountered.

Implemented in xiiOpenDdlReader.

◆ OnEndObject()

virtual void xiiOpenDdlParser::OnEndObject ( )
protectedpure virtual

Called when the end of an object is encountered.

Implemented in xiiOpenDdlReader.

◆ OnEndPrimitiveList()

virtual void xiiOpenDdlParser::OnEndPrimitiveList ( )
protectedpure virtual

Called when the end of a primitive object is encountered.

Implemented in xiiOpenDdlReader.

◆ OnParsingError()

virtual void xiiOpenDdlParser::OnParsingError ( xiiStringView sMessage,
bool bFatal,
xiiUInt32 uiLine,
xiiUInt32 uiColumn )
inlineprotectedvirtual

Called when something unexpected is encountered in the document.

The error message describes what was expected and what was encountered. If bFatal is true, the error has left the parser in an unrecoverable state and thus it will not continue parsing. In that case client code will need to clean up it's open state, as no further callbacks will be called. If bFatal is false, the document is not entirely valid, but the parser is still able to continue.

Reimplemented in xiiOpenDdlReader.

◆ OnPrimitiveBool()

virtual void xiiOpenDdlParser::OnPrimitiveBool ( xiiUInt32 count,
const bool * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Todo
Currently not supported

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveDouble()

virtual void xiiOpenDdlParser::OnPrimitiveDouble ( xiiUInt32 count,
const double * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveFloat()

virtual void xiiOpenDdlParser::OnPrimitiveFloat ( xiiUInt32 count,
const float * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveInt16()

virtual void xiiOpenDdlParser::OnPrimitiveInt16 ( xiiUInt32 count,
const xiiInt16 * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveInt32()

virtual void xiiOpenDdlParser::OnPrimitiveInt32 ( xiiUInt32 count,
const xiiInt32 * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveInt64()

virtual void xiiOpenDdlParser::OnPrimitiveInt64 ( xiiUInt32 count,
const xiiInt64 * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveInt8()

virtual void xiiOpenDdlParser::OnPrimitiveInt8 ( xiiUInt32 count,
const xiiInt8 * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveString()

virtual void xiiOpenDdlParser::OnPrimitiveString ( xiiUInt32 count,
const xiiStringView * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveUInt16()

virtual void xiiOpenDdlParser::OnPrimitiveUInt16 ( xiiUInt32 count,
const xiiUInt16 * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveUInt32()

virtual void xiiOpenDdlParser::OnPrimitiveUInt32 ( xiiUInt32 count,
const xiiUInt32 * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveUInt64()

virtual void xiiOpenDdlParser::OnPrimitiveUInt64 ( xiiUInt32 count,
const xiiUInt64 * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ OnPrimitiveUInt8()

virtual void xiiOpenDdlParser::OnPrimitiveUInt8 ( xiiUInt32 count,
const xiiUInt8 * pData,
bool bThisIsAll )
protectedpure virtual

Called when data for a primitive type is available. More than one value may be reported at a time.

Implemented in xiiOpenDdlReader.

◆ SetCacheSize()

void xiiOpenDdlParser::SetCacheSize ( xiiUInt32 uiSizeInKB)
protected

Data is returned in larger chunks, to reduce the number of function calls. The cache size determines the maximum chunk size per primitive type.

Default cache size is 4 KB. That means up to 1000 integers may be returned in one chunk (or 500 doubles). It does not help to increase the chunk size, when the input data doesn't use such large data lists.


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