Public Member Functions |
treemap * | find (char *name) |
| Find a subnode from our node by name.
|
T & | get (void) |
| Return the typed value of this node.
|
treemap * | getChild (char *name) |
| Get direct typed child node of our node of specified name.
|
T & | getData (void) |
| Get the data value of a data based value tree.
|
treemap * | getFirst (void) |
| Get first child of our node.
|
treemap * | getIndexed (unsigned index) |
| Get child member node by index.
|
treemap * | getLeaf (char *name) |
| Find a direct typed leaf node on our node.
|
treemap * | getParent (void) |
| Get the typed parent node for our node.
|
T | getPointer (void) |
| Get the pointer of a pointer based value tree.
|
T | getValue (char *name) |
| Get the value pointer of a leaf node of a pointer tree.
|
bool | isAttribute (void) |
| Test if this node is a leaf node for a tree pointer table.
|
treemap * | leaf (char *name) |
| Search for a leaf node of our node.
|
T & | operator* () |
| Return typed value of this node by pointer reference.
|
void | operator= (T &data) |
| Assign the value of our node.
|
treemap * | path (char *path) |
| Find a subnode by pathname.
|
void | set (T &reference) |
| Set the value of a data based value tree.
|
void | setPointer (T pointer) |
| Set the pointer of a pointer based value tree.
|
| treemap (char *name=((void *) 0)) |
| Construct a typed root node for the tree.
|
| treemap (treemap &source) |
| Construct a copy of the treemap object.
|
| treemap (treemap *parent, char *name) |
| Construct a child node on an existing tree.
|
| treemap (treemap *parent, char *name, T &reference) |
| Construct a child node on an existing tree and assign it's value.
|
OrderedIndex * | getIndex (void) |
| Get the ordered index of our child nodes.
|
bool | isLeaf (void) |
| Test if node has children.
|
bool | isRoot (void) |
| Test if node is root node.
|
| operator bool () |
| Test if this node has a name.
|
bool | operator! () |
| Test if this node is unnamed.
|
void | relist (NamedTree *trunk=((void *) 0)) |
| Default relist is by tail...
|
void | relistHead (NamedTree *trunk) |
| Add leaf to a trunk, by reverse order.
|
void | relistTail (NamedTree *trunk) |
| Add leaf to a trunk, by order.
|
void | remove (void) |
| Remove our node from our parent list.
|
void | setId (char *name) |
| Set or replace the name id of this node.
|
void | add (NamedObject **hash, char *name, unsigned size=1) |
| Add object to hash indexed list.
|
virtual int | compare (char *name) |
| Compare the name of our object to see if equal.
|
bool | equal (char *name) |
| Equal function which calls compare.
|
char * | getId (void) |
| Get the named id string of this object.
|
NamedObject * | getNext (void) |
| Get next effective object when iterating.
|
bool | operator!= (char *name) |
| Comparison operator between our name and a string.
|
bool | operator== (char *name) |
| Comparison operator between our name and a string.
|
void | delist (OrderedIndex *index) |
| Remove our ordered object from an existing index.
|
virtual void | enlist (OrderedIndex *index) |
| List our ordered object in default strategy mode.
|
void | enlistHead (OrderedIndex *index) |
| List our ordered object at start of a linked list on an index.
|
void | enlistTail (OrderedIndex *index) |
| List our ordered object at end of a linked list on an index.
|
void | delist (LinkedObject **root) |
| Locate and remove ourselves from a list of objects.
|
void | enlist (LinkedObject **root) |
| Add our object to an existing linked list through a pointer.
|
bool | isMember (LinkedObject *list) |
| Search to see if we are a member of a specific list.
|
virtual void | release (void) |
| Release list, mark as no longer linked.
|
virtual void | retain (void) |
| Retain by marking as self referenced list.
|
ObjectProtocol * | copy (void) |
| Retain (increase retention of) object when copying.
|
void | operator++ (void) |
| Increase retention operator.
|
void | operator-- (void) |
| Decrease retention operator.
|
virtual | ~ObjectProtocol () |
| Required virtual destructor.
|
template<typename T>
class ucommon::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.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org
Definition at line 1538 of file linked.h.