CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
Loading...
Searching...
No Matches
xml_parser.h File Reference

Small recursive XML DOM parser (XMLNode) used by CMSDK for all PsySpec XML parsing. More...

#include <stdlib.h>
#include <wchar.h>
Include dependency graph for xml_parser.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cmlabs::XMLResults
struct  cmlabs::XMLClear
struct  cmlabs::XMLAttribute
struct  cmlabs::XMLNode
struct  cmlabs::XMLNodeContents
struct  cmlabs::ToXMLStringTool
struct  cmlabs::XMLParserBase64Tool

Namespaces

namespace  cmlabs

Macros

#define XMLDLLENTRY
#define XMLDLLENTRY
#define _X(c)
#define XMLCSTR   const char *
#define XMLSTR   char *
#define XMLCHAR   char
#define FALSE   0
#define TRUE   1

Typedefs

typedef enum cmlabs::XMLError cmlabs::XMLError
typedef enum cmlabs::XMLElementType cmlabs::XMLElementType
typedef struct cmlabs::XMLResults cmlabs::XMLResults
typedef struct cmlabs::XMLClear cmlabs::XMLClear
typedef struct cmlabs::XMLAttribute cmlabs::XMLAttribute
typedef struct XMLDLLENTRY cmlabs::XMLNode cmlabs::XMLNode
typedef struct cmlabs::XMLNodeContents cmlabs::XMLNodeContents
typedef struct XMLDLLENTRY cmlabs::ToXMLStringTool cmlabs::ToXMLStringTool
typedef struct XMLDLLENTRY cmlabs::XMLParserBase64Tool cmlabs::XMLParserBase64Tool

Enumerations

enum  cmlabs::XMLError {
  cmlabs::eXMLErrorNone = 0 , cmlabs::eXMLErrorMissingEndTag , cmlabs::eXMLErrorNoXMLTagFound , cmlabs::eXMLErrorEmpty ,
  cmlabs::eXMLErrorMissingTagName , cmlabs::eXMLErrorMissingEndTagName , cmlabs::eXMLErrorUnmatchedEndTag , cmlabs::eXMLErrorUnmatchedEndClearTag ,
  cmlabs::eXMLErrorUnexpectedToken , cmlabs::eXMLErrorNoElements , cmlabs::eXMLErrorFileNotFound , cmlabs::eXMLErrorFirstTagNotFound ,
  cmlabs::eXMLErrorUnknownCharacterEntity , cmlabs::eXMLErrorCharConversionError , cmlabs::eXMLErrorCannotOpenWriteFile , cmlabs::eXMLErrorCannotWriteFile ,
  cmlabs::eXMLErrorBase64DataSizeIsNotMultipleOf4 , cmlabs::eXMLErrorBase64DecodeIllegalCharacter , cmlabs::eXMLErrorBase64DecodeTruncatedData , cmlabs::eXMLErrorBase64DecodeBufferTooSmall
}
enum  cmlabs::XMLElementType {
  cmlabs::eNodeChild =0 , cmlabs::eNodeAttribute =1 , cmlabs::eNodeText =2 , cmlabs::eNodeClear =3 ,
  cmlabs::eNodeNULL =4
}

Functions

XMLDLLENTRY void cmlabs::freeXMLString (XMLSTR t)
XMLDLLENTRY XMLSTR cmlabs::stringDup (XMLCSTR source, int cbData=0)

Detailed Description

Small recursive XML DOM parser (XMLNode) used by CMSDK for all PsySpec XML parsing.

Vendored third-party library (V2.31, Frank Vanden Berghen, BSD license — see below), placed into the cmlabs namespace and lightly adapted for CMSDK (e.g. XMLNode::UnitTest()). PsySpec system descriptions, component configurations and VantagePoints setups are parsed with XMLNode::parseString()/ parseFile() and navigated via getChildNode()/getAttribute(). XMLNode objects are cheap shallow copies with internal reference counting; an "empty" node (isEmpty()) signals a failed lookup. In char* builds strings are UTF-8 by default; compile-time _XMLWIDECHAR switches to wide chars. The extensive original inline comments below are the authoritative API documentation and are kept as-is.

Definition in file xml_parser.h.

Macro Definition Documentation

◆ _X

#define _X ( c)
Value:
c

Definition at line 114 of file xml_parser.h.

◆ FALSE

◆ TRUE

◆ XMLCHAR

#define XMLCHAR   char

Definition at line 118 of file xml_parser.h.

◆ XMLCSTR

#define XMLCSTR   const char *

Definition at line 116 of file xml_parser.h.

Referenced by cmlabs::XMLNode::addAttribute(), cmlabs::XMLNode::addChild(), cmlabs::XMLNode::addClear(), cmlabs::XMLNode::addClear_WOSD(), cmlabs::XMLNode::addText(), cmlabs::XMLNode::addText_WOSD(), cmlabs::XMLNode::createXMLTopNode(), cmlabs::XMLParserBase64Tool::decode(), cmlabs::XMLParserBase64Tool::decode(), cmlabs::XMLParserBase64Tool::decodeSize(), cmlabs::XMLNode::deleteAttribute(), cmlabs::XMLNode::deleteClear(), cmlabs::XMLNode::deleteText(), cmlabs::XMLNode::getAttribute(), cmlabs::XMLNode::getAttribute(), cmlabs::XMLNode::getAttributeName(), cmlabs::XMLNode::getAttributeValue(), cmlabs::XMLNode::getChildNode(), cmlabs::XMLNode::getChildNode(), cmlabs::XMLNode::getChildNodeWithAttribute(), cmlabs::XMLNode::getError(), cmlabs::XMLNode::getName(), cmlabs::XMLNode::getText(), cmlabs::XMLNode::getVersion(), cmlabs::XMLNode::isAttributeSet(), cmlabs::XMLNode::nChildNode(), cmlabs::XMLNode::openFileHelper(), cmlabs::XMLNode::parseFile(), cmlabs::XMLNode::parseString(), cmlabs::XMLNode::positionOfChildNode(), cmlabs::XMLNode::positionOfClear(), cmlabs::XMLNode::positionOfText(), cmlabs::stringDup(), cmlabs::ToXMLStringTool::toXML(), cmlabs::ToXMLStringTool::toXMLUnSafe(), cmlabs::XMLNode::UnitTest(), cmlabs::XMLNode::updateAttribute(), cmlabs::XMLNode::updateAttribute(), cmlabs::XMLNode::updateAttribute_WOSD(), cmlabs::XMLNode::updateClear(), cmlabs::XMLNode::updateClear(), cmlabs::XMLNode::updateClear_WOSD(), cmlabs::XMLNode::updateName(), cmlabs::XMLNode::updateName_WOSD(), cmlabs::XMLNode::updateText(), cmlabs::XMLNode::updateText(), cmlabs::XMLNode::updateText_WOSD(), cmlabs::XMLNode::updateText_WOSD(), and cmlabs::XMLNode::writeToFile().

◆ XMLDLLENTRY [1/2]

#define XMLDLLENTRY

Definition at line 82 of file xml_parser.h.

◆ XMLDLLENTRY [2/2]

#define XMLDLLENTRY

Definition at line 82 of file xml_parser.h.

Referenced by cmlabs::freeXMLString(), and cmlabs::stringDup().

◆ XMLSTR