ini_type.h

Go to the documentation of this file.
00001 /* $Id: ini_type.h 15085 2009-01-14 20:23:45Z peter1138 $ */
00002 
00005 #ifndef INI_TYPE_H
00006 #define INI_TYPE_H
00007 
00009 enum IniGroupType {
00010   IGT_VARIABLES = 0, 
00011   IGT_LIST      = 1, 
00012 };
00013 
00015 struct IniItem {
00016   IniItem *next; 
00017   char *name;    
00018   char *value;   
00019   char *comment; 
00020 
00027   IniItem(struct IniGroup *parent, const char *name, size_t len = 0);
00028 
00030   ~IniItem();
00031 
00036   void SetValue(const char *value);
00037 };
00038 
00040 struct IniGroup {
00041   IniGroup *next;      
00042   IniGroupType type;   
00043   IniItem *item;       
00044   IniItem **last_item; 
00045   char *name;          
00046   char *comment;       
00047 
00054   IniGroup(struct IniFile *parent, const char *name, size_t len = 0);
00055 
00057   ~IniGroup();
00058 
00066   IniItem *GetItem(const char *name, bool create);
00067 
00071   void Clear();
00072 };
00073 
00075 struct IniFile {
00076   IniGroup *group;               
00077   IniGroup **last_group;         
00078   char *comment;                 
00079   const char **list_group_names; 
00080 
00086   IniFile(const char **list_group_names = NULL);
00087 
00089   ~IniFile();
00090 
00098   IniGroup *GetGroup(const char *name, size_t len = 0);
00099 
00104   void RemoveGroup(const char *name);
00105 
00111   void LoadFromDisk(const char *filename);
00112 
00118   bool SaveToDisk(const char *filename);
00119 };
00120 
00121 #endif /* INI_TYPE_H */

Generated on Wed Jul 15 20:35:59 2009 for OpenTTD by  doxygen 1.5.6