ConfigMap.h

Go to the documentation of this file.
00001 /*
00002 // $Id: //open/dev/fennel/common/ConfigMap.h#13 $
00003 // Fennel is a library of data storage and processing components.
00004 // Copyright (C) 2005-2009 The Eigenbase Project
00005 // Copyright (C) 2005-2009 SQLstream, Inc.
00006 // Copyright (C) 2005-2009 LucidEra, Inc.
00007 // Portions Copyright (C) 1999-2009 John V. Sichi
00008 //
00009 // This program is free software; you can redistribute it and/or modify it
00010 // under the terms of the GNU General Public License as published by the Free
00011 // Software Foundation; either version 2 of the License, or (at your option)
00012 // any later version approved by The Eigenbase Project.
00013 //
00014 // This program is distributed in the hope that it will be useful,
00015 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017 // GNU General Public License for more details.
00018 //
00019 // You should have received a copy of the GNU General Public License
00020 // along with this program; if not, write to the Free Software
00021 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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 &paramStream);
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 // End ConfigMap.h

Generated on Mon Jun 22 04:00:18 2009 for Fennel by  doxygen 1.5.1