|
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.
|
|
|
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.
|
|
|
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.
|
|
A linked object base class with members found by name.
This class is used to help form named option lists and other forms of name indexed associative data structures. The id is assumed to be passed from a dupped or dynamically allocated string. If a constant string is used then you must not call delete for this object.
Named objects are either listed on an ordered list or keyed through an associate hash map table. When using a hash table, the name id string is used to determine the slot number to use in a list of n sized linked object lists. Hence, a hash index refers to a specific sized array of object indexes.
- Author
- David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org
Definition at line 381 of file linked.h.