/* * MapOfActions.hpp * * Created on: 10.05.2010 * Author: heber */ #ifndef MAPOFACTIONS_HPP_ #define MAPOFACTIONS_HPP_ #include "Helpers/Assert.hpp" #include #include #include class MapOfActionsTest; #include "Patterns/Singleton.hpp" namespace po = boost::program_options; class MapOfActions : public Singleton { friend class Singleton; friend class MapOfActionsTest; public: enum OptionTypes { None, Boolean, Integer, ListOfInts, Double, ListOfDoubles, String, Axis, Vector, Box, Molecule, ListOfMolecules, Atom, ListOfAtoms, Element, ListOfElements }; // getter for the action descriptions and short forms std::string getDescription(string actionname); std::string getKeyAndShortForm(string actionname); std::string getShortForm(string actionname); void AddOptionsToParser(); // check presence and getter for action type bool hasValue(string actionname); bool isShortFormPresent(string shortform); enum OptionTypes getValueType(string actionname); set generic; set config; set hidden; set visible; set inputfile; private: // private constructor and destructor MapOfActions(); virtual ~MapOfActions(); // lookup list from our configs to the ones of CommandLineParser map< set *, po::options_description *> CmdParserLookup; // map of the action names and their description map DefaultValue; map DescriptionMap; map ShortFormMap; map TypeMap; }; #endif /* MAPOFACTIONS_HPP_ */