00001 00002 #ifndef CONFIGVARS_H 00003 #define CONFIGVARS_H 00004 00005 class ConfigVars 00006 { 00007 public: 00008 ConfigVars(const char *configFilename=0); 00009 ~ConfigVars(); 00010 int readConfigFile(const char *filename); 00011 int addDomain(const char *domain); 00012 int useDomain(const char *domain=0); 00013 int addVariable(const char *name, const char *value); 00014 const char* findVariable(const char *name); 00015 int removeVariable(const char *name); 00016 private: 00017 struct Variable { 00018 const char *name; 00019 const char *value; 00020 struct Variable *next; 00021 }; 00022 struct Domain { 00023 const char *name; 00024 struct Variable *vars; 00025 struct Domain *next; 00026 }; 00027 Variable* findVariableRec(const char *name); 00028 Domain *domains; 00029 Domain *domainInUse; 00030 }; 00031 00032 #endif