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:
[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] |
|
template<class NameType, class NameHashFcn, class NameEqualFcn> |
mootEnum< NameType, NameHashFcn, NameEqualFcn >::mootEnum |
( |
const NameType & |
unknownName |
) |
[inline] |
|
template<class NameType, class NameHashFcn, class NameEqualFcn> |
mootEnum< NameType, NameHashFcn, NameEqualFcn >::~mootEnum |
( |
void |
|
) |
[inline] |
|
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] |
|
template<class NameType, class NameHashFcn, class NameEqualFcn> |
void mootEnum< NameType, NameHashFcn, NameEqualFcn >::unknown_name |
( |
const NameType & |
name |
) |
[inline] |
|
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
1.2.15