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

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

#include <linked.h>

Public Member Functions

void add (char *name, T &object)
 Add a typed object derived from NamedObject to the hash map by name.
void add (char *name, T *object)
 Add a typed object derived from NamedObject to the hash map by name.
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.
unsigned limit (void)
 Retrieve key size to use in NamedObject constructors.
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 * remove (char *name)
 Remove a typed object derived from NamedObject to the hash map by name.
NamedObject ** root (void)
 Retrieve root of index to use in NamedObject constructors.
T ** sort (void)
 Convert our hash map into an alphabetically sorted linear object pointer array.
 ~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 1724 of file linked.h.


Member Function Documentation

template<class T , unsigned M = 177>
void ucommon::keymap< T, M >::add ( 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 1771 of file linked.h.

template<class T , unsigned M = 177>
void ucommon::keymap< T, M >::add ( 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 1779 of file linked.h.

template<class T , unsigned M = 177>
T* ucommon::keymap< 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 1794 of file linked.h.

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

Count the number of typed objects in our hash map.

Returns:
count of typed objects.

Definition at line 1809 of file linked.h.

template<class T , unsigned M = 177>
T* ucommon::keymap< T, M >::get ( char *  name) [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 1755 of file linked.h.

template<class T , unsigned M = 177>
T** ucommon::keymap< 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 1818 of file linked.h.

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

Retrieve key size to use in NamedObject constructors.

Returns:
key size of hash map.

Definition at line 1747 of file linked.h.

template<class T , unsigned M = 177>
T* ucommon::keymap< 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 1802 of file linked.h.

template<class T , unsigned M = 177>
T& ucommon::keymap< T, M >::operator[] ( char *  name) [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 1763 of file linked.h.

template<class T , unsigned M = 177>
T* ucommon::keymap< T, M >::remove ( 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 1787 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  ) [inline]

Retrieve root of index to use in NamedObject constructors.

Returns:
root node of index.

Definition at line 1740 of file linked.h.

template<class T , unsigned M = 177>
T** ucommon::keymap< 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 1827 of file linked.h.


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