68 #ifndef __CONFPARSER_H 69 #define __CONFPARSER_H 87 _opt_config_entry = entry;
88 _opt_default_value = value;
103 typedef std::map<string, string>::iterator
mapi;
105 typedef std::map<string, string>::const_iterator
mapci;
110 string delimiter =
"=",
111 string comment =
"#",
112 string sentry =
"EndConfigFile");
118 T read(
const string& key)
const;
120 T read(
const string& key,
const T& value)
const;
123 bool readInto(
T& var,
const string& key)
const;
126 bool readInto(
T& var,
const string& key,
const T& value)
const;
130 void add(
string key,
const T& value);
132 void remove(
const string& key);
135 bool keyExists(
const string& key)
const;
151 string old = myDelimiter;
157 string old = myComment;
163 void saveCurrentConfig();
172 static string T_as_string(
const T& t);
175 static T string_as_T(
const string& s);
177 static void trim(
string& s);
186 : filename(filename_) {}
202 std::ostringstream ost;
212 std::istringstream ist(s);
218 inline string ConfigFile::string_as_T<string>(
const string& s) {
225 inline bool ConfigFile::string_as_T<bool>(
const string& s) {
231 for (string::iterator p = sup.begin(); p != sup.end(); ++p) {
234 if (sup ==
string(
"FALSE") || sup ==
string(
"F") ||
235 sup ==
string(
"NO") || sup ==
string(
"N") ||
236 sup ==
string(
"0") || sup ==
string(
"NONE"))
244 mapci p = myContents.find(key);
245 if (p == myContents.end()) {
248 return string_as_T<T>(p->second);
255 mapci p = myContents.find(key);
256 if (p == myContents.end()) {
259 return string_as_T<T>(p->second);
267 mapci p = myContents.find(key);
268 bool found = (p != myContents.end());
270 var = string_as_T<T>(p->second);
280 mapci p = myContents.find(key);
281 bool found = (p != myContents.end());
283 var = string_as_T<T>(p->second);
293 string v = T_as_string(value);
300 #endif // __CONFPARSER_H bool readInto(T &var, const string &key) const
Definition: confparser.h:263
std::map< string, string > myContents
Definition: confparser.h:100
Definition: confparser.h:93
Definition: confparser.h:189
string filename
Definition: confparser.h:183
string getDelimiter() const
Definition: confparser.h:138
Definition: confparser.h:182
std::istream & operator>>(std::istream &is, ConfigFile &cf)
Definition: confparser.cpp:94
string setComment(const string &s)
Definition: confparser.h:156
string getComment() const
Definition: confparser.h:142
string _opt_config_entry
Definition: confparser.h:81
string _opt_name
Definition: confparser.h:79
string myDelimiter
Definition: confparser.h:96
key_not_found(const string &key_=string())
Definition: confparser.h:192
string mySentry
Definition: confparser.h:98
static T string_as_T(const string &s)
Definition: confparser.h:208
file_not_found(const string &filename_=string())
Definition: confparser.h:185
string key
Definition: confparser.h:190
string getSentry() const
Definition: confparser.h:146
string myComment
Definition: confparser.h:97
std::ostream & operator<<(std::ostream &os, const ConfigFile &cf)
Definition: confparser.cpp:83
string _fname
Definition: confparser.h:101
std::map< string, string >::const_iterator mapci
Definition: confparser.h:105
Definition: confparser.h:78
string _opt_default_value
Definition: confparser.h:83
std::map< string, string >::iterator mapi
Definition: confparser.h:103
void add(string key, const T &value)
Definition: confparser.h:291
T read(const string &key) const
Definition: confparser.h:242
string setDelimiter(const string &s)
Definition: confparser.h:150
#define T
Definition: w_okvl_inl.h:45
static string T_as_string(const T &t)
Definition: confparser.h:199
ConfigOption(string name, string entry, string value)
Definition: confparser.h:85