Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

mootEnum< NameType, NameHashFcn, NameEqualFcn > Class Template Reference

#include <mootEnum.h>

Inheritance diagram for mootEnum:

Inheritance graph
[legend]
List of all members.

Public Types

Public Methods

Public Attributes


Detailed Description

template<class NameType, class NameHashFcn, class NameEqualFcn>
class mootEnum< NameType, NameHashFcn, NameEqualFcn >

Template class for runtime enumerations (symbolic_name<->unsigned_int maps) using STL hash_map<> and vector<>.

Currently just supports monotonically growing enumerations: no support for single-item removal or re-assignment.

Suggests: default constructor for NameType (for default mootEnum constructor).

Requires: g++ flag "-ftemplate-depth-NN", where NN >= 19 for compilation with gcc-2.95.4 using STLport-4.5.3.


Member Typedef Documentation

template<class NameType, class NameHashFcn, class NameEqualFcn>
typedef vector<NameType> mootEnum< NameType, NameHashFcn, NameEqualFcn >::Id2NameMap
 

Type which maps numeric IDs back to symbolic names

template<class NameType, class NameHashFcn, class NameEqualFcn>
typedef hash_map<NameType,mootEnumID,NameHashFcn,NameEqualFcn> mootEnum< NameType, NameHashFcn, NameEqualFcn >::Name2IdMap
 

Type which maps symbolic names to numeric IDs


Constructor & Destructor Documentation

template<class NameType, class NameHashFcn, class NameEqualFcn>
mootEnum< NameType, NameHashFcn, NameEqualFcn >::mootEnum void    [inline]
 

Default constructor

template<class NameType, class NameHashFcn, class NameEqualFcn>
mootEnum< NameType, NameHashFcn, NameEqualFcn >::mootEnum const NameType &    unknownName [inline]
 

Default constructor

template<class NameType, class NameHashFcn, class NameEqualFcn>
mootEnum< NameType, NameHashFcn, NameEqualFcn >::~mootEnum void    [inline]
 

Default destructor


Member Function Documentation

template<class NameType, class NameHashFcn, class NameEqualFcn>
void mootEnum< NameType, NameHashFcn, NameEqualFcn >::clear void    [inline]
 

Clears all mappings, but retains "unknown" name.

template<class NameType, class NameHashFcn, class NameEqualFcn>
const NameType& mootEnum< NameType, NameHashFcn, NameEqualFcn >::id2name const mootEnumID    id const [inline]
 

Lookup name for id. Returns the "unknown" name if id is unregistered.

template<class NameType, class NameHashFcn, class NameEqualFcn>
bool mootEnum< NameType, NameHashFcn, NameEqualFcn >::idExists const mootEnumID    id const [inline]
 

Check whether 'id' is a registered id.

template<class NameType, class NameHashFcn, class NameEqualFcn>
mootEnumID mootEnum< NameType, NameHashFcn, NameEqualFcn >::insert const NameType &    name,
mootEnumID    id = 0
[inline]
 

Insert a new name<->id mapping. If id is unspecified or zero, a new unique id will be assigned. Returns the (new) id.

template<class NameType, class NameHashFcn, class NameEqualFcn>
mootEnumID mootEnum< NameType, NameHashFcn, NameEqualFcn >::name2id const NameType &    name const [inline]
 

Lookup ID for name, returns 0 if name is unregistered.

template<class NameType, class NameHashFcn, class NameEqualFcn>
bool mootEnum< NameType, NameHashFcn, NameEqualFcn >::nameExists const NameType &    name const [inline]
 

Check whether 'name' is a registered name.

template<class NameType, class NameHashFcn, class NameEqualFcn>
mootEnumID mootEnum< NameType, NameHashFcn, NameEqualFcn >::size void    const [inline]
 

Return maximum id

template<class NameType, class NameHashFcn, class NameEqualFcn>
void mootEnum< NameType, NameHashFcn, NameEqualFcn >::unknown_name const NameType &    name [inline]
 

Set the 'unknown' name


Member Data Documentation

template<class NameType, class NameHashFcn, class NameEqualFcn>
Id2NameMap mootEnum< NameType, NameHashFcn, NameEqualFcn >::ids2names
 

template<class NameType, class NameHashFcn, class NameEqualFcn>
Name2IdMap mootEnum< NameType, NameHashFcn, NameEqualFcn >::names2ids
 


The documentation for this class was generated from the following file:
Generated on Wed Jul 28 15:48:03 2004 for libmoot by doxygen1.2.15