#include <memory.h>
Inheritance diagram for ucommon::assoc_pointer< T, I, M, P >:
Public Member Functions | |
bool | assign (char *name, T *pointer) |
Assign a name for a pointer to a typed object. | |
assoc_pointer () | |
Construct an associated pointer hash map based on the class template. | |
unsigned | count (void) |
Get the count of typed objects stored in our hash map. | |
bool | create (char *name, T *pointer) |
Create a new name in the association table and assign typed object. | |
T * | locate (char *name) |
Lookup a typed object by name. | |
T * | operator() (char *name) |
Reference a typed object directly by name. | |
T * | operator[] (char *name) |
unsigned | pages (void) |
Access to number of pages allocated from heap for our associated index pointer. | |
void | purge (void) |
Purge the hash map of typed objects. | |
void | remove (char *name) |
Remove a name and typed pointer association. | |
unsigned | utilization (void) |
Access to pager utilization stats. |
This essentially forms a form of "smart pointer" that is a reference to specific typed objects by symbolic name. This is commonly used as for associated indexing of typed objects.
Definition at line 1166 of file memory.h.
bool ucommon::assoc_pointer< T, I, M, P >::assign | ( | char * | name, | |
T * | pointer | |||
) | [inline] |
Assign a name for a pointer to a typed object.
If the name exists, it is re-assigned with the new pointer value, otherwise it is created.
name | to assign. | |
pointer | of typed object to assign with name. |
unsigned ucommon::assoc_pointer< T, I, M, P >::count | ( | void | ) | [inline] |
Get the count of typed objects stored in our hash map.
Reimplemented from ucommon::keyassoc.
bool ucommon::assoc_pointer< T, I, M, P >::create | ( | char * | name, | |
T * | pointer | |||
) | [inline] |
T* ucommon::assoc_pointer< T, I, M, P >::locate | ( | char * | name | ) | [inline] |
Lookup a typed object by name.
name | of typed object to locate. |
Reimplemented from ucommon::keyassoc.
T* ucommon::assoc_pointer< T, I, M, P >::operator() | ( | char * | name | ) | [inline] |
Reference a typed object directly by name.
name | of typed object to locate. |
Reimplemented from ucommon::keyassoc.
unsigned ucommon::assoc_pointer< T, I, M, P >::pages | ( | void | ) | [inline] |
Access to number of pages allocated from heap for our associated index pointer.
This is needed because we inherit keyassoc privately.
Reimplemented from ucommon::memalloc.
void ucommon::assoc_pointer< T, I, M, P >::remove | ( | char * | name | ) | [inline] |
Remove a name and typed pointer association.
If managed key names are used then the memory allocated for the name will be re-used.
name | to remove. |
Reimplemented from ucommon::keyassoc.
unsigned ucommon::assoc_pointer< T, I, M, P >::utilization | ( | void | ) | [inline] |
Access to pager utilization stats.
This is needed because we inherit keyassoc privately.
Reimplemented from ucommon::mempager.