00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00034
#ifndef CHAMELEON_CONF_H
00035
#define CHAMELEON_CONF_H
00036
00037
#include <stdio.h>
00038
00039
#ifdef __cplusplus
00040
extern "C" {
00041
#endif
00042
00043
00044 #define CONFIGMODE_PATHMUSTEXIST 0x000001
00045 #define CONFIGMODE_PATHMUSTNOTEXIST 0x000002
00046 #define CONFIGMODE_PATHCREATE 0x000004
00047
00048 #define CONFIGMODE_NAMEMUSTEXIST 0x000008
00049 #define CONFIGMODE_NAMEMUSTNOTEXIST 0x000010
00050 #define CONFIGMODE_NAMECREATE_GROUP 0x000020
00051 #define CONFIGMODE_NAMECREATE_VARIABLE 0x000040
00052
00053 #define CONFIGMODE_VARIABLE 0x000080
00054 #define CONFIGMODE_OVERWRITE_VARS 0x000100
00055 #define CONFIGMODE_OVERWRITE_GROUPS 0x000200
00056 #define CONFIGMODE_REMOVE_QUOTES 0x000400
00057 #define CONFIGMODE_REMOVE_STARTING_BLANKS 0x000800
00058 #define CONFIGMODE_REMOVE_TRAILING_BLANKS 0x001000
00059 #define CONFIGMODE_ALLOW_PATH_IN_VARS 0x002000
00060 #define CONFIGMODE_ALLOW_GROUPS 0x004000
00061 #define CONFIGMODE_EMPTY_GROUPS 0x008000
00062
00063
00064 CHIPCARD_API typedef struct CONFIGVALUESTRUCT CONFIGVALUE;
00065 CHIPCARD_API typedef struct CONFIGVARIABLESTRUCT CONFIGVARIABLE;
00066 CHIPCARD_API typedef struct CONFIGGROUPSTRUCT CONFIGGROUP;
00067
00068
00071 CHIPCARD_API struct CONFIGVALUESTRUCT {
00072 CONFIGVALUE *
next;
00073 char *
value;
00074 };
00075
00076
00079 CHIPCARD_API struct CONFIGVARIABLESTRUCT {
00080 CONFIGVARIABLE *
next;
00081 char *
name;
00082 CONFIGGROUP *
parent;
00083 CONFIGVALUE *
values;
00084 };
00085
00086
00089 CHIPCARD_API struct CONFIGGROUPSTRUCT {
00090 CONFIGGROUP *
next;
00091 char *
name;
00092 CONFIGGROUP *
parent;
00093 CONFIGGROUP *
groups;
00094 CONFIGVARIABLE *
variables;
00095 };
00096
00097
00102
CHIPCARD_API CONFIGGROUP *
Config_new();
00103
00107
CHIPCARD_API void Config_free(CONFIGGROUP *g);
00108
00109
00120
CHIPCARD_API const char *
Config_GetValue(CONFIGGROUP *root,
00121
const char *path,
00122
const char *defaultValue,
00123
int idx);
00124
00129
CHIPCARD_API int Config_GetIntValue(CONFIGGROUP *root,
00130
const char *path,
00131
int defaultValue,
00132
int idx);
00133
00142
CHIPCARD_API int Config_SetValue(CONFIGGROUP *root,
00143
unsigned int mode,
00144
const char *path,
00145
const char *value);
00146
00151
CHIPCARD_API int Config_SetIntValue(CONFIGGROUP *root,
00152
unsigned int mode,
00153
const char *path,
00154
int value);
00155
00164
CHIPCARD_API int Config_AddValue(CONFIGGROUP *root,
00165
unsigned int mode,
00166
const char *path,
00167
const char *value);
00168
00172
CHIPCARD_API int Config_ClearVariable(CONFIGGROUP *root,
00173
unsigned int mode,
00174
const char *path);
00175
00189
CHIPCARD_API CONFIGGROUP *
Config_ParseLine(CONFIGGROUP *root,
00190 CONFIGGROUP *group,
00191
const char *s,
00192
int mode);
00193
00201
CHIPCARD_API int Config_ReadFile(CONFIGGROUP *root,
00202
const char *fname,
00203
int mode);
00204
00212
CHIPCARD_API int Config_WriteFile(CONFIGGROUP *root,
00213
const char *fname,
00214
int mode);
00215
00219
CHIPCARD_API void Config_AddVariable(CONFIGGROUP *p, CONFIGVARIABLE *v);
00220
00221
00230
CHIPCARD_API int Config_DumpGroup(FILE *f, CONFIGGROUP *root,
00231
int ins);
00232
00236
CHIPCARD_API CONFIGGROUP *
Config_GetGroup(CONFIGGROUP *root,
00237
const char *path,
00238
unsigned int mode);
00239
00240
00247
CHIPCARD_API void Config_AddGroup(CONFIGGROUP *p, CONFIGGROUP *w);
00248
00253
void Config_ImportTreeChildren(CONFIGGROUP *p, CONFIGGROUP *g);
00254
00261
CHIPCARD_API void Config_UnlinkGroup(CONFIGGROUP *p, CONFIGGROUP *w);
00262
00266
CHIPCARD_API void Config_ClearGroup(CONFIGGROUP *g);
00267
00268
00272
CHIPCARD_API CONFIGGROUP *
Config_Duplicate(CONFIGGROUP *root);
00273
00278
CHIPCARD_API void Config_ImportGroup(CONFIGGROUP *root, CONFIGGROUP *g);
00279
00280
00286
CHIPCARD_API int Config_Compare(
const char *s1,
const char *s2);
00287
00288
#ifdef __cplusplus
00289
}
00290
#endif
00291
00292
00293
#endif
00294
00295
00296
00297