Embed data objects into a tree structured memory database.
More...
#include <linked.h>
Public Member Functions |
treemap * | find (const char *name) const |
| Find a subnode from our node by name.
|
T & | get (void) const |
| Return the typed value of this node.
|
treemap * | getChild (const char *name) const |
| Get direct typed child node of our node of specified name.
|
T & | getData (void) const |
| Get the data value of a data based value tree.
|
treemap * | getFirst (void) const |
| Get first child of our node.
|
treemap * | getIndexed (unsigned index) const |
| Get child member node by index.
|
treemap * | getLeaf (const char *name) const |
| Find a direct typed leaf node on our node.
|
treemap * | getParent (void) const |
| Get the typed parent node for our node.
|
T | getPointer (void) const |
| Get the pointer of a pointer based value tree.
|
T | getValue (const char *name) const |
| Get the value pointer of a leaf node of a pointer tree.
|
bool | isAttribute (void) const |
| Test if this node is a leaf node for a tree pointer table.
|
treemap * | leaf (const char *name) const |
| Search for a leaf node of our node.
|
T & | operator* () const |
| Return typed value of this node by pointer reference.
|
void | operator= (const T &data) |
| Assign the value of our node.
|
treemap * | path (const char *path) const |
| Find a subnode by pathname.
|
void | set (const T &reference) |
| Set the value of a data based value tree.
|
void | setPointer (const T pointer) |
| Set the pointer of a pointer based value tree.
|
| treemap (treemap *parent, char *name, T &reference) |
| Construct a child node on an existing tree and assign it's value.
|
| treemap (treemap *parent, char *name) |
| Construct a child node on an existing tree.
|
| treemap (char *name=NULL) |
| Construct a typed root node for the tree.
|
| treemap (const treemap &source) |
| Construct a copy of the treemap object.
|
Static Public Member Functions |
static T | getPointer (treemap *node) |
| Return value from tree element when value is a pointer.
|
Protected Attributes |
T | value |
Detailed Description
template<typename T>
class ucc::treemap< T >
Embed data objects into a tree structured memory database.
This can be used to form XML document trees or other data structures that can be organized in trees. The NamedTree class is used to manage the structure of the tree, and the type specified is embedded as a data value object which can be manipulated. Name identifiers are assumed to be dynamically allocated if tree node elements are deletable.
Embedded values can either be of direct types that are then stored as part of the template object, or of class types that are data pointers. The latter might be used for trees that contain data which might be parsed dynamically from a document and/or saved on a heap. Pointer trees assume that NULL pointers are for nodes that are empty, and that NULL data value nodes with children are trunk nodes. Generally data values are then allocated with a pointer stored in pure leaf nodes.
- Author:
- David Sugar <dyfet@gnutelephony.org>
Definition at line 1530 of file linked.h.
Constructor & Destructor Documentation
Construct a typed root node for the tree.
The root node may be named as a stand-alone node or unnamed.
- Parameters:
-
| name | of the node we are creating. |
Definition at line 1541 of file linked.h.
Construct a copy of the treemap object.
- Parameters:
-
| source | of copy for new object. |
Definition at line 1547 of file linked.h.
Construct a child node on an existing tree.
- Parameters:
-
| parent | of this node to attach. |
| name | of this node. |
Definition at line 1555 of file linked.h.
Construct a child node on an existing tree and assign it's value.
- Parameters:
-
| parent | of this node to attach. |
| name | of this node. |
| reference | to value to assign to this node. |
Definition at line 1563 of file linked.h.
Member Function Documentation
Find a subnode from our node by name.
This performs a recursive search.
- Parameters:
-
- Returns:
- typed node that is found or NULL if none is found.
Reimplemented from ucc::NamedTree.
Definition at line 1679 of file linked.h.
Return the typed value of this node.
- Returns:
- reference to value of node.
Definition at line 1570 of file linked.h.
Get direct typed child node of our node of specified name.
This does not perform a recursive search.
- Parameters:
-
- Returns:
- typed child node pointer or NULL if not found.
Reimplemented from ucc::NamedTree.
Definition at line 1651 of file linked.h.
Get the data value of a data based value tree.
- Returns:
- data value of node.
Definition at line 1606 of file linked.h.
Get first child of our node.
This is useful for iterating children.
- Returns:
- first child or NULL.
Reimplemented from ucc::NamedTree.
Definition at line 1704 of file linked.h.
Get child member node by index.
- Parameters:
-
- Returns:
- node or NULL if past end.
Reimplemented from ucc::NamedTree.
Definition at line 1635 of file linked.h.
Find a direct typed leaf node on our node.
A leaf node is a node that has no children of it's own. This does not perform a recursive search.
- Parameters:
-
| name | of leaf child node to find. |
- Returns:
- typed leaf node object of leaf or NULL.
Reimplemented from ucc::NamedTree.
Definition at line 1660 of file linked.h.
Get the typed parent node for our node.
- Returns:
- parent node or NULL if root of tree.
Reimplemented from ucc::NamedTree.
Definition at line 1642 of file linked.h.
Get the pointer of a pointer based value tree.
- Returns:
- value pointer of node.
Definition at line 1599 of file linked.h.
Return value from tree element when value is a pointer.
- Parameters:
-
- Returns:
- value of node.
Definition at line 1585 of file linked.h.
template<typename T >
T ucc::treemap< T >::getValue |
( |
const char * |
name |
) |
const [inline] |
Get the value pointer of a leaf node of a pointer tree.
This allows one to find a leaf node and return it's pointer value in a single operation.
- Parameters:
-
- Returns:
- value of leaf pointer if found and contains value, or NULL.
Definition at line 1670 of file linked.h.
Test if this node is a leaf node for a tree pointer table.
- Returns:
- true if value pointer is not NULL and there are no children.
Definition at line 1592 of file linked.h.
Search for a leaf node of our node.
This performs a recursive search.
- Parameters:
-
- Returns:
- typed not that is found or NULL if none is found.
Reimplemented from ucc::NamedTree.
Definition at line 1697 of file linked.h.
Return typed value of this node by pointer reference.
- Returns:
- value of node.
Definition at line 1577 of file linked.h.
template<typename T >
void ucc::treemap< T >::operator= |
( |
const T & |
data |
) |
[inline] |
Assign the value of our node.
- Parameters:
-
Definition at line 1627 of file linked.h.
Find a subnode by pathname.
This is the same as the NamedTree path member function.
- Parameters:
-
| path | name to search for node. |
- Returns:
- typed node that is found at path or NULL.
Reimplemented from ucc::NamedTree.
Definition at line 1688 of file linked.h.
template<typename T >
void ucc::treemap< T >::set |
( |
const T & |
reference |
) |
[inline] |
Set the value of a data based value tree.
- Parameters:
-
| reference | to value to copy into node. |
Definition at line 1620 of file linked.h.
template<typename T >
void ucc::treemap< T >::setPointer |
( |
const T |
pointer |
) |
[inline] |
Set the pointer of a pointer based value tree.
- Parameters:
-
Definition at line 1613 of file linked.h.
The documentation for this class was generated from the following file: