00001
00027 #ifndef __TUCS_H_INCLUDED__
00028 #define __TUCS_H_INCLUDED__
00029
00034 #define TUCS "0.1.15"
00035
00057 typedef struct setting * tucs_setting;
00058
00062 #define TUCS_BADSETTING NULL
00063
00068 typedef enum {
00070 TypeGeneric = 1,
00071 TypeString = 2,
00072 TypeInt = 3,
00073 TypeDouble = 4,
00074 TypeBool = 5,
00075
00076 TypeGroup = 10,
00077 TypeList = 11
00078 } tucs_type;
00079
00083 typedef unsigned char tucs_bool;
00084
00088 typedef enum {
00089 OK,
00090 EOutOfMem, EWrongType, ENotGroup, EIsGroup, EInvalidSetting,
00091 ENoParentGroup
00092 } tucs_errors;
00093
00097 tucs_errors tucs_error;
00098
00102 typedef enum {
00103 SyncImmediate = 1,
00104 SyncOnCommand = 2
00105 } tucs_syncMode;
00106
00110 typedef enum {
00111 MetaNever = 1,
00112 MetaIfMissing = 2,
00113 MetaIfRootMissing = 3
00114 } tucs_metaconfigMode;
00115
00120 int tucs_init(const char * base_path);
00121
00122
00131 tucs_setting
00132 tucs_declareStringSetting(const char * name, const char * defval,
00133 const char * sdesc, int flags);
00135 tucs_setting
00136 tucs_declareIntSetting(const char * name, int defval,
00137 const char * sdesc, int flags);
00139 tucs_setting
00140 tucs_declareDoubleSetting(const char * name, double defval,
00141 const char * sdesc, int flags);
00143 tucs_setting
00144 tucs_declareBoolSetting(const char * name, tucs_bool defval,
00145 const char * sdesc, int flags);
00146
00155 tucs_setting tucs_getSetting(const char * name);
00156
00160 tucs_setting tucs_getGroupHandle(const char * base_path);
00161
00165 const char * tucs_getStringValue(tucs_setting setting);
00166 int tucs_getIntValue(tucs_setting setting);
00170 const char * tucs_getStringValueByName(const char * name, const char * defval);
00171 int tucs_getIntValueByName(const char * name, int defval);
00172
00176 int tucs_setStringValue(tucs_setting setting, const char * newval);
00177 int tucs_setIntValue (tucs_setting setting, int newval);
00178 int tucs_setDoubleValue(tucs_setting setting, double newval);
00179 int tucs_setBoolValue (tucs_setting setting, tucs_bool newval);
00183 int tucs_setStringValueByName(const char * name, const char * newval);
00184 int tucs_setIntValueByName (const char * name, int newval);
00185 int tucs_setDoubleValueByName(const char * name, double newval);
00186 int tucs_setBoolValueByName (const char * name, tucs_bool newval);
00187
00191 int tucs_setSettingDefault(tucs_setting setting);
00192
00197 const char * tucs_getName(const tucs_setting setting);
00199 const char * tucs_getPath(const tucs_setting setting);
00201 const char * tucs_getPrefix(const tucs_setting setting);
00203 const char * tucs_getDescription(const tucs_setting setting);
00205 tucs_type tucs_getType(const tucs_setting setting);
00206
00207
00214 tucs_setting tucs_setBase(const char * base_path);
00215
00221 int tucs_setSearchOrder(const char * searchlist);
00222
00223
00227 int tucs_setSyncMode(tucs_syncMode syncMode);
00228
00233 int tucs_setMetaconfigMode(tucs_metaconfigMode mode);
00234
00238 tucs_setting tucs_getGroupFirst(tucs_setting group);
00239
00243 tucs_setting tucs_getGroupNext(tucs_setting group);
00244
00249 tucs_setting tucs_getMetaGroup(const tucs_setting set);
00250
00255 tucs_setting tucs_getMetaGroupByName(const char * pathname);
00256
00261 tucs_setting tucs_recreateMetaGroup(const tucs_setting set);
00262
00267 int tucs_commit(void);
00268
00274 void tucs_commitSetting(tucs_setting setting);
00275
00279 void tucs_close(void);
00280
00281
00283 char * tucs_getCurrentUser(void);
00284
00287 void tucs_debugWrite(void);
00288
00289
00290
00291 #endif