libkipr  1.0.0
config.hpp
Go to the documentation of this file.
1 #ifndef _KIPR_CONFIG_CONFIG_HPP_
2 #define _KIPR_CONFIG_CONFIG_HPP_
3 
4 #include <string>
5 #include <map>
6 #include <vector>
7 #include "kipr/export/export.h"
8 
9 namespace kipr
10 {
11  namespace config
12  {
14  {
15  public:
16  Config();
17  Config(const std::map<std::string, std::string> &config);
18 
19  static Config *load(const std::string &path);
20  bool save(const std::string &path) const;
21 
22  void beginGroup(const std::string &group);
23  void endGroup();
24  void clearGroup();
25 
26  void clear();
27 
28  bool containsKey(const std::string &key) const;
29 
30  bool boolValue(const std::string &key) const;
31  int intValue(const std::string &key) const;
32  double doubleValue(const std::string &key) const;
33  std::string stringValue(const std::string &key) const;
34 
35  void setValue(const std::string &key, const bool &value);
36  void setValue(const std::string &key, const int &value);
37  void setValue(const std::string &key, const double &value);
38  void setValue(const std::string &key, const char *value);
39  void setValue(const std::string &key, const std::string &value);
40 
41  Config values() const;
42  void addValues(const Config &config);
43 
44  private:
45  std::string safeKey(std::string key) const;
46  std::string group() const;
47 
48  std::map<std::string, std::string> m_config;
49  std::vector<std::string> m_groups;
50  mutable std::string m_cachedGroup;
51  };
52  }
53 }
54 
55 #endif
Definition: config.hpp:14
void addValues(const Config &config)
std::string stringValue(const std::string &key) const
double doubleValue(const std::string &key) const
void setValue(const std::string &key, const int &value)
void setValue(const std::string &key, const char *value)
void setValue(const std::string &key, const double &value)
static Config * load(const std::string &path)
Config(const std::map< std::string, std::string > &config)
bool save(const std::string &path) const
Config values() const
bool boolValue(const std::string &key) const
void setValue(const std::string &key, const bool &value)
bool containsKey(const std::string &key) const
int intValue(const std::string &key) const
void setValue(const std::string &key, const std::string &value)
void beginGroup(const std::string &group)
#define EXPORT_SYM
Definition: export.h:7
Definition: accel.hpp:7