#include <object.h>
Inheritance diagram for ost::MapTable::
Public Methods | |
MapTable (unsigned size) | |
Create a map table with a specified number of slots. More... | |
virtual | ~MapTable () |
Destroy the table, calls cleanup. More... | |
virtual unsigned | getIndex (const char *id) |
Get index value from id string. More... | |
unsigned | getRange (void) |
Return range of this table. More... | |
void* | getObject (const char *id) |
Lookup an object by id key. More... | |
void | addObject (MapObject &obj) |
Map an object to our table. More... | |
void* | getFree (void) |
Get next object from managed free list. More... | |
void | addFree (MapObject *obj) |
Add an object to the managed free list. More... | |
MapTable& | operator+= (MapObject &obj) |
An operator to map an object to the table. More... | |
virtual MapTable& | operator-= (MapObject &obj) |
This operator is virtual in case it must also add the object to a managed free list. More... | |
Protected Methods | |
void | cleanup (void) |
Protected Attributes | |
unsigned | range |
MapObject** | map |
Friends | |
class | MapObject |
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.
|
Create a map table with a specified number of slots.
|
|
Destroy the table, calls cleanup.
|
|
Add an object to the managed free list. Some MapObject's may override delete operator to detach and do this.
|
|
Map an object to our table. If it is in another table already, it is removed there first.
|
|
|
|
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.
|
|
Get index value from id string. This function can be changed as needed to provide better collision avoidence for specific tables.
|
|
Lookup an object by id key. It is returned as void * for easy re-cast.
|
|
Return range of this table.
|
|
An operator to map an object to the table.
|
|
This operator is virtual in case it must also add the object to a managed free list.
|
|
|
|
|
|
|