60 typedef std::map<std::string,std::string>::iterator
mapi;
61 typedef std::map<std::string,std::string>::const_iterator
mapci;
66 std::string delimiter =
"=",
68 std::string sentry =
"EndConfigFile" );
72 template<
class T>
T read(
const std::string&
key )
const;
73 template<
class T>
T read(
const std::string&
key,
const T&
value )
const;
74 template<
class T>
bool readInto(
T& var,
const std::string&
key )
const;
75 template<
class T>
bool readInto(
T& var,
const std::string&
key,
const T&
value )
const;
80 template<
class T>
void add( std::string
key,
const T&
value );
81 void remove(
const std::string&
key );
100 template<
class T>
static std::string
T_as_string(
const T&
t );
101 template<
class T>
static T string_as_T(
const std::string&
s );
102 static void trim( std::string&
s );
124 std::ostringstream ost;
137 std::istringstream ist(s);
145 inline std::string ConfigFile::string_as_T<std::string>(
const std::string&
s )
155 inline bool ConfigFile::string_as_T<bool>(
const std::string&
s )
162 for( std::string::iterator
p = sup.begin();
p != sup.end(); ++
p )
164 if( sup==std::string(
"FALSE") || sup==std::string(
"F") ||
165 sup==std::string(
"NO") || sup==std::string(
"N") ||
166 sup==std::string(
"0") || sup==std::string(
"NONE") )
178 return string_as_T<T>( p->second );
189 return string_as_T<T>( p->second );
211 if( found ) var = string_as_T<T>( p->second );
225 var = string_as_T<T>( p->second );
243 #endif // CONFIGFILE_H
std::string setComment(const std::string &s)
T read(const std::string &key) const
void add(std::string key, const T &value)
static void trim(std::string &s)
friend std::istream & operator>>(std::istream &is, ConfigFile &cf)
std::map< std::string, std::string > myContents
std::string getSentry() const
static T string_as_T(const std::string &s)
friend std::ostream & operator<<(std::ostream &os, const ConfigFile &cf)
std::string getDelimiter() const
static std::string T_as_string(const T &t)
bool keyExists(const std::string &key) const
std::map< std::string, std::string >::const_iterator mapci
std::string getComment() const
std::map< std::string, std::string >::iterator mapi
std::string setDelimiter(const std::string &s)
bool readInto(T &var, const std::string &key) const