1 #ifndef CONFIG_MANAGER_H_
2 #define CONFIG_MANAGER_H_
12 #include <sys/types.h>
14 #include "Configurable.h"
26 list<string>::iterator position;
28 typedef map<string, map<string, Config> > config;
33 static ConfigManager* Instance();
34 static void Finalize();
43 template<
typename T> T Get(
string section,
string key, T defaultValue);
47 template<
typename T>
void Set(
string section,
string key, T value);
55 static void ConfigureAll();
59 void CheckForFileUpdates();
63 static ConfigManager* m_instance;
64 static vector<Configurable*> configurables;
69 void LoadConfig(
string path);
73 void SaveConfig(
string path);
74 list<string> *fileData;
76 map<string, list<string>::iterator> *sectionMap;
78 bool KeyExists(
string section,
string key);
79 string Trim(
string str);
81 const static string ConfigManager::CONFIG_FILE_PATH;
82 const static string ConfigManager::COMMENT_DELIMITERS;
84 DISALLOW_COPY_AND_ASSIGN(ConfigManager);