evio
5.2
|
Virtual class represents an evio node in memory, concrete sub-classes evioDOMContainerNode and evioDOMLeafNode are hidden from users. More...
#include <evioUtil.hxx>
Public Member Functions | |
virtual | ~evioDOMNode (void) |
virtual void | addNode (evioDOMNodeP node) throw (evioException) |
Adds node to container node. More... | |
void | append (const string &s) throw (evioException) |
Appends string to leaf node. More... | |
void | append (const char *s) throw (evioException) |
Appends const char* to leaf node. More... | |
void | append (char *s) throw (evioException) |
Appends char* to leaf node. More... | |
void | append (const char **ca, int len) throw (evioException) |
Appends array of const char* to leaf node. More... | |
void | append (char **ca, int len) throw (evioException) |
Appends array of const char* to leaf node. More... | |
template<typename T > | |
void | append (T tVal) throw (evioException) |
template<typename T > | |
void | append (const vector< T > &tVec) throw (evioException) |
template<typename T > | |
void | append (const T *tBuf, int len) throw (evioException) |
template<typename T > | |
void | replace (const vector< T > &tVec) throw (evioException) |
template<typename T > | |
void | replace (const T *tBuf, int len) throw (evioException) |
virtual evioDOMNodeP | cut (void) throw (evioException) |
Cleanly removes node from tree or node hierarchy. More... | |
virtual void | cutAndDelete (void) throw (evioException) |
Cleanly removes node from tree or node hierarchy and recursively deletes node and its contents. More... | |
virtual evioDOMNodeP | move (evioDOMNodeP newParent) throw (evioException) |
Changes node parent. More... | |
virtual bool | operator== (uint16_t tag) const |
True if node tag equals value. More... | |
virtual bool | operator!= (uint16_t tag) const |
True if node tag does not equal value. More... | |
bool | operator== (evioDictEntry tnPair) const |
True if node tag and num same as in evioDictEntry pair. More... | |
bool | operator!= (evioDictEntry tnPair) const |
True if node tag and num NOT the same as in evioDictEntry pair. More... | |
evioDOMNode & | operator<< (evioDOMNodeP node) throw (evioException) |
Adds node to container node. More... | |
evioDOMNode & | operator<< (const string &s) throw (evioException) |
Appends single string to leaf node. More... | |
evioDOMNode & | operator<< (const char *s) throw (evioException) |
Appends single const char* to leaf node. More... | |
evioDOMNode & | operator<< (char *s) throw (evioException) |
Appends single char* to leaf node. More... | |
template<typename T > | |
evioDOMNode & | operator<< (T tVal) throw (evioException) |
template<typename T > | |
evioDOMNode & | operator<< (const vector< T > &tVec) throw (evioException) |
evioDOMNodeList * | getChildList (void) throw (evioException) |
Returns pointer to child list of container node. More... | |
evioDOMNodeListP | getChildren (void) throw (evioException) |
Returns copy of child list of container node. More... | |
template<class Predicate > | |
evioDOMNodeListP | getChildren (Predicate pred) throw (evioException) |
template<typename T > | |
vector< T > * | getVector (void) throw (evioException) |
virtual string | toString (void) const |
Returns XML string listing container node contents. More... | |
virtual string | getHeader (int depth, const evioToStringConfig *config=&defaultToStringConfig) const =0 |
virtual string | getBody (int depth, const evioToStringConfig *config=&defaultToStringConfig) const =0 |
virtual string | getFooter (int depth, const evioToStringConfig *config=&defaultToStringConfig) const =0 |
virtual int | getSize (void) const =0 |
evioDOMNodeP | getParent (void) const |
Returns parent evioDOMNode. More... | |
int | getContentType (void) const |
Returns content type. More... | |
evioDOMTree * | getParentTree (void) const |
Returns parent evioDOMTree. More... | |
bool | isContainer (void) const |
True if node is a container node. More... | |
bool | isLeaf (void) const |
True if node is a leaf node. More... | |
Static Public Member Functions | |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num, ContainerType cType=BANK) throw (evioException) |
Static factory method to create container node. More... | |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num) throw (evioException) |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num, const vector< T > &tVec) throw (evioException) |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num, const T *t, int len) throw (evioException) |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num, const evioSerializable &o, ContainerType cType=BANK) throw (evioException) |
Static factory method to create container node holding evioSerializable object. More... | |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num, void(*f)(evioDOMNodeP c, void *userArg), void *userArg, ContainerType cType=BANK) throw (evioException) |
Static factory method to create container node using C function to fill container. More... | |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num, T *t, void *userArg, ContainerType cType=BANK) throw (evioException) |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num, T *t, void *T::*mfp(evioDOMNodeP c, void *userArg), void *userArg, ContainerType cType=BANK) throw (evioException) |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num, uint16_t formatTag, const string &formatString, uint16_t dataTag, uint8_t dataNum, const vector< uint32_t > &tVec) throw (evioException) |
Static factory method to create composite leaf node. More... | |
static evioDOMNodeP | createEvioDOMNode (uint16_t tag, uint8_t num, uint16_t formatTag, const string &formatString, uint16_t dataTag, uint8_t dataNum, const uint32_t *t, int len) throw (evioException) |
Static factory method to create composite leaf node. More... | |
static evioDOMNodeP | createUnknownEvioDOMNode (uint16_t tag, uint8_t num, const vector< uint32_t > &tVec) throw (evioException) |
Unknown type node constructor used internally. More... | |
static evioDOMNodeP | createUnknownEvioDOMNode (uint16_t tag, uint8_t num, const uint32_t *t, int len) throw (evioException) |
Unknown type node constructor used internally. More... | |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary, ContainerType cType=BANK) throw (evioException) |
Static factory method to create container node. More... | |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary) throw (evioException) |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary, const vector< T > &tVec) throw (evioException) |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary, const T *t, int len) throw (evioException) |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary, const evioSerializable &o, ContainerType cType=BANK) throw (evioException) |
Static factory method to create container node holding evioSerializable object. More... | |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary, void(*f)(evioDOMNodeP c, void *userArg), void *userArg, ContainerType cType=BANK) throw (evioException) |
Static factory method to create container node using C function to fill container. More... | |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary, T *t, void *userArg, ContainerType cType=BANK) throw (evioException) |
template<typename T > | |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary, T *t, void *T::*mfp(evioDOMNodeP c, void *userArg), void *userArg, ContainerType cType=BANK) throw (evioException) |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary, uint16_t formatTag, const string &formatString, uint16_t dataTag, uint8_t dataNum, const vector< uint32_t > &tVec) throw (evioException) |
Static factory method to create composite leaf node. More... | |
static evioDOMNodeP | createEvioDOMNode (const string &name, const evioDictionary *dictionary, uint16_t formatTag, const string &formatString, uint16_t dataTag, uint8_t dataNum, const uint32_t *t, int len) throw (evioException) |
Static factory method to create composite leaf node. More... | |
static evioDOMNodeP | createUnknownEvioDOMNode (const string &name, const evioDictionary *dictionary, const vector< uint32_t > &tVec) throw (evioException) |
Unknown type node constructor used internally. More... | |
static evioDOMNodeP | createUnknownEvioDOMNode (const string &name, const evioDictionary *dictionary, const uint32_t *t, int len) throw (evioException) |
Unknown type node constructor used internally. More... | |
Public Attributes | |
uint16_t | tag |
The node tag, max 16-bits depending on container type. More... | |
uint8_t | num |
The node num, max 8 bits, used by BANK and String container types (2-word header). More... | |
Protected Member Functions | |
evioDOMNode (evioDOMNodeP parent, uint16_t tag, uint8_t num, int contentType) throw (evioException) | |
Container node constructor used internally. More... | |
evioDOMNode (evioDOMNodeP parent, const string &name, const evioDictionary *dictionary, int contentType) throw (evioException) | |
Container node constructor used internally. More... | |
Static Protected Member Functions | |
static string | getIndent (int depth, int size=3) |
Returns indent for pretty-printing, used internally. More... | |
Protected Attributes | |
evioDOMNodeP | parent |
Pointer to node parent. More... | |
evioDOMTree * | parentTree |
Pointer to parent tree if this node is the root. More... | |
int | contentType |
Content type. More... | |
Friends | |
class | evioDOMTree |
Allows evioDOMTree class to manipulate nodes. More... | |
Virtual class represents an evio node in memory, concrete sub-classes evioDOMContainerNode and evioDOMLeafNode are hidden from users.
Users work with nodes via this class, and create nodes via factory method createEvioDOMNode. Factory model ensures nodes are created on heap.
|
protected |
Container node constructor used internally.
par | Parent node |
tag | Node tag |
num | Node num |
contentType | Container node content type |
|
protected |
Container node constructor used internally.
par | Parent node |
name | Bank name dictionary Dictionary to use |
contentType | Container node content type |
References evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
|
virtual |
|
virtual |
Adds node to container node.
node | Node to be added |
void evioDOMNode::append | ( | const string & | s | ) | |
throw | ( | evioException | |||
) |
Appends string to leaf node.
s | string to append |
References evio::evioDOMLeafNode< T >::data.
void evioDOMNode::append | ( | const char * | s | ) | |
throw | ( | evioException | |||
) |
Appends const char* to leaf node.
s | char* to append |
References evio::evioDOMLeafNode< T >::data.
void evioDOMNode::append | ( | char * | s | ) | |
throw | ( | evioException | |||
) |
Appends char* to leaf node.
s | char* to append |
void evioDOMNode::append | ( | const char ** | ca, |
int | len | ||
) | |||
throw | ( | evioException | |
) |
Appends array of const char* to leaf node.
sa | array of char* to append |
References evio::evioDOMLeafNode< T >::data.
void evioDOMNode::append | ( | char ** | ca, |
int | len | ||
) | |||
throw | ( | evioException | |
) |
Appends array of const char* to leaf node.
sa | array of char* to append |
void evio::evioDOMNode::append | ( | T | tVal | ) | |
throw | ( | evioException | |||
) |
void evio::evioDOMNode::append | ( | const vector< T > & | tVec | ) | |
throw | ( | evioException | |||
) |
void evio::evioDOMNode::append | ( | const T * | tBuf, |
int | len | ||
) | |||
throw | ( | evioException | |
) |
|
static |
Static factory method to create container node.
tag | Node tag |
num | Node num |
cType | Container node content type |
|
static |
|
static |
|
static |
|
static |
Static factory method to create container node holding evioSerializable object.
tag | Node tag |
num | Node num |
o | evioSerializable object |
cType | Container node content type |
|
static |
Static factory method to create container node using C function to fill container.
tag | Node tag |
num | Node num |
f | C function that fills container node |
userArg | User arg passed to C function |
cType | Container node content type |
|
static |
|
static |
|
static |
Static factory method to create composite leaf node.
tag | Node tag |
num | Node num |
formatTag | Format tag |
formatString | Format string |
dataTag | Data tag |
dataNum | Data num |
tVec | vector<uint32_t> of data |
|
static |
Static factory method to create composite leaf node.
tag | Node tag |
num | Node num |
formatTag | Format tag |
formatString | Format string |
dataTag | Data tag |
dataNum | Data num |
t | Pointer to uint32_t data |
len | Length of data array |
|
static |
Static factory method to create container node.
name | Node name |
dictionary | Dictionary to use |
cType | Container node content type |
References evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
|
static |
|
static |
|
static |
|
static |
Static factory method to create container node holding evioSerializable object.
name | Node name |
dictionary | Dictionary to use |
o | evioSerializable object |
cType | Container node content type |
References evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
|
static |
Static factory method to create container node using C function to fill container.
name | Node name |
dictionary | Dictionary to use |
f | C function that fills container node |
userArg | User arg passed to C function |
cType | Container node content type |
References evio::evioDictionary::getEntry(), evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
|
static |
|
static |
|
static |
Static factory method to create composite leaf node.
name | Node name |
dictionary | Dictionary to use |
formatTag | Format tag |
formatString | Format string |
dataTag | Data tag |
dataNum | Data num |
tVec | vector<uint32_t> of data |
References evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
|
static |
Static factory method to create composite leaf node.
name | Node name |
dictionary | Dictionary to use |
formatTag | Format tag |
formatString | Format string |
dataTag | Data tag |
dataNum | Data num |
t | Pointer to array of uint32_t data |
len | Length of array |
References evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
|
static |
Unknown type node constructor used internally.
tag | Tag |
num | Num |
tVec | Vector of uint32_t |
References contentType.
|
static |
Unknown type node constructor used internally.
tag | Tag |
num | Num |
t | Pointer to uint32_t array |
len | Length of array |
References contentType.
|
static |
Unknown type node constructor used internally.
name | Name |
dictionary | Dictionary |
tVec | Vector of uint32_t |
References contentType, evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
|
static |
Unknown type node constructor used internally.
name | Name |
dictionary | Dictionary |
t | Pointer to array of uint32_t |
len | Length of array |
References contentType, evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
|
virtual |
Cleanly removes node from tree or node hierarchy.
References evio::evioDOMContainerNode::childList.
|
virtual |
Cleanly removes node from tree or node hierarchy and recursively deletes node and its contents.
Referenced by evio::evioDOMTree::clear().
|
pure virtual |
evioDOMNodeList * evioDOMNode::getChildList | ( | void | ) | ||
throw | ( | evioException | |||
) |
Returns pointer to child list of container node.
References evio::evioDOMContainerNode::childList.
evioDOMNodeListP evioDOMNode::getChildren | ( | void | ) | ||
throw | ( | evioException | |||
) |
Returns copy of child list of container node.
List must be deleted by user
evioDOMNodeListP evio::evioDOMNode::getChildren | ( | Predicate | pred | ) | |
throw | ( | evioException | |||
) |
int evioDOMNode::getContentType | ( | void | ) | const |
Returns content type.
|
pure virtual |
Implemented in evio::evioDOMLeafNode< T >, evio::evioDOMLeafNode< uint32_t >, and evio::evioDOMContainerNode.
|
pure virtual |
Implemented in evio::evioDOMLeafNode< T >, evio::evioDOMLeafNode< uint32_t >, and evio::evioDOMContainerNode.
|
staticprotected |
Returns indent for pretty-printing, used internally.
depth | Depth level |
size | Size of indent per level |
evioDOMNodeP evioDOMNode::getParent | ( | void | ) | const |
Returns parent evioDOMNode.
evioDOMTree * evioDOMNode::getParentTree | ( | void | ) | const |
Returns parent evioDOMTree.
|
pure virtual |
vector<T>* evio::evioDOMNode::getVector | ( | void | ) | ||
throw | ( | evioException | |||
) |
bool evioDOMNode::isContainer | ( | void | ) | const |
True if node is a container node.
bool evioDOMNode::isLeaf | ( | void | ) | const |
True if node is a leaf node.
|
virtual |
Changes node parent.
newParent | New parent |
References evio::evioDOMContainerNode::childList.
|
virtual |
True if node tag does not equal value.
tg | Value to compare to |
bool evioDOMNode::operator!= | ( | evioDictEntry | tnPair | ) | const |
True if node tag and num NOT the same as in evioDictEntry pair.
tnPair | evioDictEntry pair to compare to |
References evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
evioDOMNode & evioDOMNode::operator<< | ( | evioDOMNodeP | node | ) | |
throw | ( | evioException | |||
) |
Adds node to container node.
node | Node to be added |
evioDOMNode & evioDOMNode::operator<< | ( | const string & | s | ) | |
throw | ( | evioException | |||
) |
Appends single string to leaf node.
sRef | String to be added |
evioDOMNode & evioDOMNode::operator<< | ( | const char * | s | ) | |
throw | ( | evioException | |||
) |
Appends single const char* to leaf node.
s | char* to be added |
evioDOMNode & evioDOMNode::operator<< | ( | char * | s | ) | |
throw | ( | evioException | |||
) |
Appends single char* to leaf node.
s | char* to be added |
evioDOMNode& evio::evioDOMNode::operator<< | ( | T | tVal | ) | |
throw | ( | evioException | |||
) |
evioDOMNode& evio::evioDOMNode::operator<< | ( | const vector< T > & | tVec | ) | |
throw | ( | evioException | |||
) |
|
virtual |
True if node tag equals value.
tg | Value to compare to |
bool evioDOMNode::operator== | ( | evioDictEntry | tnPair | ) | const |
True if node tag and num same as in evioDictEntry pair.
tnPair | evioDictEntry pair to compare to |
References evio::evioDictEntry::getNum(), and evio::evioDictEntry::getTag().
void evio::evioDOMNode::replace | ( | const vector< T > & | tVec | ) | |
throw | ( | evioException | |||
) |
void evio::evioDOMNode::replace | ( | const T * | tBuf, |
int | len | ||
) | |||
throw | ( | evioException | |
) |
|
virtual |
Returns XML string listing container node contents.
|
friend |
Allows evioDOMTree class to manipulate nodes.
|
protected |
Content type.
Referenced by createUnknownEvioDOMNode().
uint8_t evio::evioDOMNode::num |
The node num, max 8 bits, used by BANK and String container types (2-word header).
Referenced by evio::evioToStringConfig::skipNode().
|
protected |
Pointer to node parent.
Referenced by evio::evioDOMTree::addBank().
|
protected |
Pointer to parent tree if this node is the root.
uint16_t evio::evioDOMNode::tag |
The node tag, max 16-bits depending on container type.
Referenced by evio::evioToStringConfig::skipNode().