00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _CMS_CMSPROPERTIES_H_
00018 #define _CMS_CMSPROPERTIES_H_
00019
00020 #include <cms/Config.h>
00021
00022 #include <map>
00023 #include <string>
00024 #include <vector>
00025
00026 namespace cms {
00027
00034 class CMS_API CMSProperties {
00035 public:
00036
00037 virtual ~CMSProperties();
00038
00045 virtual int size() const = 0;
00046
00052 virtual bool isEmpty() const = 0;
00053
00062 virtual const char* getProperty(const std::string& name) const = 0;
00063
00074 virtual std::string getProperty(const std::string& name, const std::string& defaultValue) const = 0;
00075
00085 virtual void setProperty(const std::string& name, const std::string& value) = 0;
00086
00094 virtual bool hasProperty(const std::string& name) const = 0;
00095
00106 virtual std::string remove(const std::string& name) = 0;
00107
00114 virtual std::vector<std::string> propertyNames() const = 0;
00115
00123 virtual std::vector< std::pair< std::string, std::string > > toArray() const = 0;
00124
00131 virtual void copy(const CMSProperties* source) = 0;
00132
00138 virtual CMSProperties* clone() const = 0;
00139
00143 virtual void clear() = 0;
00144
00151 virtual std::string toString() const = 0;
00152
00153 };
00154
00155 }
00156
00157 #endif