30 #define DISABLE_DEBUGLOG 33 #include "configmgr_p.h" 35 #include <gwenhywfar/gwenhywfar.h> 36 #include <gwenhywfar/misc.h> 37 #include <gwenhywfar/url.h> 38 #include <gwenhywfar/debug.h> 107 "Could not unregister ConfigMgr plugin manager (%d)", rv);
128 mgr->url=strdup(url);
209 of=mgr->unlockGroupFn;
210 mgr->unlockGroupFn=f;
223 of=mgr->getUniqueIdFn;
224 mgr->getUniqueIdFn=f;
237 of=mgr->mkUniqueIdFromIdFn;
238 mgr->mkUniqueIdFromIdFn=f;
251 of=mgr->deleteGroupFn;
252 mgr->deleteGroupFn=f;
265 of=mgr->listGroupsFn;
279 of=mgr->listSubGroupsFn;
280 mgr->listSubGroupsFn=f;
288 const char *groupName,
289 const char *subGroupName,
294 return mgr->getGroupFn(mgr, groupName, subGroupName, pDb);
302 const char *groupName,
303 const char *subGroupName,
308 return mgr->setGroupFn(mgr, groupName, subGroupName, db);
316 const char *groupName,
317 const char *subGroupName)
321 return mgr->hasGroupFn(mgr, groupName, subGroupName);
329 const char *groupName,
330 const char *subGroupName)
333 if (mgr->lockGroupFn)
334 return mgr->lockGroupFn(mgr, groupName, subGroupName);
342 const char *groupName,
343 const char *subGroupName)
346 if (mgr->unlockGroupFn)
347 return mgr->unlockGroupFn(mgr, groupName, subGroupName);
355 const char *groupName,
360 if (mgr->getUniqueIdFn)
361 return mgr->getUniqueIdFn(mgr, groupName, buffer, bufferLen);
369 const char *groupName,
376 if (mgr->mkUniqueIdFromIdFn)
377 return mgr->mkUniqueIdFromIdFn(mgr, groupName, uid, doCheck, buffer, bufferLen);
385 const char *groupName,
386 const char *subGroupName)
389 if (mgr->deleteGroupFn)
390 return mgr->deleteGroupFn(mgr, groupName, subGroupName);
401 if (mgr->listGroupsFn)
402 return mgr->listGroupsFn(mgr, sl);
409 const char *groupName,
413 if (mgr->listSubGroupsFn)
414 return mgr->listSubGroupsFn(mgr, groupName, sl);
429 const char *fileName)
432 GWEN_CONFIGMGR_PLUGIN *xpl;
446 GWEN_CONFIGMGR_PLUGIN *xpl;
448 xpl=(GWEN_CONFIGMGR_PLUGIN *)p;
457 GWEN_CONFIGMGR_PLUGIN *xpl;
471 GWEN_CONFIGMGR_PLUGIN *xpl;
477 assert(xpl->factoryFn);
478 return xpl->factoryFn(pl, url);
518 "Plugin did not create a GWEN_CONFIGMGR");
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_GETGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName, GWEN_DB_NODE **pDb)
int GWEN_ConfigMgr_ModuleFini(void)
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_DELETEGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
void GWEN_Url_free(GWEN_URL *st)
struct GWEN_CONFIGMGR GWEN_CONFIGMGR
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_LOCKGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_MKUNIQUEIDFROMID_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, uint32_t uid, int doCheck, char *buffer, uint32_t bufferLen)
struct GWEN_PLUGIN_MANAGER GWEN_PLUGIN_MANAGER
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
struct GWEN_DB_NODE GWEN_DB_NODE
struct GWEN_PLUGIN GWEN_PLUGIN
#define GWEN_INHERIT_FINI(t, element)
int GWEN_ConfigMgr_DeleteGroup(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
#define GWEN_DIR_SEPARATOR_S
GWEN_CONFIGMGR_DELETEGROUP_FN GWEN_ConfigMgr_SetDeleteGroupFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_DELETEGROUP_FN f)
GWEN_CONFIGMGR * GWEN_ConfigMgr_new(const char *url)
#define GWEN_FREE_OBJECT(varname)
void GWEN_PluginManager_free(GWEN_PLUGIN_MANAGER *pm)
const char * GWEN_Url_GetProtocol(const GWEN_URL *st)
GWEN_CONFIGMGR_GETGROUP_FN GWEN_ConfigMgr_SetGetGroupFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_GETGROUP_FN f)
GWEN_CONFIGMGR *(* GWEN_CONFIGMGR_PLUGIN_FACTORYFN)(GWEN_PLUGIN *pl, const char *url)
void GWEN_ConfigMgr_free(GWEN_CONFIGMGR *mgr)
GWEN_PLUGIN * GWEN_PluginManager_GetPlugin(GWEN_PLUGIN_MANAGER *pm, const char *s)
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_UNLOCKGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
int GWEN_ConfigMgr_UnlockGroup(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
GWEN_PLUGIN_MANAGER * GWEN_PluginManager_FindPluginManager(const char *s)
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
#define GWEN_NEW_OBJECT(typ, varname)
#define GWEN_CONFIGMGR_PLUGIN_NAME
int GWEN_ConfigMgr_ListSubGroups(GWEN_CONFIGMGR *mgr, const char *groupName, GWEN_STRINGLIST *sl)
GWEN_CONFIGMGR_GETUNIQUEID_FN GWEN_ConfigMgr_SetGetUniqueIdFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_GETUNIQUEID_FN f)
#define GWEN_CONFIGMGR_FOLDER
int GWEN_ConfigMgr_LockGroup(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
GWEN_CONFIGMGR_MKUNIQUEIDFROMID_FN GWEN_ConfigMgr_SetMkUniqueIdFromIdFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_MKUNIQUEIDFROMID_FN f)
int GWEN_ConfigMgr_HasGroup(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
GWEN_PLUGIN_MANAGER * GWEN_PluginManager_new(const char *name, const char *destLib)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
GWEN_CONFIGMGR_UNLOCKGROUP_FN GWEN_ConfigMgr_SetUnlockGroupFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_UNLOCKGROUP_FN f)
void GWEN_ConfigMgr_Plugin_SetFactoryFn(GWEN_PLUGIN *pl, GWEN_CONFIGMGR_PLUGIN_FACTORYFN f)
#define GWEN_INHERIT_INIT(t, element)
int GWEN_PluginManager_Register(GWEN_PLUGIN_MANAGER *pm)
void GWENHYWFAR_CB GWEN_ConfigMgr_Plugin_FreeData(GWEN_UNUSED void *bp, void *p)
GWEN_STRINGLIST * GWEN_PathManager_GetPaths(const char *destLib, const char *pathName)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
GWEN_CONFIGMGR * GWEN_ConfigMgr_Factory(const char *url)
GWEN_PLUGIN * GWEN_ConfigMgr_Plugin_new(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)
#define DBG_ERROR(dbg_logger, format, args...)
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_GETUNIQUEID_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, char *buffer, uint32_t bufferLen)
int GWEN_ConfigMgr_ListGroups(GWEN_CONFIGMGR *mgr, GWEN_STRINGLIST *sl)
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_SETGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db)
GWEN_URL * GWEN_Url_fromString(const char *str)
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
GWEN_CONFIGMGR_LOCKGROUP_FN GWEN_ConfigMgr_SetLockGroupFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_LOCKGROUP_FN f)
#define GWEN_PM_PLUGINDIR
#define DBG_INFO(dbg_logger, format, args...)
int GWEN_ConfigMgr_MkUniqueIdFromId(GWEN_CONFIGMGR *mgr, const char *groupName, uint32_t uid, int doCheck, char *buffer, uint32_t bufferLen)
GWEN_CONFIGMGR_LISTSUBGROUPS_FN GWEN_ConfigMgr_SetListSubGroupsFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_LISTSUBGROUPS_FN f)
int GWEN_ConfigMgr_GetGroup(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName, GWEN_DB_NODE **pDb)
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_LISTSUBGROUPS_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, GWEN_STRINGLIST *sl)
GWEN_CONFIGMGR_SETGROUP_FN GWEN_ConfigMgr_SetSetGroupFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_SETGROUP_FN f)
int GWEN_PluginManager_Unregister(GWEN_PLUGIN_MANAGER *pm)
int GWEN_PluginManager_AddPath(GWEN_PLUGIN_MANAGER *pm, const char *callingLib, const char *s)
#define GWEN_INHERIT(bt, t)
int GWEN_ConfigMgr_ModuleInit(void)
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_LISTGROUPS_FN)(GWEN_CONFIGMGR *mgr, GWEN_STRINGLIST *sl)
GWEN_CONFIGMGR_LISTGROUPS_FN GWEN_ConfigMgr_SetListGroupsFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_LISTGROUPS_FN f)
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
GWEN_CONFIGMGR_HASGROUP_FN GWEN_ConfigMgr_SetHasGroupFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_HASGROUP_FN f)
int GWEN_ConfigMgr_SetGroup(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db)
#define GWEN_INHERIT_FUNCTIONS(t)
GWEN_PLUGIN * GWEN_Plugin_new(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
#define GWEN_INHERIT_GETDATA(bt, t, element)
int GWEN_ConfigMgr_GetUniqueId(GWEN_CONFIGMGR *mgr, const char *groupName, char *buffer, uint32_t bufferLen)
GWEN_CONFIGMGR * GWEN_ConfigMgr_Plugin_Factory(GWEN_PLUGIN *pl, const char *url)
int GWENHYWFAR_CB(* GWEN_CONFIGMGR_HASGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
#define GWEN_ERROR_NOT_IMPLEMENTED