30 #define DISABLE_DEBUGLOG 33 #include <gwenhywfar/gwenhywfar.h> 34 #include <gwenhywfar/misc.h> 35 #include <gwenhywfar/debug.h> 36 #include <gwenhywfar/path.h> 37 #include <gwenhywfar/text.h> 38 #include <gwenhywfar/directory.h> 39 #include <gwenhywfar/syncio.h> 40 #include <gwenhywfar/syncio_file.h> 41 #include <gwenhywfar/syncio_memory.h> 42 #include <gwenhywfar/fslock.h> 43 #include <gwenhywfar/pathmanager.h> 54 #include <sys/types.h> 55 #ifdef HAVE_SYS_STAT_H 56 # include <sys/stat.h> 133 "Could not unregister DBIO plugin manager (%d)", rv);
149 const char *fileName)
152 GWEN_DBIO_PLUGIN *pldbio;
166 GWEN_DBIO_PLUGIN *pldbio;
168 pldbio=(GWEN_DBIO_PLUGIN *)p;
176 GWEN_DBIO_PLUGIN *pldbio;
182 assert(pldbio->factoryFn);
183 return pldbio->factoryFn(pl);
191 GWEN_DBIO_PLUGIN *pldbio;
215 dbio->name=strdup(name);
217 dbio->descr=strdup(descr);
229 if (--(dbio->usage)==0) {
268 return dbio->importFn(dbio, sio, db, params, flags);
288 return dbio->exportFn(dbio, sio, db, params, flags);
303 if (dbio->checkFileFn)
304 return dbio->checkFileFn(dbio, fname);
373 "Plugin did not create a GWEN_DBIO");
399 "Could not apply lock to file \"%s\" (%d)",
457 "Could not remove lock on file \"%s\" (%d)",
511 "Could not apply lock to file \"%s\" (%d)",
555 "Could not remove lock on file \"%s\" (%d)",
GWENHYWFAR_API void GWEN_FSLock_free(GWEN_FSLOCK *fl)
struct GWEN_PLUGIN_MANAGER GWEN_PLUGIN_MANAGER
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
int GWEN_SyncIo_Connect(GWEN_SYNCIO *sio)
int GWEN_DBIO_ModuleFini(void)
struct GWEN_DB_NODE GWEN_DB_NODE
struct GWEN_PLUGIN GWEN_PLUGIN
GWEN_DBIO * GWEN_DBIO_new(const char *name, const char *descr)
#define GWEN_INHERIT_FINI(t, element)
#define GWEN_SYNCIO_FILE_FLAGS_WRITE
#define GWEN_SYNCIO_FILE_FLAGS_READ
void GWEN_DBIO_Attach(GWEN_DBIO *dbio)
#define GWEN_FREE_OBJECT(varname)
void GWEN_PluginManager_free(GWEN_PLUGIN_MANAGER *pm)
#define GWEN_SYNCIO_FILE_FLAGS_UREAD
int(* GWEN_DBIO_EXPORTFN)(GWEN_DBIO *dbio, GWEN_SYNCIO *sio, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags)
void GWEN_DBIO_SetCheckFileFn(GWEN_DBIO *dbio, GWEN_DBIO_CHECKFILEFN f)
#define DBG_WARN(dbg_logger, format, args...)
GWEN_PLUGIN * GWEN_PluginManager_GetPlugin(GWEN_PLUGIN_MANAGER *pm, const char *s)
void GWEN_DBIO_SetImportFn(GWEN_DBIO *dbio, GWEN_DBIO_IMPORTFN f)
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)
int(* GWEN_DBIO_IMPORTFN)(GWEN_DBIO *dbio, GWEN_SYNCIO *sio, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
#define GWEN_DB_DEFAULT_LOCK_TIMEOUT
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
int GWEN_DBIO_Export(GWEN_DBIO *dbio, GWEN_SYNCIO *sio, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags)
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
#define GWEN_NEW_OBJECT(typ, varname)
struct GWEN_SYNCIO GWEN_SYNCIO
GWENHYWFAR_API GWEN_FSLOCK * GWEN_FSLock_new(const char *fname, GWEN_FSLOCK_TYPE t)
GWEN_SYNCIO * GWEN_SyncIo_Memory_new(GWEN_BUFFER *buffer, int take)
int GWEN_DBIO_Import(GWEN_DBIO *dbio, GWEN_SYNCIO *sio, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags)
GWEN_PLUGIN_MANAGER * GWEN_PluginManager_new(const char *name, const char *destLib)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
const char * GWEN_DBIO_GetDescription(const GWEN_DBIO *dbio)
void GWENHYWFAR_CB GWEN_DBIO_Plugin_FreeData(GWEN_UNUSED void *bp, void *p)
GWEN_SYNCIO_STATUS GWEN_SyncIo_GetStatus(const GWEN_SYNCIO *sio)
#define GWEN_SYNCIO_FILE_FLAGS_UWRITE
#define GWEN_INHERIT_INIT(t, element)
int GWEN_PluginManager_Register(GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API GWEN_FSLOCK_RESULT GWEN_FSLock_Lock(GWEN_FSLOCK *fl, int timeout, uint32_t gid)
int GWEN_DBIO_ImportFromFile(GWEN_DBIO *dbio, const char *fname, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t dbflags)
#define GWEN_DB_FLAGS_APPEND_FILE
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.
void GWEN_SyncIo_free(GWEN_SYNCIO *sio)
void GWEN_DBIO_free(GWEN_DBIO *dbio)
void GWEN_SyncIo_AddFlags(GWEN_SYNCIO *sio, uint32_t fl)
void GWEN_DBIO_Plugin_SetFactoryFn(GWEN_PLUGIN *pl, GWEN_DBIO_PLUGIN_FACTORYFN f)
#define DBG_ERROR(dbg_logger, format, args...)
struct GWEN_DBIO GWEN_DBIO
int GWEN_SyncIo_Disconnect(GWEN_SYNCIO *sio)
void GWEN_DBIO_SetExportFn(GWEN_DBIO *dbio, GWEN_DBIO_EXPORTFN f)
int GWEN_DBIO_ModuleInit(void)
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
#define GWEN_DB_FLAGS_LOCKFILE
GWEN_DBIO_CHECKFILE_RESULT
#define GWEN_PM_PLUGINDIR
#define DBG_INFO(dbg_logger, format, args...)
GWEN_DBIO_CHECKFILE_RESULT(* GWEN_DBIO_CHECKFILEFN)(GWEN_DBIO *dbio, const char *fname)
const char * GWEN_SyncIo_GetTypeName(const GWEN_SYNCIO *sio)
#define GWEN_LIST_INIT(t, element)
const char * GWEN_DBIO_GetName(const GWEN_DBIO *dbio)
struct GWEN_FSLOCK GWEN_FSLOCK
GWENHYWFAR_API GWEN_SYNCIO * GWEN_SyncIo_File_new(const char *path, GWEN_SYNCIO_FILE_CREATIONMODE cm)
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)
GWEN_DBIO *(* GWEN_DBIO_PLUGIN_FACTORYFN)(GWEN_PLUGIN *pl)
#define GWEN_LIST_FUNCTIONS(t, pr)
GWENHYWFAR_API GWEN_FSLOCK_RESULT GWEN_FSLock_Unlock(GWEN_FSLOCK *fl)
GWEN_DBIO_CHECKFILE_RESULT GWEN_DBIO_CheckFile(GWEN_DBIO *dbio, const char *fname)
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
int GWEN_DBIO_ExportToFile(GWEN_DBIO *dbio, const char *fname, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t dbflags)
GWEN_DBIO * GWEN_DBIO_GetPlugin(const char *modname)
#define GWEN_LIST_FINI(t, element)
#define GWEN_INHERIT_FUNCTIONS(t)
int GWEN_DBIO_ExportToBuffer(GWEN_DBIO *dbio, GWEN_BUFFER *buf, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags)
GWEN_DBIO * GWEN_DBIO_Plugin_Factory(GWEN_PLUGIN *pl)
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_SYNCIO_FILE_FLAGS_APPEND
#define GWEN_INHERIT_GETDATA(bt, t, element)
GWEN_PLUGIN * GWEN_DBIO_Plugin_new(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)