00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef Fennel_ConfigMap_Included
00025 #define Fennel_ConfigMap_Included
00026
00027 #include <map>
00028
00029 #include "fennel/common/TraceSource.h"
00030
00031 FENNEL_BEGIN_NAMESPACE
00032
00037 class FENNEL_COMMON_EXPORT ConfigMap : public TraceSource
00038 {
00039 typedef std::map<std::string,std::string> StringMap;
00040 typedef StringMap::iterator StringMapIter;
00041 typedef StringMap::const_iterator StringMapConstIter;
00042
00043 StringMap paramVals;
00044
00045 public:
00049 explicit ConfigMap();
00050
00054 virtual ~ConfigMap();
00055
00063 void readParams(std::istream ¶mStream);
00064
00070 void dumpParams(std::ostream &dumpStream) const;
00071
00076 void mergeFrom(const ConfigMap&);
00077
00078
00088 std::string getStringParam(
00089 std::string paramName,
00090 std::string defaultVal = "") const;
00091
00101 int getIntParam(
00102 std::string paramName,
00103 int defaultVal = 0) const;
00104
00114 long getLongParam(
00115 std::string paramName,
00116 long defaultVal = 0) const;
00117
00127 bool getBoolParam(
00128 std::string paramName,
00129 bool defaultVal = false) const;
00130
00138 bool isParamSet(std::string paramName) const;
00139
00147 void setStringParam(
00148 std::string paramName,
00149 std::string paramVal);
00150
00154 void clear();
00155 };
00156
00157 FENNEL_END_NAMESPACE
00158
00159 #endif
00160
00161