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>
105 "Could not unregister ConfigMgr plugin manager (%d)", rv);
125 mgr->url=strdup(url);
186 of=mgr->unlockGroupFn;
187 mgr->unlockGroupFn=f;
199 of=mgr->getUniqueIdFn;
200 mgr->getUniqueIdFn=f;
212 of=mgr->mkUniqueIdFromIdFn;
213 mgr->mkUniqueIdFromIdFn=f;
225 of=mgr->deleteGroupFn;
226 mgr->deleteGroupFn=f;
238 of=mgr->listGroupsFn;
251 of=mgr->listSubGroupsFn;
252 mgr->listSubGroupsFn=f;
260 const char *groupName,
261 const char *subGroupName,
265 return mgr->getGroupFn(mgr, groupName, subGroupName, pDb);
273 const char *groupName,
274 const char *subGroupName,
278 return mgr->setGroupFn(mgr, groupName, subGroupName, db);
286 const char *groupName,
287 const char *subGroupName) {
289 if (mgr->lockGroupFn)
290 return mgr->lockGroupFn(mgr, groupName, subGroupName);
298 const char *groupName,
299 const char *subGroupName) {
301 if (mgr->unlockGroupFn)
302 return mgr->unlockGroupFn(mgr, groupName, subGroupName);
310 const char *groupName,
312 uint32_t bufferLen) {
314 if (mgr->getUniqueIdFn)
315 return mgr->getUniqueIdFn(mgr, groupName, buffer, bufferLen);
323 const char *groupName,
327 uint32_t bufferLen) {
329 if (mgr->mkUniqueIdFromIdFn)
330 return mgr->mkUniqueIdFromIdFn(mgr, groupName, uid, doCheck, buffer, bufferLen);
338 const char *groupName,
339 const char *subGroupName) {
341 if (mgr->deleteGroupFn)
342 return mgr->deleteGroupFn(mgr, groupName, subGroupName);
352 if (mgr->listGroupsFn)
353 return mgr->listGroupsFn(mgr, sl);
360 const char *groupName,
363 if (mgr->listSubGroupsFn)
364 return mgr->listSubGroupsFn(mgr, groupName, sl);
379 const char *fileName) {
381 GWEN_CONFIGMGR_PLUGIN *xpl;
394 GWEN_CONFIGMGR_PLUGIN *xpl;
396 xpl=(GWEN_CONFIGMGR_PLUGIN*)p;
404 GWEN_CONFIGMGR_PLUGIN *xpl;
417 GWEN_CONFIGMGR_PLUGIN *xpl;
423 assert(xpl->factoryFn);
424 return xpl->factoryFn(pl, url);
463 "Plugin did not create a GWEN_CONFIGMGR");
int GWEN_ConfigMgr_ModuleFini(void)
void GWEN_Url_free(GWEN_URL *st)
struct GWEN_CONFIGMGR GWEN_CONFIGMGR
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
int(* GWEN_CONFIGMGR_SETGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db)
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)
void GWEN_ConfigMgr_free(GWEN_CONFIGMGR *mgr)
GWEN_PLUGIN * GWEN_PluginManager_GetPlugin(GWEN_PLUGIN_MANAGER *pm, const char *s)
int GWEN_ConfigMgr_UnlockGroup(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
int(* GWEN_CONFIGMGR_UNLOCKGROUP_FN)(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)
int(* GWEN_CONFIGMGR_LISTSUBGROUPS_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, GWEN_STRINGLIST *sl)
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)
int(* GWEN_CONFIGMGR_LOCKGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
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)
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)
int(* GWEN_CONFIGMGR_MKUNIQUEIDFROMID_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, uint32_t uid, int doCheck, char *buffer, uint32_t bufferLen)
#define DBG_ERROR(dbg_logger, format, args...)
int(* 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(* GWEN_CONFIGMGR_GETGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName, GWEN_DB_NODE **pDb)
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 *(* GWEN_CONFIGMGR_PLUGIN_FACTORYFN)(GWEN_PLUGIN *pl, const char *url)
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)
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)
GWEN_CONFIGMGR_LISTGROUPS_FN GWEN_ConfigMgr_SetListGroupsFn(GWEN_CONFIGMGR *mgr, GWEN_CONFIGMGR_LISTGROUPS_FN f)
int(* GWEN_CONFIGMGR_DELETEGROUP_FN)(GWEN_CONFIGMGR *mgr, const char *groupName, const char *subGroupName)
int(* GWEN_CONFIGMGR_LISTGROUPS_FN)(GWEN_CONFIGMGR *mgr, GWEN_STRINGLIST *sl)
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
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)
#define GWEN_ERROR_NOT_IMPLEMENTED