13#ifndef ML_XMLTREE_NODE_H
14#define ML_XMLTREE_NODE_H
70 static const char* _stdErrorMsg[];
138 void addChild (
unsigned long val,
const char* tagName)
override;
139 void addChild (
long val,
const char* tagName)
override;
142 void addChild (
long double val,
const char* tagName)
override;
155 void addChild(
const std::string&
str,
const char* tagName)
override;
192 bool hasChild (
const char* tagName =
nullptr)
override;
195 void readChild (
unsigned long& val,
const char* tagName =
nullptr)
override;
196 void readChild (
long& val,
const char* tagName =
nullptr)
override;
199 void readChild (
long double& val,
const char* tagName =
nullptr)
override;
209 void readChild (
void*& ptr,
unsigned long&
noBytes,
const char* tagName =
nullptr)
override;
217 void readChild(std::string& val,
const char* tagName =
nullptr)
override;
Defines library specific stuff, mostly for system independence.
Class representing general ML objects that support import/export via strings (setPersistentState() an...
SubImageBoxd - SubImageBox with coordinates of float data type.
The class TreeNodeException is the base class for all exceptions thrown by the class TreeNode and all...
The class TreeNode is the abstract base class for the import/export of ML objects.
ConstructionMode
TreeNode construction modes:
The XMLTreeNodeException class extends the exceptions already provided by class TreeNodeException.
XMLTreeNodeException(int errorCode=0, const char *msg=nullptr)
Constructor.
const char * getMessage() const override
Returns an error message containing error code and message (if present).
The class XMLTreeNode implements the abstract class TreeNode to allow export and import of ML objects...
void readFromString(const std::string &str) override
Reads the subtree represented by this node from a string.
void readChild(SubImageBox &val, const char *tagName=nullptr) override
void readChild(Matrix4 &val, const char *tagName=nullptr) override
static void terminateXMLSystem()
void setVersion(const char *className, int version) override
Set version for current node. className is currently not used.
void addChild(const Matrix4 &mat, const char *tagName) override
void readChild(Base *&val, const char *tagName=nullptr) override
The type of the object here is read from the XML file.
void addChild(const void *const ptr, size_t noBytes, const char *tagName) override
void readChild(Vector2 &val, const char *tagName=nullptr) override
void writeToString(std::string &str) override
Generates a string representation of the subtree represented by this node to a file.
static void initXMLSystem()
void addChild(const std::string &str, const char *tagName) override
void addChild(const SubImageBox &box, const char *tagName) override
void readChild(long double &val, const char *tagName=nullptr) override
XMLTreeNode(TreeNode::ConstructionMode mode=TreeNode::CM_writerRoot)
Constructor.
static char * _getTextNodeString(DOMElement *parentNode)
Returns the string contained by the TextNode child of parentNode.
void addChild(const Vector3 &vec, const char *tagName) override
void addChild(const Vector6 &vec, const char *tagName) override
void readChild(ImageVector &val, const char *tagName=nullptr) override
void addChild(unsigned long val, const char *tagName) override
Factory method adding a child encapsulating a variable of type long.
XMLTreeNode * _addTreeNodeChild(DOMElement *child)
Adds a new node containing the given child.
void readChild(SubImageBoxd &val, const char *tagName=nullptr) override
void readChild(unsigned long &val, const char *tagName=nullptr) override
void readChild(Vector6 &val, const char *tagName=nullptr) override
void addChild(const Vector4 &vec, const char *tagName) override
static int _numActiveRootInstances
void addChild(const SubImageBoxd &box, const char *tagName) override
void readChild(Base &val, const char *tagName=nullptr) override
Opposed to the readChild(Base*& ...) method, you have to create the object yourself BEFORE calling th...
DOMElement * _parentDOMNode
pointer to the DOM node actually wrapped by this class
void readFromFile(const char *fileName) override
Generates a tree parsing a file. Throws TNE_FileNotFound, TNE_ReadingFile, TNE_XML_ParserError.
void readChild(Vector3 &val, const char *tagName=nullptr) override
void addChild(const Vector2 &vec, const char *tagName) override
void readChild(MLint64 &val, const char *tagName=nullptr) override
void addChild(const ImageVector &vec, const char *tagName) override
void readChild(long &val, const char *tagName=nullptr) override
XMLTreeNode(DOMElement *parent)
void readChild(Matrix3 &val, const char *tagName=nullptr) override
static bool _xercesInitialized
Indicates whether the Xerces XML SubSystem is already initialized.
~XMLTreeNode() override
Destructor.
DOMElement * _findElemByTagName(const char *tagName, DOMNode *prevNode=nullptr)
Starting from the element after node (or the first element, if node is NULL), returns the first DOM e...
void readChild(Vector4 &val, const char *tagName=nullptr) override
void addChild(long double val, const char *tagName) override
Factory method adding a child encapsulating a variable of type long double.
void addChild(MLuint64 val, const char *tagName) override
Factory method adding a child encapsulating a variable of type MLuint64.
void addChild(long val, const char *tagName) override
Factory method adding a child encapsulating a variable of type long.
void addChild(const Base *const obj, const char *tagName, bool generic=true) override
Adds an child representing an object whose class is derived from base and thus implements the addStat...
void writeToFile(const char *fileName) override
Writes the complete tree to a file. Throws TNE_WritingFile.
TreeNode * addChild(const char *tagName) override
Adds a group or container node with the specified tag name.
void readChild(MLuint64 &val, const char *tagName=nullptr) override
void readChild(TreeNode *&val, const char *tagName=nullptr) override
Returns the group or container node with the specified tag name.
bool hasChild(const char *tagName=nullptr) override
returns true when a child of the given tagName exists.
const char * getLastReadChildName() const override
Returns the name of the child most recently read.
void readChild(void *&ptr, unsigned long &noBytes, const char *tagName=nullptr) override
void readChild(std::string &val, const char *tagName=nullptr) override
The string returned is allocated on the heap.
void addChild(const Matrix3 &mat, const char *tagName) override
static char * normalizeFileName(const char *fileName)
normalizes the given filename so that it can be used by Xerces to read or write a file with the given...
void addChild(MLint64 val, const char *tagName) override
Factory method adding a child encapsulating a variable of type MLint64.
int getVersion(const char *) override
Get version of current node. className is currently not used.
#define PARSER_EXPORT
Definiert systemspezifische Macros, die f"ur diese DLL gelten sollen.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
#define ML_CLASS_HEADER(className)
Same like ML_CLASS_HEADER_EXPORTED with a non existing export symbol.
UINT64 MLuint64
Introduce platform independent 64 bit unsigned integer type.
INT64 MLint64
Include 64 bit integer support for Windows or Unix.
Implement the AbstractPersistence(Input/Output)Stream classes with XML backend.
@ TNE_XML_LAST_MESSAGE_IDX
Only for number calculations; do not use.
@ TNE_XML_ReadingRawDataSize