UCommon
Public Types | Public Member Functions
ucommon::keymap< T, M > Class Template Reference

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

#include <linked.h>

Public Types

typedef linked_pointer< T > iterator
 Convenience typedef for iterative pointer.
 

Public Member Functions

void add (const char *name, T &object)
 Add a typed object derived from NamedObject to the hash map by name. More...
 
void add (const char *name, T *object)
 Add a typed object derived from NamedObject to the hash map by name. More...
 
T * begin (void) const
 Find first typed object in hash map to iterate. More...
 
unsigned count (void) const
 Count the number of typed objects in our hash map. More...
 
T * get (const char *name) const
 Find a typed object derived from NamedObject in the hash map by name. More...
 
T ** index (void) const
 Convert our hash map into a linear object pointer array. More...
 
unsigned limit (void) const
 Retrieve key size to use in NamedObject constructors. More...
 
T * next (T *current) const
 Find next typed object in hash map for iteration. More...
 
T & operator[] (const char *name) const
 Find a typed object derived from NamedObject in the hash map by name. More...
 
T * remove (const char *name)
 Remove a typed object derived from NamedObject to the hash map by name. More...
 
NamedObject ** root (void) const
 Retrieve root of index to use in NamedObject constructors. More...
 
T ** sort (void) const
 Convert our hash map into an alphabetically sorted linear object pointer array. More...
 
 ~keymap ()
 Destroy the hash map by puring the index chains.
 

Detailed Description

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

A template class for a hash map.

This provides a has map index object as a chain of keyindex selected linked pointers of a specified size. This is used for the index and size values for NamedObject's which are listed on a hash map.

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

Definition at line 1855 of file linked.h.

Member Function Documentation

template<class T , unsigned M = 177>
void ucommon::keymap< T, M >::add ( const char *  name,
T &  object 
)
inline

Add a typed object derived from NamedObject to the hash map by name.

Parameters
nameto add.
objectto add.

Definition at line 1907 of file linked.h.

template<class T , unsigned M = 177>
void ucommon::keymap< T, M >::add ( const char *  name,
T *  object 
)
inline

Add a typed object derived from NamedObject to the hash map by name.

Parameters
nameto add.
objectto add.

Definition at line 1916 of file linked.h.

template<class T , unsigned M = 177>
T* ucommon::keymap< T, M >::begin ( void  ) const
inline

Find first typed object in hash map to iterate.

Returns
first typed object or NULL if nothing in list.

Definition at line 1933 of file linked.h.

Here is the call graph for this function:

template<class T , unsigned M = 177>
unsigned ucommon::keymap< T, M >::count ( void  ) const
inline

Count the number of typed objects in our hash map.

Returns
count of typed objects.

Definition at line 1950 of file linked.h.

Here is the call graph for this function:

template<class T , unsigned M = 177>
T* ucommon::keymap< T, M >::get ( const char *  name) const
inline

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

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

Definition at line 1889 of file linked.h.

Here is the call graph for this function:

template<class T , unsigned M = 177>
T** ucommon::keymap< T, M >::index ( void  ) const
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 1960 of file linked.h.

Here is the call graph for this function:

template<class T , unsigned M = 177>
unsigned ucommon::keymap< T, M >::limit ( void  ) const
inline

Retrieve key size to use in NamedObject constructors.

Returns
key size of hash map.

Definition at line 1880 of file linked.h.

template<class T , unsigned M = 177>
T* ucommon::keymap< T, M >::next ( T *  current) const
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 1942 of file linked.h.

Here is the call graph for this function:

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

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

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

Definition at line 1898 of file linked.h.

Here is the call graph for this function:

template<class T , unsigned M = 177>
T* ucommon::keymap< T, M >::remove ( const char *  name)
inline

Remove a typed object derived from NamedObject to the hash map by name.

Parameters
nameto remove.
Returns
object removed if found or NULL.

Definition at line 1925 of file linked.h.

Here is the call graph for this function:

template<class T , unsigned M = 177>
NamedObject** ucommon::keymap< T, M >::root ( void  ) const
inline

Retrieve root of index to use in NamedObject constructors.

Returns
root node of index.

Definition at line 1872 of file linked.h.

template<class T , unsigned M = 177>
T** ucommon::keymap< T, M >::sort ( void  ) const
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 1970 of file linked.h.

Here is the call graph for this function:


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