Yate
|
A hashed object list class. More...
#include <yateclass.h>
Public Member Functions | |
HashList (unsigned int size=17) | |
virtual | ~HashList () |
virtual void * | getObject (const String &name) const |
unsigned int | length () const |
unsigned int | count () const |
ObjList * | getList (unsigned int index) const |
ObjList * | getHashList (unsigned int hash) const |
ObjList * | getHashList (const String &str) const |
GenObject * | operator[] (const String &str) const |
ObjList * | find (const GenObject *obj) const |
ObjList * | find (const GenObject *obj, unsigned int hash) const |
ObjList * | find (const String &str) const |
ObjList * | append (const GenObject *obj) |
ObjList * | append (const GenObject *obj, unsigned int hash) |
GenObject * | remove (GenObject *obj, bool delobj=true, bool useHash=false) |
GenObject * | remove (const String &str, bool delobj=true) |
GenObject * | remove (GenObject *obj, unsigned int hash, bool delobj=true) |
void | clear () |
bool | resync (GenObject *obj) |
bool | resync () |
![]() | |
GenObject () | |
virtual | ~GenObject () |
virtual bool | alive () const |
virtual void | destruct () |
virtual const String & | toString () const |
virtual const String & | traceId () const |
NamedCounter * | getObjCounter () const |
NamedCounter * | setObjCounter (NamedCounter *counter) |
Additional Inherited Members | |
![]() | |
static void * | getObject (const String &name, const GenObject *obj) |
static bool | getObjCounting () |
static void | setObjCounting (bool enable) |
static NamedCounter * | getObjCounter (const String &name, bool create=true) |
static ObjList & | getObjCounters () |
A hashed object list class.
A hashed object list handling class. Objects placed in the list are distributed according to their String hash resulting in faster searches. On the other hand an object placed in a hashed list must never change its String value or it becomes unfindable.
|
explicit |
Creates a new, empty list.
size | Number of classes to divide the objects |
|
virtual |
Destroys the list and everything in it.
Appends an object to the hashed list
obj | Pointer to the object to append |
Appends an object to the hashed list
obj | Pointer to the object to append |
hash | Object hash used to identify the list into which this object should be inserted |
void clear | ( | ) |
Clear the list and optionally delete all contained objects
unsigned int count | ( | ) | const |
Get the number of non-null objects in the list
Get the item in the list that holds an object. The item is searched sequentially in the lists, not using it's String hash
obj | Pointer to the object to search for |
Referenced by HashList::remove().
Get the item in the list that holds an object
obj | Pointer to the object to search for |
hash | Object hash used to identify the list it belongs to |
|
inline |
Retrieve one of the internal object lists knowing the hash value.
hash | Hash of the internal list to retrieve |
References HashList::getList().
Referenced by HashList::getHashList().
Retrieve one of the internal object lists knowing the String value.
str | String whose hash internal list is to retrieve |
References HashList::getHashList(), and String::hash().
|
inline |
Retrieve one of the internal object lists. This method should be used only to iterate all objects in the list.
index | Index of the internal list to retrieve |
Referenced by HashList::getHashList().
|
virtual |
Get a pointer to a derived class given that class name
name | Name of the class we are asking for |
Reimplemented from GenObject.
|
inline |
Get the number of hash entries
Array-like indexing operator
str | String value of the object to locate |
Delete the list item that holds a given object
obj | Object to search in the list |
delobj | True to delete the object (default) |
useHash | True to use object hash to identify the list it belongs to |
Delete the item in the list that holds an object by String value
str | String value (toString) of the object to remove |
delobj | True to delete the object (default) |
References HashList::find(), and ObjList::remove().
Delete the item in the list that has the associated hash
obj | Object to search in the list |
hash | Object hash used to identify the list from which to remove the object |
delobj | True to delete the object (default) |
References HashList::find(), and ObjList::remove().
bool resync | ( | GenObject * | obj | ) |
Resync the list by checking if a stored object belongs to the list according to its hash
obj | Object to resync in the list |
bool resync | ( | ) |
Resync the list by checking if all stored objects belong to the list according to their hash