UCommon
Public Member Functions
ucommon::keypager< T, M > Class Template Reference

A template class for a hash pager. More...

#include <memory.h>

Inheritance diagram for ucommon::keypager< T, M >:
Inheritance graph
[legend]
Collaboration diagram for ucommon::keypager< T, M >:
Collaboration graph
[legend]

Public Member Functions

T * begin (void)
 Find first typed object in hash map to iterate.
unsigned count (void)
 Count the number of typed objects in our hash map.
T * get (char *name)
 Find a typed object derived from NamedObject in the hash map by name.
T ** index (void)
 Convert our hash map into a linear object pointer array.
 keypager (size_t size)
 Create the object cache.
T * next (T *current)
 Find next typed object in hash map for iteration.
T * operator[] (char *name)
 Find a typed object derived from NamedObject in the hash map by name.
T ** sort (void)
 Convert our hash map into an alphabetically sorted linear object pointer array.
bool test (char *name)
 Test if a name exists in the pool.
 ~keypager ()
 Destroy the hash pager by purging the index chains and memory pools.

Detailed Description

template<class T, unsigned M = 177>
class ucommon::keypager< T, M >

A template class for a hash pager.

This creates objects from a pager pool when they do not already exist in the hash map.

Author:
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 830 of file memory.h.


Constructor & Destructor Documentation

template<class T , unsigned M = 177>
ucommon::keypager< T, M >::keypager ( size_t  size) [inline]

Create the object cache.

Parameters:
sizeof allocation units.

Definition at line 840 of file memory.h.


Member Function Documentation

template<class T , unsigned M = 177>
T* ucommon::keypager< T, M >::begin ( void  ) [inline]

Find first typed object in hash map to iterate.

Returns:
first typed object or NULL if nothing in list.

Definition at line 884 of file memory.h.

template<class T , unsigned M = 177>
unsigned ucommon::keypager< T, M >::count ( void  ) [inline]

Count the number of typed objects in our hash map.

Returns:
count of typed objects.

Definition at line 899 of file memory.h.

template<class T , unsigned M = 177>
T* ucommon::keypager< T, M >::get ( char *  name) [inline]

Find a typed object derived from NamedObject in the hash map by name.

If the object is not found, it is created from the memory pool.

Parameters:
nameto search for.
Returns:
typed object if found through map or NULL.

Definition at line 854 of file memory.h.

template<class T , unsigned M = 177>
T** ucommon::keypager< T, M >::index ( void  ) [inline]

Convert our hash map into a linear object pointer array.

The object pointer array is created from the heap and must be deleted when no longer used.

Returns:
array of typed named object pointers.

Definition at line 908 of file memory.h.

template<class T , unsigned M = 177>
T* ucommon::keypager< T, M >::next ( T *  current) [inline]

Find next typed object in hash map for iteration.

Parameters:
currenttyped object we are referencing.
Returns:
next iterative object or NULL if past end of map.

Definition at line 892 of file memory.h.

template<class T , unsigned M = 177>
T* ucommon::keypager< T, M >::operator[] ( char *  name) [inline]

Find a typed object derived from NamedObject in the hash map by name.

If the object is not found, it is created from the pager pool.

Parameters:
nameto search for.
Returns:
typed object if found through map or NULL.

Definition at line 877 of file memory.h.

template<class T , unsigned M = 177>
T** ucommon::keypager< T, M >::sort ( void  ) [inline]

Convert our hash map into an alphabetically sorted linear object pointer array.

The object pointer array is created from the heap and must be deleted when no longer used.

Returns:
sorted array of typed named object pointers.

Definition at line 917 of file memory.h.

template<class T , unsigned M = 177>
bool ucommon::keypager< T, M >::test ( char *  name) [inline]

Test if a name exists in the pool.

Parameters:
nameto test.
Returns:
true if found.

Definition at line 868 of file memory.h.


The documentation for this class was generated from the following file: