]> git.stg.codes - stg.git/blobdiff - stglibs/conffiles.lib/conffiles.h
Merge branch 'master' into full-month-stats
[stg.git] / stglibs / conffiles.lib / conffiles.h
index d912d9abc31c3a79fd47f932cd42a0bd66c86211..6909c6c91290c5d9e1eeff79d5f5814d161ecdc9 100644 (file)
@@ -35,7 +35,7 @@
 #include <map>
 #include <string>
 
 #include <map>
 #include <string>
 
-#include "os_int.h"
+#include "stg/os_int.h"
 
 using namespace std;
 //---------------------------------------------------------------------------
 
 using namespace std;
 //---------------------------------------------------------------------------
@@ -45,11 +45,11 @@ typedef bool (*StringCaseCmp_t)(const string & str1, const string & str2);
 class CONFIGFILE
 {
 public:
 class CONFIGFILE
 {
 public:
-    CONFIGFILE(const string & fn);
+    CONFIGFILE(const string & fn, bool nook = false);
     ~CONFIGFILE();
     const string & GetFileName() const;
 
     ~CONFIGFILE();
     const string & GetFileName() const;
 
-    // 5 ÆÕÎËÃÉÉ Read* ×ÏÚ×ÒÁÝÁÀÔ 0 ÐÒÉ ÕÓÐÅÛÎÏÍ ÓÞÉÔÙ×ÁÎÉÉ
+    // æÕÎËÃÉÉ Read* ×ÏÚ×ÒÁÝÁÀÔ 0 ÐÒÉ ÕÓÐÅÛÎÏÍ ÓÞÉÔÙ×ÁÎÉÉ
     // É EINVAL ÐÒÉ ÏÔÓÕÔÓ×ÉÉ ÐÁÒÁÍÅÔÒÁ É ×ÙÓÔÁ×ÌÑÀÔ defaulValue
     //int ReadString(const string & param, char * val, int * maxLen, const char * defaultVal) const;
     int ReadString(const string & param, string * val, const string & defaultVal) const;
     // É EINVAL ÐÒÉ ÏÔÓÕÔÓ×ÉÉ ÐÁÒÁÍÅÔÒÁ É ×ÙÓÔÁ×ÌÑÀÔ defaulValue
     //int ReadString(const string & param, char * val, int * maxLen, const char * defaultVal) const;
     int ReadString(const string & param, string * val, const string & defaultVal) const;
@@ -64,19 +64,21 @@ public:
     int ReadULongLongInt(const string & param, uint64_t *, uint64_t) const;
     int ReadDouble(const string & param, double * val, double defaultVal) const;
 
     int ReadULongLongInt(const string & param, uint64_t *, uint64_t) const;
     int ReadDouble(const string & param, double * val, double defaultVal) const;
 
-    //int WriteString(const string & param, const char * val);
-    int WriteString(const string & param, const string & val);
-    int WriteInt(const string & param, int64_t val);
-    int WriteDouble(const string & param, double val);
+    void WriteString(const string & param, const char * val) { return WriteString(param, std::string(val)); }
+    void WriteString(const string & param, const string & val);
+    void WriteInt(const string & param, int64_t val);
+    void WriteDouble(const string & param, double val);
 
 
-    int Error();
+    int Error() const;
+    int Flush() const;
 
 private:
 
 private:
-    int Flush();
-
     map<string, string, StringCaseCmp_t> param_val;
     string fileName;
     map<string, string, StringCaseCmp_t> param_val;
     string fileName;
-    int error;
+    mutable int error;
+    mutable bool changed;
+
+    int Flush(const std::string & path) const;
 };
 //---------------------------------------------------------------------------
 #endif
 };
 //---------------------------------------------------------------------------
 #endif