Main Page | Directories | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

mootEnum< NameType, NameHashFcn, NameEqualFcn > Class Template Reference

#include <mootEnum.h>

Inheritance diagram for mootEnum< NameType, NameHashFcn, NameEqualFcn >:

Inheritance graph
[legend]
List of all members.

Public Types

Public Member Functions

Public Attributes


Detailed Description

template<class NameType, class NameHashFcn = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
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 = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
typedef vector<NameType> mootEnum< NameType, NameHashFcn, NameEqualFcn >::Id2NameMap
 

Type which maps numeric IDs back to symbolic names

template<class NameType, class NameHashFcn = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
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 = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
mootEnum< NameType, NameHashFcn, NameEqualFcn >::mootEnum void   )  [inline]
 

Default constructor

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

Default constructor

template<class NameType, class NameHashFcn = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
mootEnum< NameType, NameHashFcn, NameEqualFcn >::~mootEnum void   )  [inline]
 

Default destructor


Member Function Documentation

template<class NameType, class NameHashFcn = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
void mootEnum< NameType, NameHashFcn, NameEqualFcn >::clear void   )  [inline]
 

Clears all mappings, but retains "unknown" name.

template<class NameType, class NameHashFcn = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
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 = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
bool mootEnum< NameType, NameHashFcn, NameEqualFcn >::idExists const mootEnumID  id  )  const [inline]
 

Check whether 'id' is a registered id.

template<class NameType, class NameHashFcn = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
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 = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
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 = hash <NameType>, class NameEqualFcn = equal_to <NameType>>
bool mootEnum< NameType, NameHashFcn, NameEqualFcn >::nameExists const NameType &  name  )  const [inline]
 

Check whether 'name' is a registered name.

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

Return maximum id

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

Set the 'unknown' name


Member Data Documentation

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

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


The documentation for this class was generated from the following file:
Generated on Mon Jun 27 13:05:26 2005 for libmoot by  doxygen 1.3.8-20040913