UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FFastXmlImpl Class Reference

Public Member Functions

 FFastXmlImpl (IFastXmlCallback *InitCallback, TCHAR *InitXmlFileContents, const SIZE_T InitXmlFileContentsLength, FFeedbackContext *InitFeedbackContext)
 
 ~FFastXmlImpl (void)
 
bool ProcessXmlFile (FText &OutErrorMessage, int32 &OutErrorLineNumber)
 

Protected Types

enum class  ECharType : uint8 {
  Data = 0 , EndOfFile , Whitespace , EndOfElement ,
  EndOfLine
}
 

Protected Member Functions

TCHARProcessClose (const TCHAR Char, const TCHAR *Element, TCHAR *Buffer, const int32 AttributeCount, const TCHAR **Attributes)
 
TCHARProcessClose (TCHAR *Buffer)
 
bool ProcessXmlFileInternal ()
 
TCHARNextWhitespace (TCHAR *Buffer)
 
TCHARNextWhitespaceOrClose (TCHAR *Buffer, bool &IsClose)
 
TCHARNextSeparator (TCHAR *Buffer)
 
TCHARSkipNextData (TCHAR *Buffer)
 
void PushElement (const TCHAR *Element)
 
const TCHARPopElement (void)
 
bool IsCharTypeEqual (TCHAR Character, ECharType Type)
 

Protected Attributes

IFastXmlCallbackCallback
 
TCHARXmlFileContents
 
SIZE_T XmlFileContentsLength
 
FFeedbackContextFeedbackContext
 
FText ErrorMessage
 
ECharType CharacterTypeMap [256]
 
uint32 StackIndex
 
int32 LineNumber
 
const TCHARStack [MaxStackDepth+1]
 
bool IsStackAllocated [MaxStackDepth+1]
 

Static Protected Attributes

static const int MaxStackDepth = 2048
 
static const int MaxAttributes = 2048
 

Detailed Description

Implementation of fast XML parser

Member Enumeration Documentation

◆ ECharType

enum class FFastXmlImpl::ECharType : uint8
strongprotected

Types of characters we'll encounter while parsing

Enumerator
Data 
EndOfFile 
Whitespace 
EndOfElement 
EndOfLine 

Constructor & Destructor Documentation

◆ FFastXmlImpl()

FFastXmlImpl::FFastXmlImpl ( IFastXmlCallback InitCallback,
TCHAR InitXmlFileContents,
const SIZE_T  InitXmlFileContentsLength,
FFeedbackContext InitFeedbackContext 
)
inline

◆ ~FFastXmlImpl()

FFastXmlImpl::~FFastXmlImpl ( void  )
inline

Member Function Documentation

◆ IsCharTypeEqual()

bool FFastXmlImpl::IsCharTypeEqual ( TCHAR  Character,
ECharType  Type 
)
inlineprotected

◆ NextSeparator()

TCHAR * FFastXmlImpl::NextSeparator ( TCHAR Buffer)
inlineprotected

◆ NextWhitespace()

TCHAR * FFastXmlImpl::NextWhitespace ( TCHAR Buffer)
inlineprotected

◆ NextWhitespaceOrClose()

TCHAR * FFastXmlImpl::NextWhitespaceOrClose ( TCHAR Buffer,
bool IsClose 
)
inlineprotected

◆ PopElement()

const TCHAR * FFastXmlImpl::PopElement ( void  )
inlineprotected

◆ ProcessClose() [1/2]

TCHAR * FFastXmlImpl::ProcessClose ( const TCHAR  Char,
const TCHAR Element,
TCHAR Buffer,
const int32  AttributeCount,
const TCHAR **  Attributes 
)
inlineprotected

◆ ProcessClose() [2/2]

TCHAR * FFastXmlImpl::ProcessClose ( TCHAR Buffer)
inlineprotected

◆ ProcessXmlFile()

bool FFastXmlImpl::ProcessXmlFile ( FText OutErrorMessage,
int32 OutErrorLineNumber 
)
inline

◆ ProcessXmlFileInternal()

bool FFastXmlImpl::ProcessXmlFileInternal ( )
inlineprotected

◆ PushElement()

void FFastXmlImpl::PushElement ( const TCHAR Element)
inlineprotected

◆ SkipNextData()

TCHAR * FFastXmlImpl::SkipNextData ( TCHAR Buffer)
inlineprotected

Member Data Documentation

◆ Callback

IFastXmlCallback* FFastXmlImpl::Callback
protected

User callback to report XML data and progress

◆ CharacterTypeMap

ECharType FFastXmlImpl::CharacterTypeMap[256]
protected

Maps each ASCII character to the type of character we think it is

◆ ErrorMessage

FText FFastXmlImpl::ErrorMessage
protected

If anything goes wrong or the user cancels, the error message to return will be stored here

◆ FeedbackContext

FFeedbackContext* FFastXmlImpl::FeedbackContext
protected

Feedback context for status reporting. Can be nullptr.

◆ IsStackAllocated

bool FFastXmlImpl::IsStackAllocated[MaxStackDepth+1]
protected

For each stack level, whether we've allocated that stack or not yet

◆ LineNumber

int32 FFastXmlImpl::LineNumber
protected

The current line number we're on in the file

◆ MaxAttributes

const int FFastXmlImpl::MaxAttributes = 2048
staticprotected

Maximum number of attributes in an element that we can support

◆ MaxStackDepth

const int FFastXmlImpl::MaxStackDepth = 2048
staticprotected

Maximum stack depth. We can't support XML documents that go deeper than this!

◆ Stack

const TCHAR* FFastXmlImpl::Stack[MaxStackDepth+1]
protected

Stack of characters, one for each stack depth

◆ StackIndex

uint32 FFastXmlImpl::StackIndex
protected

Current stack depth as we descend through XML nodes and attributes

◆ XmlFileContents

TCHAR* FFastXmlImpl::XmlFileContents
protected

Reference to the the contents of the XML file to parse

◆ XmlFileContentsLength

SIZE_T FFastXmlImpl::XmlFileContentsLength
protected

Length of the XmlFileContents string


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