00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef SETTINGS_H_
00010 #define SETTINGS_H_
00011
00012 #include <string>
00013
00014 namespace srchilite {
00015
00017 enum SettingError {
00018 NO_SETTING_ERROR = 0, CANT_CREATE_DIR, CANT_CREATE_FILE
00019 };
00020
00068 class Settings {
00070 std::string homeDir;
00071
00073 std::string confDir;
00074
00076 std::string confFileName;
00077
00079 std::string testFileName;
00080
00082 std::string dataDir;
00083 public:
00084 Settings();
00085 ~Settings();
00086
00087 const std::string getConfDir() const {
00088 return confDir;
00089 }
00090
00091 void setConfDir(const std::string &dir) {
00092 confDir = dir;
00093 }
00094
00095 const std::string getConfFileName() const {
00096 return confFileName;
00097 }
00098
00099 const std::string getTestFileName() const {
00100 return testFileName;
00101 }
00102
00103 void setTestFileName(const std::string &name) {
00104 testFileName = name;
00105 }
00106
00107 const std::string getDataDir() const {
00108 return dataDir;
00109 }
00110
00111 void setDataDir(const std::string &ddir) {
00112 dataDir = ddir;
00113 }
00114
00119 bool checkForConfFile();
00120
00125 bool checkForTestFile();
00126
00131 bool readDataDir();
00132
00137 SettingError save();
00138
00161 static const std::string retrieveDataDir(bool reload = false);
00162
00166 static const std::string getDefaultDataDir();
00167
00174 static void setGlobalDataDir(const std::string &dataDir);
00175
00182 static bool checkSettings();
00183 };
00184
00185 }
00186
00187 #endif