# class HashList | A hashed object list class. More...
Full name | `TelEngine::HashList`
Definition | `#include <yateclass.h>`
Inherits | TelEngine::GenObject [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- explicit HashList (unsigned int size = 17)
- virtual ~HashList ()
- virtual void* getObject (const String& name) const
- inline unsigned int length () const
- unsigned int count () const
- inline ObjList* getList (unsigned int index) const
- inline ObjList* getHashList (unsigned int hash) const
- inline 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)
- GenObject* remove (GenObject* obj, bool delobj = true, bool useHash = false)
- inline GenObject* remove (const String& str, bool delobj = true)
- void clear ()
- bool resync (GenObject* obj)
- bool resync ()

## Detailed Description

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 HashList (unsigned int size = 17) | ### HashList

Creates a new, empty list.

Parameters:

size | Number of classes to divide the objects

~HashList () | ### ~HashList

[virtual]

Destroys the list and everything in it.

void* getObject (const String& name) | ### getObject

[const virtual]

Get a pointer to a derived class given that class name

Parameters:

name | Name of the class we are asking for

Returns: Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from GenObject.

inline unsigned int length () | ### length

[const]

Get the number of hash entries

Returns: Count of hash entries

unsigned int count () | ### count

[const]

Get the number of non-null objects in the list

Returns: Count of items

inline ObjList* getList (unsigned int index) | ### getList

[const]

Retrieve one of the internal object lists. This method should be used only to iterate all objects in the list.

Parameters:

index | Index of the internal list to retrieve

Returns: Pointer to the list or NULL

inline ObjList* getHashList (unsigned int hash) | ### getHashList

[const]

Retrieve one of the internal object lists knowing the hash value.

Parameters:

hash | Hash of the internal list to retrieve

Returns: Pointer to the list or NULL if never filled

inline ObjList* getHashList (const String& str) | ### getHashList

[const]

Retrieve one of the internal object lists knowing the String value.

Parameters:

str | String whose hash internal list is to retrieve

Returns: Pointer to the list or NULL if never filled

GenObject* operator[] (const String& str) | ### operator[]

[const]

Array-like indexing operator

Parameters:

str | String value of the object to locate

Returns: Pointer to the first object or NULL

ObjList* find (const GenObject* obj) | ### find

[const]

Get the item in the list that holds an object. The item is searched sequentially in the lists, not using it's String hash

Parameters:

obj | Pointer to the object to search for

Returns: Pointer to the found item or NULL

ObjList* find (const GenObject* obj, unsigned int hash) | ### find

[const]

Get the item in the list that holds an object

Parameters:

obj | Pointer to the object to search for
hash | Object hash used to identify the list it belongs to

Returns: Pointer to the found item or NULL

ObjList* find (const String& str) | ### find

[const]

Get the item in the list that holds an object by String value

Parameters:

str | String value (toString) of the object to search for

Returns: Pointer to the first found item or NULL

ObjList* append (const GenObject* obj) | ### append

Appends an object to the hashed list

Parameters:

obj | Pointer to the object to append

Returns: A pointer to the inserted list item

GenObject* remove (GenObject* obj, bool delobj = true, bool useHash = false) | ### remove

Delete the list item that holds a given object

Parameters:

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

Returns: Pointer to the object if not destroyed

inline GenObject* remove (const String& str, bool delobj = true) | ### remove

Delete the item in the list that holds an object by String value

Parameters:

str | String value (toString) of the object to remove
delobj | True to delete the object (default)

Returns: Pointer to the object if not destroyed

void clear () | ### clear

Clear the list and optionally delete all contained objects

bool resync (GenObject* obj) | ### resync

Resync the list by checking if a stored object belongs to the list according to its hash

Parameters:

obj | Object to resync in the list

Returns: True if object was in the wrong list and had to be moved

bool resync () | ### resync

Resync the list by checking if all stored objects belong to the list according to their hash

Returns: True if at least one object had to be moved

Generated by: paulc on bussard on Mon Feb 10 13:15:47 2014, using kdoc 2.0a54.