00001 #ifndef GEAR_GearParametersImpl_H
00002 #define GEAR_GearParametersImpl_H 1
00003
00004 #include <map>
00005
00006 #include "gear/GearParameters.h"
00007 #include "gear/GEAR.h"
00008
00009 namespace gear {
00010
00019 class GearParametersImpl : virtual public GearParameters {
00020
00021 public:
00022
00023 typedef std::map< std::string, int > IntMap ;
00024 typedef std::map< std::string, double > DoubleMap ;
00025 typedef std::map< std::string, std::string > StringMap ;
00026 typedef std::map< std::string, IntVec > IntVecMap ;
00027 typedef std::map< std::string, DoubleVec > DoubleVecMap ;
00028 typedef std::map< std::string, StringVec > StringVecMap ;
00029
00030
00032 virtual ~GearParametersImpl() ;
00033
00037 virtual int getIntVal(const std::string & key) const throw (UnknownParameterException, std::exception ) ;
00038
00042 virtual double getDoubleVal(const std::string & key) const throw (UnknownParameterException, std::exception ) ;
00043
00047 virtual const std::string & getStringVal(const std::string & key) const
00048 throw (UnknownParameterException, std::exception ) ;
00049
00053 virtual const std::vector<int> & getIntVals(const std::string & key) const
00054 throw (UnknownParameterException, std::exception ) ;
00055
00059 virtual const std::vector<double> & getDoubleVals(const std::string & key) const
00060 throw (UnknownParameterException, std::exception ) ;
00061
00065 virtual const std::vector<std::string> & getStringVals(const std::string & key) const
00066 throw (UnknownParameterException, std::exception ) ;
00067
00068
00069
00072 virtual void setIntVal(const std::string & key , int val ) ;
00073
00076 virtual void setDoubleVal(const std::string & key, double val ) ;
00077
00080 virtual void setStringVal(const std::string & key , const std::string & val) ;
00081
00084 virtual void setIntVals(const std::string & key, const std::vector<int>& vals) ;
00085
00088 virtual void setDoubleVals(const std::string & key, const std::vector<double>& vals) ;
00089
00092 virtual void setStringVals(const std::string & key, const std::vector<std::string>& vals) ;
00093
00094
00095
00097 virtual const std::vector<std::string> & getIntKeys() const ;
00098
00100 virtual const std::vector<std::string> & getDoubleKeys() const ;
00101
00103 virtual const std::vector<std::string> & getStringKeys() const ;
00104
00106 virtual const std::vector<std::string> & getIntVecKeys() const ;
00107
00109 virtual const std::vector<std::string> & getDoubleVecKeys() const ;
00110
00112 virtual const std::vector<std::string> & getStringVecKeys() const ;
00113
00114 protected:
00115
00116
00117 std::map< std::string, int > _intMap ;
00118 std::map< std::string, double > _doubleMap ;
00119 std::map< std::string, std::string > _stringMap ;
00120 std::map< std::string, IntVec > _intVecMap ;
00121 std::map< std::string, DoubleVec > _doubleVecMap ;
00122 std::map< std::string, StringVec > _stringVecMap ;
00123
00124 mutable StringVec _intKeys ;
00125 mutable StringVec _doubleKeys ;
00126 mutable StringVec _stringKeys ;
00127 mutable StringVec _intVecKeys ;
00128 mutable StringVec _doubleVecKeys ;
00129 mutable StringVec _stringVecKeys ;
00130
00131
00132 };
00133 }
00134
00135 #endif