Provided by: libcommoncpp2-doc_1.8.1-6.1_all bug

NAME

       ost::MapTable - A map table allows for entities to be mapped (hash index) onto it.

SYNOPSIS

       #include <object.h>

       Inherits ost::Mutex.

   Public Member Functions
       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.

   Protected Member Functions
       void cleanup (void)

   Protected Attributes
       unsigned range
       unsigned count
       MapObject ** map

   Friends
       class MapObject
       class MapIndex

   Additional Inherited Members

Detailed Description

       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@gnutelephony.org Table to hold hash indexed objects.

Constructor & Destructor Documentation

   ost::MapTable::MapTable (unsigned size)
       Create a map table with a specified number of slots.

       Parameters:
           number of slots.

   virtual ost::MapTable::~MapTable () [virtual]
       Destroy the table, calls cleanup.

Member Function Documentation

   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:
           object to add.

   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:
           object to map.

   void ost::MapTable::cleanup (void) [protected]
   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.

   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.

   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.

   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:
           id string

       Returns:
           index slot in table.

   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.

   void* ost::MapTable::getObject (const char * id)
       Lookup an object by id key. It is returned as void * for easy re-cast.

       Parameters:
           key to find.

       Returns:
           pointer to found object or NULL.

   unsigned ost::MapTable::getRange (void) [inline]
       Return range of this table.

       Returns:
           table range.

   unsigned ost::MapTable::getSize (void) [inline]
       Return the number of object stored in this table.

       Returns:
           table size.

   MapTable& ost::MapTable::operator+= (MapObject & obj)
       An operator to map an object to the table.

       Returns:
           table being used.

       Parameters:
           object being mapped.

   virtual MapTable& ost::MapTable::operator-= (MapObject & obj) [virtual]
       This operator is virtual in case it must also add the object to a managed free list.

       Returns:
           current table.

       Parameters:
           object entity to remove.

Friends And Related Function Documentation

   friend class MapIndex [friend]
   friend class MapObject [friend]

Member Data Documentation

   unsigned ost::MapTable::count [protected]
   MapObject** ost::MapTable::map [protected]
   unsigned ost::MapTable::range [protected]

Author

       Generated automatically by Doxygen for GNU CommonC++ from the source code.