Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

HashList Class Reference

A hashed object list class. More...

#include <yateclass.h>

Inheritance diagram for HashList:

GenObject List of all members.

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
ObjListgetList (unsigned int index) const
ObjListgetHashList (unsigned int hash) const
ObjListgetHashList (const String &str) const
GenObjectoperator[] (const String &str) const
ObjListfind (const GenObject *obj) const
ObjListfind (const String &str) const
ObjListappend (const GenObject *obj)
GenObjectremove (GenObject *obj, bool delobj=true)
void clear ()
bool resync (GenObject *obj)
bool resync ()

Detailed Description

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.


Constructor & Destructor Documentation

HashList unsigned int  size = 17  ) 
 

Creates a new, empty list.

Parameters:
size Number of classes to divide the objects

virtual ~HashList  )  [virtual]
 

Destroys the list and everything in it.


Member Function Documentation

ObjList* append const GenObject obj  ) 
 

Appends an object to the hashed list

Parameters:
obj Pointer to the object to append
Returns:
A pointer to the inserted list item

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

Returns:
Count of items

ObjList* find const String str  )  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* find const GenObject obj  )  const
 

Get the item in the list that holds an object

Parameters:
obj Pointer to the object to search for
Returns:
Pointer to the found item or NULL

ObjList* getHashList const String str  )  const [inline]
 

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

Parameters:
str String whose hash internal list is to retrive
Returns:
Pointer to the list or NULL if never filled

ObjList* getHashList unsigned int  hash  )  const [inline]
 

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

Parameters:
hash Hash of the internal list to retrive
Returns:
Pointer to the list or NULL if never filled

ObjList* getList unsigned int  index  )  const [inline]
 

Retrive 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 retrive
Returns:
Pointer to the list or NULL

virtual void* getObject const String name  )  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.

unsigned int length  )  const [inline]
 

Get the number of hash entries

Returns:
Count of hash entries

GenObject* operator[] const String str  )  const
 

Array-like indexing operator

Parameters:
str String value of the object to locate
Returns:
Pointer to the first object or NULL

GenObject* remove GenObject obj,
bool  delobj = true
 

Delete the list item that holds a given object

Parameters:
obj Object to search in the list
delobj True to delete the object (default)
Returns:
Pointer to the object if not destroyed

bool 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

bool resync GenObject obj  ) 
 

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


The documentation for this class was generated from the following file:
Generated on Mon Sep 18 20:56:12 2006 for Yate by  doxygen 1.4.4