13 #ifndef ML_XMLTREE_NODE_H
14 #define ML_XMLTREE_NODE_H
22 #include "../mlParserSystem.h"
31 class XercesDOMParser;
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;
156 void addChild (
const void*
const ptr,
size_t noBytes,
const char* tagName)
override;
166 void addChild (
const Base*
const obj,
const char* tagName,
bool generic =
true)
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;
211 void readChild(
void*& ptr,
unsigned long& noBytes,
const char* tagName =
nullptr)
override;
216 void readChild(std::string& val,
const char* tagName =
nullptr)
override;
243 void setVersion(
const char* className,
int version)
override;
303 using TreeNode::addChild;
304 using TreeNode::readChild;
307 void _initFromParser(XercesDOMParser& parser);
313 DOMNode* _lastNodeRead;
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.
const char * getMessage() const override
Returns an error message containing error code and message (if present).
XMLTreeNodeException(int errorCode=0, const char *msg=nullptr)
Constructor.
The class XMLTreeNode implements the abstract class TreeNode to allow export and import of ML objects...
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 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
void deleteMemory(void *ptr) override
frees memory obtained with readChild(void*& ...)
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.
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 for adding a child encapsulating a variable of type long.
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...
TreeNode * addChild(const char *tagName) override
Adds a group or container node with the specified tag name.
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
XMLTreeNode * _addTreeNodeChild(DOMElement *child)
Adds a new node containing the given child.
const char * getLastReadChildName() const override
Returns the name of the child most recently read.
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.
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...
~XMLTreeNode() override
Destructor.
void readChild(Vector4 &val, const char *tagName=nullptr) override
void addChild(long double val, const char *tagName) override
Factory method for adding a child encapsulating a variable of type long double.
void addChild(MLuint64 val, const char *tagName) override
Factory method for adding a child encapsulating a variable of type MLuint64.
void addChild(long val, const char *tagName) override
Factory method for 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.
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.
void readChild(void *&ptr, unsigned long &noBytes, const char *tagName=nullptr) override
The returned ptr (string) must be deleted later with deleteMemory(ptr)
void readChild(std::string &val, const char *tagName=nullptr) override
void addChild(const Matrix3 &mat, const char *tagName) override
void addChild(MLint64 val, const char *tagName) override
Factory method for adding a child encapsulating a variable of type MLint64.
int getVersion(const char *) override
Get version of current node. className is currently not used.
static char * _getTextNodeString(DOMElement *parentNode)
Returns the string contained by the TextNode child of parentNode.
#define PARSER_EXPORT
Definiert systemspezifische Macros, die f"ur diese DLL gelten sollen.
#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