Simple library of INI file parser.

Dependents:   TrainInfoSample WatchSensorMail

Revision:
1:3601c7feb547
Parent:
0:995403221573
--- a/IniFile.h	Tue Nov 16 16:34:45 2010 +0000
+++ b/IniFile.h	Wed Nov 17 16:24:11 2010 +0000
@@ -48,12 +48,10 @@
 private:
 	FILE* m_fp;
 
-	Status strtrim(char* dst, const char* src, int dst_size);
-	
 	// Invalid method
 protected:
-	IniFile(const IniFile& v) {}
-	const IniFile& operator =(const IniFile& v) {return v;}
+	IniFile(const IniFile& v);
+	const IniFile& operator =(const IniFile& v);
 
 public:
 	IniFile(const char* file = 0);
@@ -66,7 +64,7 @@
 	Status get(const char* key, char* ret, int ret_size);
 	Status get(const char* key, int&  ret);
 	Status get(const char* key, bool& ret);
-	Status get(IniList* inilist);
+	Status get(const IniList* inilist);
 	
 	// For easy acccess
 	static Status getval(const char* inifile, const char* key, char* ret, int ret_size){
@@ -78,9 +76,18 @@
 	static Status getval(const char* inifile, const char* key, bool& ret){
 		return IniFile(inifile).get(key, ret);
 	}
-	static Status getval(const char* inifile, IniList* inilist){
+	static Status getval(const char* inifile, const IniList* inilist){
 		return IniFile(inifile).get(inilist);
 	}
+
+	// for string triming
+	static Status strtrim(char* dst, const char* src, int dst_size); // move to public
 };
 
+// for the table
+#define INIFILE_INT(key,  val)		{key,	IniFile::DTYPE_INT,		&val}
+#define INIFILE_BOOL(key, val)		{key,	IniFile::DTYPE_BOOL,	&val}
+#define INIFILE_STR(key, buf, size)	{key,	size,					buf}
+#define INIFILE_END					0
+
 #endif