A map table allows for entities to be mapped (hash index) onto it.
More...
#include <object.h>
|
| MapTable (unsigned size) |
| Create a map table with a specified number of slots.
|
|
virtual | ~MapTable () |
| Destroy the table, calls cleanup.
|
|
virtual unsigned | getIndex (const char *id) |
| Get index value from id string.
|
|
unsigned | getRange (void) |
| Return range of this table.
|
|
unsigned | getSize (void) |
| Return the number of object stored in this table.
|
|
void * | getObject (const char *id) |
| Lookup an object by id key.
|
|
void | addObject (MapObject &obj) |
| Map an object to our table.
|
|
void * | getFirst () |
| Get the first element into table, it is returned as void * for easy re-cast.
|
|
void * | getLast () |
| Get the last element into table, it is returned as void * for easy re-cast.
|
|
void * | getEnd () |
| Get table's end, useful for cycle control; it is returned as void * for easy re-cast.
|
|
void * | getFree (void) |
| Get next object from managed free list.
|
|
void | addFree (MapObject *obj) |
| Add an object to the managed free list.
|
|
MapTable & | operator+= (MapObject &obj) |
| An operator to map an object to the table.
|
|
virtual MapTable & | operator-= (MapObject &obj) |
| This operator is virtual in case it must also add the object to a managed free list.
|
|
| Mutex (const char *name=NULL) |
| The mutex is always initialized as a recursive entity.
|
|
virtual | ~Mutex () |
| Destroying the mutex removes any system resources associated with it.
|
|
void | nameMutex (const char *name) |
| Enable setting of mutex name for deadlock debug.
|
|
void | enterMutex (void) |
| Entering a Mutex locks the mutex for the current thread.
|
|
void | enter (void) |
| Future abi will use enter/leave/test members.
|
|
void | leave (void) |
| Future abi will use enter/leave/test members.
|
|
bool | test (void) |
| Future abi will use enter/leave/test members.
|
|
bool | tryEnterMutex (void) |
| Tries to lock the mutex for the current thread.
|
|
void | leaveMutex (void) |
| Leaving a mutex frees that mutex for use by another thread.
|
|
|
static void | setDebug (bool mode) |
| Enable or disable deadlock debugging.
|
|
A map table allows for entities to be mapped (hash index) onto it.
Unlike with Assoc, This form of map table also allows objects to be removed from the table. This table also includes a mutex lock for thread safety. A free list is also optionally maintained for reusable maps.
- Author
- David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org
Table to hold hash indexed objects.
◆ MapTable()
ost::MapTable::MapTable |
( |
unsigned |
size | ) |
|
Create a map table with a specified number of slots.
- Parameters
-
◆ ~MapTable()
virtual ost::MapTable::~MapTable |
( |
| ) |
|
|
virtual |
Destroy the table, calls cleanup.
◆ addFree()
void ost::MapTable::addFree |
( |
MapObject * |
obj | ) |
|
Add an object to the managed free list.
Some MapObject's may override delete operator to detach and do this.
- Parameters
-
◆ addObject()
void ost::MapTable::addObject |
( |
MapObject & |
obj | ) |
|
Map an object to our table.
If it is in another table already, it is removed there first.
- Parameters
-
◆ cleanup()
void ost::MapTable::cleanup |
( |
void |
| ) |
|
|
protected |
◆ getEnd()
void * ost::MapTable::getEnd |
( |
| ) |
|
|
inline |
Get table's end, useful for cycle control; it is returned as void * for easy re-cast.
- Returns
- pointer to found object or NULL.
◆ getFirst()
void * ost::MapTable::getFirst |
( |
| ) |
|
Get the first element into table, it is returned as void * for easy re-cast.
- Returns
- pointer to found object or NULL.
◆ getFree()
void * ost::MapTable::getFree |
( |
void |
| ) |
|
Get next object from managed free list.
This returns as a void so it can be recast into the actual type being used in derived MapObject's. A derived version of MapTable may well offer an explicit type version of this. Some derived MapObject's may override new to use managed list.
- Returns
- next object on free list.
◆ getIndex()
virtual unsigned ost::MapTable::getIndex |
( |
const char * |
id | ) |
|
|
virtual |
Get index value from id string.
This function can be changed as needed to provide better collision avoidence for specific tables.
- Parameters
-
- Returns
- index slot in table.
◆ getLast()
void * ost::MapTable::getLast |
( |
| ) |
|
Get the last element into table, it is returned as void * for easy re-cast.
- Returns
- pointer to found object or NULL.
◆ getObject()
void * ost::MapTable::getObject |
( |
const char * |
id | ) |
|
Lookup an object by id key.
It is returned as void * for easy re-cast.
- Parameters
-
- Returns
- pointer to found object or NULL.
◆ getRange()
unsigned ost::MapTable::getRange |
( |
void |
| ) |
|
|
inline |
Return range of this table.
- Returns
- table range.
◆ getSize()
unsigned ost::MapTable::getSize |
( |
void |
| ) |
|
|
inline |
Return the number of object stored in this table.
- Returns
- table size.
◆ operator+=()
An operator to map an object to the table.
- Returns
- table being used.
- Parameters
-
◆ operator-=()
This operator is virtual in case it must also add the object to a managed free list.
- Returns
- current table.
- Parameters
-
◆ MapIndex
◆ MapObject
◆ count
unsigned ost::MapTable::count |
|
protected |
◆ map
◆ range
unsigned ost::MapTable::range |
|
protected |
The documentation for this class was generated from the following file: