Teuchos::StringToIntMap Class Reference

#include <Teuchos_StringToIntMap.hpp>

List of all members.

Public Member Functions

 StringToIntMap (const std::string &defaultGroupName, int n, const char *strings[])
 
int get (const std::string &option, const std::string &groupName="") const
 
template<class EnumType>
EnumType get (const std::string &option, const std::string &groupName="") const
 
const std::string & defaultGroupName () const
 


Detailed Description

Map a string to an enumeration.

The purpose of this class is to simplify mapping a standard string to an integer which can be interpreted as an enumeration.

Here is an example of its use.


	const int n_opt = 3;
	enum MyOptEnum {
		OPT_ONE
		,OPT_TWO
		,OPT_THREE
	};	// NOTE: Must be 0, 1,..., n_opt - 1
	const char* MyOptStrings[n_opt] = {
		"OPT_ONE
		,"OPT_TWO"
		,"OPT_THREE"
	}; // NOTE: parallels enums in MyOptEnum
	StringToIntMap my_enum_map( "opt_map", n_opt, NyOptStrings );
	...
	switch( my_enum_map.get<MyOptEnum>("OPT_ONE") ) {
		case OPT_ONE:
			// do stuff
		case OPT_TWO:
			// do stuff
		case OPT_THREE:
			// do stuff
		default:
			// ???
	}

  

The number of strings passed to the constructor must equal the number of options in the enumeration. If there are duplicate strings (capitalization concidered) then the exception AlreadyExists is throw. If a string that was not passed in the constructor if given to operator()( const std::string& str ) then the exception DoesNotExist is thrown.

In the constructor, defaultGroupName is used in error messages in the exceptions thrown to help make since out of the message.

The default constructor is not defined and not to be called.

Definition at line 83 of file Teuchos_StringToIntMap.hpp.


Constructor & Destructor Documentation

Teuchos::StringToIntMap::StringToIntMap const std::string &  defaultGroupName,
int  n,
const char *  strings[]
 

Definition at line 33 of file Teuchos_StringToIntMap.cpp.


Member Function Documentation

EnumType Teuchos::StringToIntMap::get const std::string &  option,
const std::string &  groupName = ""
const [inline]
 

Definition at line 47 of file Teuchos_StringToIntMap.cpp.

template<class EnumType>
EnumType Teuchos::StringToIntMap::get const std::string &  option,
const std::string &  groupName = ""
const
 

const std::string & Teuchos::StringToIntMap::defaultGroupName  )  const [inline]
 

Definition at line 131 of file Teuchos_StringToIntMap.hpp.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:30:32 2008 for Teuchos - Trilinos Tools Package by doxygen 1.3.9.1