assoc_pointer< T, I, M, P > Class Template Reference
A typed template for using a key association with typed objects.
More...
#include <memory.h>
Public Member Functions |
| assoc_pointer () |
| Construct an associated pointer hash map based on the class template.
|
unsigned | getCount (void) |
| Get the count of typed objects stored in our hash map.
|
void | purge (void) |
| Purge the hash map of typed objects.
|
T * | locate (const char *name) |
| Lookup a typed object by name.
|
T * | operator() (const char *name) |
| Reference a typed object directly by name.
|
bool | assign (char *name, T *pointer) |
| Assign a name for a pointer to a typed object.
|
bool | create (char *name, T *pointer) |
| Create a new name in the association table and assign typed object.
|
void | remove (char *name) |
| Remove a name and typed pointer association.
|
unsigned | utilization (void) |
| Access to pager utilization stats.
|
unsigned | getPages (void) |
| Access to number of pages allocated from heap for our associated index pointer.
|
Detailed Description
template<class T, unsigned I = 177, size_t M = 0, size_t P = 0>
class assoc_pointer< T, I, M, P >
A typed template for using a key association with typed objects.
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.
- Author:
- David Sugar <dyfet@gnutelephony.org>
Definition at line 479 of file memory.h.
Member Function Documentation
template<class T , unsigned I = 177, size_t M = 0, size_t P = 0>
bool 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.
- Parameters:
-
| name | to assign. |
| pointer | of typed object to assign with name. |
- Returns:
- false if failed because name is too long for managed table.
Definition at line 523 of file memory.h.
template<class T , unsigned I = 177, size_t M = 0, size_t P = 0>
bool assoc_pointer< T, I, M, P >::create |
( |
char * |
name, |
|
|
T * |
pointer | |
|
) |
| | [inline] |
Create a new name in the association table and assign typed object.
- Parameters:
-
| name | to create. |
| pointer | of typed object to assign with name. |
- Returns:
- false if already exists or name is too long for managed table.
Definition at line 532 of file memory.h.
template<class T , unsigned I = 177, size_t M = 0, size_t P = 0>
Get the count of typed objects stored in our hash map.
- Returns:
- typed objects in map.
Reimplemented from keyassoc.
Definition at line 491 of file memory.h.
template<class T , unsigned I = 177, size_t M = 0, size_t P = 0>
Access to number of pages allocated from heap for our associated index pointer.
This is needed because we inherit keyassoc privately.
- Returns:
- count of heap pages used.
Reimplemented from memalloc.
Definition at line 557 of file memory.h.
template<class T , unsigned I = 177, size_t M = 0, size_t P = 0>
T* assoc_pointer< T, I, M, P >::locate |
( |
const char * |
name |
) |
[inline] |
Lookup a typed object by name.
- Parameters:
-
| name | of typed object to locate. |
- Returns:
- typed object pointer or NULL if not found.
Reimplemented from keyassoc.
Definition at line 505 of file memory.h.
template<class T , unsigned I = 177, size_t M = 0, size_t P = 0>
T* assoc_pointer< T, I, M, P >::operator() |
( |
const char * |
name |
) |
[inline] |
Reference a typed object directly by name.
- Parameters:
-
| name | of typed object to locate. |
- Returns:
- typed object pointer or NULL if not found.
Reimplemented from keyassoc.
Definition at line 513 of file memory.h.
template<class T , unsigned I = 177, size_t M = 0, size_t P = 0>
void 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.
- Parameters:
-
Definition at line 540 of file memory.h.
template<class T , unsigned I = 177, size_t M = 0, size_t P = 0>
unsigned assoc_pointer< T, I, M, P >::utilization |
( |
void |
|
) |
[inline] |
Access to pager utilization stats.
This is needed because we inherit keyassoc privately.
- Returns:
- pager utilization, 0-100.
Reimplemented from mempager.
Definition at line 548 of file memory.h.
The documentation for this class was generated from the following file: