Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | Related Pages | Examples

tinycfg.h

00001 /*
00002   $Id: tinycfg.h,v 1.6 2005/01/03 07:42:43 majo Exp $
00003 */
00004 
00005 #if !defined(tinycfg_H)
00006 #define tinycfg_H
00007 
00008 #include <stdio.h>
00009 #include <string.h>
00010 #include <stdlib.h>
00011 #include <errno.h>
00012 
00013 #define ENABLE_XML_CONFIG       1
00014 
00015 #define XMLCFG_MAJOR            1
00016 #define XMLCFG_MINOR            1
00017 
00021 class ConfigInterface
00022 {
00023     public:
00024         ConfigInterface() {}
00025         virtual ~ConfigInterface() {}
00026 
00027         void Sync(void) { Save(); }
00028         virtual bool Load(char* fname) = 0;
00029         virtual bool Save(void) = 0;
00030 
00031         virtual bool ReadBool(char* name, bool &data, const char* domain = 0) = 0;
00032         virtual bool ReadInt(char* name, int &data, const char* domain = 0) = 0;
00033         virtual bool ReadString(char* name, char *data, int max, const char* domain = 0) = 0;
00034         virtual bool ReadDouble(char* name, double &data, const char* domain = 0) = 0;
00035         virtual bool ReadHex(char* name, char *data, int length_of_item, const char* domain = 0) = 0;
00036 
00037         virtual bool ReadBoolArray(char* name, bool data[], int range, const char* domain = 0) = 0;
00038         virtual bool ReadIntArray(char* name, int data[], int range, const char* domain = 0) = 0;
00039         virtual bool ReadStringArray(char* name, char* data[], int max, int range, const char* domain = 0) = 0;
00040         virtual bool ReadDoubleArray(char* name, double data[], int range, const char* domain = 0) = 0;
00041         virtual bool ReadHexArray(char* name, char* data[], int length_of_item, int range, const char* domain = 0) = 0;
00042 
00043         virtual void WriteBool(char* name, bool data, const char* domain = 0) = 0;
00044         virtual void WriteInt(char* name, int data, const char* domain = 0) = 0;
00045         virtual void WriteString(char* name, char* data, const char* domain = 0) = 0;
00046         virtual void WriteDouble(char* name, double data, const char* domain = 0) = 0;
00047         virtual void WriteHex(char* name, char* data, int length_of_item, const char* domain = 0) = 0;
00048 
00049         virtual void WriteBoolArray(char* name, bool data[], int range, const char* domain = 0) = 0;
00050         virtual void WriteIntArray(char* name, int data[], int range, const char* domain = 0) = 0;
00051         virtual void WriteStringArray(char* name, char *data[], int range, const char* domain = 0) = 0;
00052         virtual void WriteDoubleArray(char* name, double data[], int range, const char* domain = 0) = 0;
00053         virtual void WriteHexArray(char* name, char *data[], int length_of_item, int range, const char* domain = 0) = 0;
00054 };
00055 
00148 class Config : public ConfigInterface
00149 {
00150         ConfigInterface* realcfg;
00151     public:
00152         Config(bool write = true);
00153         Config(char *, bool write = true);
00154         virtual ~Config();
00155 
00156         bool IsValid(void);
00157         virtual bool Load(char* fname);
00158         virtual bool Save(void);
00159 
00160         virtual bool ReadBool(char* name, bool &data, const char* domain = 0);
00161         virtual bool ReadInt(char* name, int &data, const char* domain = 0);
00162         virtual bool ReadString(char* name, char *data, int max, const char* domain = 0);
00163         virtual bool ReadDouble(char* name, double &data, const char* domain = 0);
00164         virtual bool ReadHex(char* name, char *data, int length_of_item, const char* domain = 0);
00165 
00166         virtual bool ReadBoolArray(char* name, bool data[], int range, const char* domain = 0);
00167         virtual bool ReadIntArray(char* name, int data[], int range, const char* domain = 0);
00168         virtual bool ReadStringArray(char* name, char* data[], int max, int range, const char* domain = 0);
00169         virtual bool ReadDoubleArray(char* name, double data[], int range, const char* domain = 0);
00170         virtual bool ReadHexArray(char* name, char* data[], int length_of_item, int range, const char* domain = 0);
00171 
00172         virtual void WriteBool(char* name, bool data, const char* domain = 0);
00173         virtual void WriteInt(char* name, int data, const char* domain = 0);
00174         virtual void WriteString(char* name, char* data, const char* domain = 0);
00175         virtual void WriteDouble(char* name, double data, const char* domain = 0);
00176         virtual void WriteHex(char* name, char* data, int length_of_item, const char* domain = 0);
00177 
00178         virtual void WriteBoolArray(char* name, bool data[], int range, const char* domain = 0);
00179         virtual void WriteIntArray(char* name, int data[], int range, const char* domain = 0);
00180         virtual void WriteStringArray(char* name, char *data[], int range, const char* domain = 0);
00181         virtual void WriteDoubleArray(char* name, double data[], int range, const char* domain = 0);
00182         virtual void WriteHexArray(char* name, char *data[], int length_of_item, int range, const char* domain = 0);
00183 };
00184 
00189 #ifdef __BORLANDC__
00190 #ifdef _WIN32
00191 #pragma link "tinycfg.lib"
00192 #else
00193 #pragma link "tinycfg.a"
00194 #endif
00195 #endif
00196 
00197 #endif // Unit1_H

Generated on Wed Feb 9 11:31:35 2005 for OpenGUI by  doxygen 1.4.0