The named tree class is used to form a tree oriented list of associated objects.
More...
|
NamedTree * | find (const char *name) const |
| Find a child node of our object with the specified name.
|
|
NamedTree * | getChild (const char *name) const |
| Find a direct child of our node which matches the specified name.
|
|
NamedTree * | getFirst (void) const |
| Get first child node in our ordered list of children.
|
|
OrderedIndex * | getIndex (void) const |
| Get the ordered index of our child nodes.
|
|
NamedTree * | getIndexed (unsigned index) const |
| Get child by index number.
|
|
NamedTree * | getLeaf (const char *name) const |
| Find a direct leaf node on our node.
|
|
NamedTree * | getParent (void) const |
| Get parent node we are listed as a child on.
|
|
bool | is_leaf (void) const |
| Test if node has children.
|
|
bool | is_root (void) const |
| Test if node is root node.
|
|
NamedTree * | leaf (const char *name) const |
| Find a child leaf node of our object with the specified name.
|
|
| operator bool () const |
| Test if this node has a name.
|
|
bool | operator! () const |
| Test if this node is unnamed.
|
|
NamedTree * | path (const char *path) const |
| Find a subnode by a dot separated list of node names.
|
|
void | relist (NamedTree *trunk=NULL) |
| 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 (const char *name) const |
| Compare the name of our object to see if equal.
|
|
bool | equal (const char *name) const |
| Equal function which calls compare.
|
|
char * | getId (void) const |
| Get the named id string of this object.
|
|
NamedObject * | getNext (void) const |
| Get next effective object when iterating.
|
|
bool | operator!= (const char *name) const |
| Comparison operator between our name and a string.
|
|
bool | operator== (const char *name) const |
| 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.
|
|
OrderedObject * | getNext (void) const |
| Get next ordered member when iterating.
|
|
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.
|
|
LinkedObject * | getNext (void) const |
| Get next effective object when iterating.
|
|
bool | is_member (LinkedObject *list) const |
| 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.
|
|
|
| NamedTree (char *name=NULL) |
| Create a stand-alone or root tree node, with an optional name.
|
|
| NamedTree (const NamedTree &source) |
| Construct a copy of the tree.
|
|
| NamedTree (NamedTree *parent, char *name) |
| Create a tree node as a child of an existing node.
|
|
void | purge (void) |
| Performs object destruction.
|
|
virtual | ~NamedTree () |
| Delete node in a tree.
|
|
virtual void | clearId (void) |
| The behavior of clearing id's can be overridden if they are not assigned as strdup's from the heap...
|
|
| NamedObject () |
| Create an empty unnamed cell object.
|
|
| NamedObject (NamedObject **hash, char *name, unsigned size=1) |
| Create a named object and add to hash indexed list.
|
|
| NamedObject (OrderedIndex *index, char *name) |
| Created a named object on an ordered list.
|
|
| ~NamedObject () |
| Destroy named object.
|
|
| OrderedObject () |
| Construct an ordered object unattached.
|
|
| OrderedObject (const OrderedObject &from) |
|
| OrderedObject (OrderedIndex *index) |
| Construct an ordered object aot end of a an index.
|
|
| LinkedObject () |
| Construct base class unattached to anyone.
|
|
| LinkedObject (const LinkedObject &from) |
|
| LinkedObject (LinkedObject **root) |
| Construct base class attached to a chain of objects.
|
|
|
static unsigned | count (NamedObject **hash, unsigned size) |
| Count the total named objects in a hash table.
|
|
static NamedObject * | find (NamedObject *root, const char *name) |
| Find a named object from a simple list.
|
|
static NamedObject ** | index (NamedObject **hash, unsigned size) |
| Convert a hash index into a linear object pointer array.
|
|
static unsigned | keyindex (const char *name, unsigned size) |
| Internal function to convert a name to a hash index number.
|
|
static NamedObject * | map (NamedObject **hash, const char *name, unsigned size) |
| Find a named object through a hash map table.
|
|
static void | purge (NamedObject **hash, unsigned size) |
| Purge a hash indexed table of named objects.
|
|
static NamedObject * | remove (NamedObject **hash, const char *name, unsigned size) |
| Remove an object from a hash map table.
|
|
static NamedObject * | remove (NamedObject **root, const char *name) |
| Remove a named object from a simple list.
|
|
static NamedObject * | skip (NamedObject **hash, NamedObject *current, unsigned size) |
| Iterate through a hash map table.
|
|
static NamedObject ** | sort (NamedObject **list, size_t count=0) |
| Sort an array of named objects in alphabetical order.
|
|
static unsigned | count (const LinkedObject *root) |
| Count the number of linked objects in a list.
|
|
static LinkedObject * | getIndexed (LinkedObject *root, unsigned index) |
| Get member by index.
|
|
static void | purge (LinkedObject *root) |
| Release all objects from a list.
|
|
The named tree class is used to form a tree oriented list of associated objects.
Typical uses for such data structures might be to form a parsed XML document, or for forming complex configuration management systems or for forming system resource management trees.
- Author
- David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org
Definition at line 575 of file linked.h.