#include "dbio_p.h"
#include <gwenhywfar/gwenhywfar.h>
#include <gwenhywfar/misc.h>
#include <gwenhywfar/debug.h>
#include <gwenhywfar/path.h>
#include <gwenhywfar/bufferedio.h>
#include <gwenhywfar/text.h>
#include <gwenhywfar/directory.h>
#include <gwenhywfar/iolayer.h>
#include <gwenhywfar/iomanager.h>
#include <gwenhywfar/io_file.h>
#include <gwenhywfar/io_memory.h>
#include <gwenhywfar/fslock.h>
#include <gwenhywfar/pathmanager.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include <errno.h>
#include <ctype.h>
#include <sys/types.h>
Go to the source code of this file.
void GWEN_DBIO_Attach | ( | GWEN_DBIO * | dbio | ) |
Increments the internal usage counter. This counter is decremented upon GWEN_DBIO_free.
GWEN_DBIO_CHECKFILE_RESULT GWEN_DBIO_CheckFile | ( | GWEN_DBIO * | dbio, | |
const char * | fname, | |||
uint32_t | guiid, | |||
int | msecs | |||
) |
Checks whether the given file is supported by the given DBIO.
Definition at line 288 of file dbio.c.
References DBG_INFO, GWEN_DBIO_CheckFileResultUnknown, and GWEN_LOGDOMAIN.
int GWEN_DBIO_Export | ( | GWEN_DBIO * | dbio, | |
GWEN_IO_LAYER * | io, | |||
GWEN_DB_NODE * | db, | |||
GWEN_DB_NODE * | params, | |||
uint32_t | flags, | |||
uint32_t | guiid, | |||
int | msecs | |||
) |
Writes data to the given GWEN_BUFFEREDIO in the format of this particular GWEN_DBIO.
Definition at line 267 of file dbio.c.
References DBG_INFO, and GWEN_LOGDOMAIN.
Referenced by GWEN_DBIO_ExportToBuffer(), and GWEN_DBIO_ExportToFile().
int GWEN_DBIO_ExportToBuffer | ( | GWEN_DBIO * | dbio, | |
GWEN_BUFFER * | buf, | |||
GWEN_DB_NODE * | db, | |||
GWEN_DB_NODE * | params, | |||
uint32_t | flags, | |||
uint32_t | guiid, | |||
int | msecs | |||
) |
Definition at line 472 of file dbio.c.
References DBG_ERROR, DBG_INFO, GWEN_DBIO_Export(), GWEN_Io_Layer_Disconnect(), GWEN_Io_Layer_DisconnectRecursively(), GWEN_Io_Layer_free(), GWEN_Io_LayerMemory_new(), GWEN_Io_Manager_RegisterLayer(), GWEN_IO_REQUEST_FLAGS_FORCE, GWEN_LOGDOMAIN, and NULL.
int GWEN_DBIO_ExportToFile | ( | GWEN_DBIO * | dbio, | |
const char * | fname, | |||
GWEN_DB_NODE * | db, | |||
GWEN_DB_NODE * | params, | |||
uint32_t | dbflags, | |||
uint32_t | guiid, | |||
int | msecs | |||
) |
Definition at line 366 of file dbio.c.
References DBG_ERROR, DBG_INFO, DBG_WARN, GWEN_DB_DEFAULT_LOCK_TIMEOUT, GWEN_DB_FLAGS_APPEND_FILE, GWEN_DB_FLAGS_LOCKFILE, GWEN_DBIO_Export(), GWEN_ERROR_IO, GWEN_FSLock_free(), GWEN_FSLock_Lock(), GWEN_FSLock_new(), GWEN_FSLock_ResultOk, GWEN_FSLock_TypeFile, GWEN_FSLock_Unlock(), GWEN_Io_Layer_Disconnect(), GWEN_Io_Layer_DisconnectRecursively(), GWEN_Io_Layer_free(), GWEN_Io_LayerFile_new(), GWEN_Io_Manager_RegisterLayer(), GWEN_IO_REQUEST_FLAGS_FORCE, GWEN_LOGDOMAIN, and NULL.
Referenced by GWEN_DB_WriteFileAs().
void GWEN_DBIO_free | ( | GWEN_DBIO * | dbio | ) |
Releases the ressources associated with the given GWEN_DBIO if the usage counter reaches zero.
Definition at line 222 of file dbio.c.
References GWEN_FREE_OBJECT, GWEN_INHERIT_FINI, and GWEN_LIST_FINI.
const char* GWEN_DBIO_GetDescription | ( | const GWEN_DBIO * | dbio | ) |
const char* GWEN_DBIO_GetName | ( | const GWEN_DBIO * | dbio | ) |
GWEN_DBIO* GWEN_DBIO_GetPlugin | ( | const char * | modname | ) |
This function creates a GWEN_DBIO of the given name. It therefore loads the appropriate plugin if necessary. The caller becomes the owner of the object returned, so he/she is responsible for freeing it (Note: Previous version kept the ownership so that the caller was not allowed to free the object. This has changed).
Definition at line 339 of file dbio.c.
References DBG_ERROR, DBG_INFO, GWEN_DBIO_Plugin_Factory(), GWEN_LOGDOMAIN, GWEN_PluginManager_FindPluginManager(), and GWEN_PluginManager_GetPlugin().
Referenced by GWEN_DB_ReadFileAs(), and GWEN_DB_WriteFileAs().
int GWEN_DBIO_Import | ( | GWEN_DBIO * | dbio, | |
GWEN_IO_LAYER * | io, | |||
GWEN_DB_NODE * | db, | |||
GWEN_DB_NODE * | params, | |||
uint32_t | flags, | |||
uint32_t | guiid, | |||
int | msecs | |||
) |
Reads data from the given io layer and stores the data read into the given DB. The stream represented by the buffered io is expected to have the format for this particular GWEN_DBIO.
Definition at line 246 of file dbio.c.
References DBG_INFO, and GWEN_LOGDOMAIN.
Referenced by GWEN_DB_ReadFileAs(), and GWEN_DBIO_ImportFromFile().
int GWEN_DBIO_ImportFromFile | ( | GWEN_DBIO * | dbio, | |
const char * | fname, | |||
GWEN_DB_NODE * | db, | |||
GWEN_DB_NODE * | params, | |||
uint32_t | dbflags, | |||
uint32_t | guiid, | |||
int | msecs | |||
) |
Definition at line 519 of file dbio.c.
References DBG_ERROR, DBG_INFO, DBG_WARN, GWEN_DB_DEFAULT_LOCK_TIMEOUT, GWEN_DB_FLAGS_APPEND_FILE, GWEN_DB_FLAGS_LOCKFILE, GWEN_DBIO_Import(), GWEN_ERROR_IO, GWEN_FSLock_free(), GWEN_FSLock_Lock(), GWEN_FSLock_new(), GWEN_FSLock_ResultOk, GWEN_FSLock_TypeFile, GWEN_FSLock_Unlock(), GWEN_Io_Layer_Disconnect(), GWEN_Io_Layer_DisconnectRecursively(), GWEN_Io_Layer_free(), GWEN_Io_LayerFile_new(), GWEN_Io_Manager_RegisterLayer(), GWEN_IO_REQUEST_FLAGS_FORCE, GWEN_LOGDOMAIN, and NULL.
int GWEN_DBIO_ModuleFini | ( | ) |
Definition at line 125 of file dbio.c.
References DBG_ERROR, GWEN_LOGDOMAIN, GWEN_PluginManager_FindPluginManager(), GWEN_PluginManager_free(), and GWEN_PluginManager_Unregister().
Referenced by GWEN_Fini().
int GWEN_DBIO_ModuleInit | ( | ) |
Definition at line 86 of file dbio.c.
References DBG_ERROR, DBG_INFO, DIRSEP, GWEN_Buffer_AppendString(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_new(), GWEN_Buffer_Reset(), GWEN_DBIO_FOLDER, GWEN_LOGDOMAIN, GWEN_PathManager_GetPaths(), GWEN_PluginManager_AddPath(), GWEN_PluginManager_new(), GWEN_PluginManager_Register(), GWEN_PM_LIBNAME, GWEN_PM_PLUGINDIR, GWEN_StringList_FirstEntry(), GWEN_StringListEntry_Data(), and GWEN_StringListEntry_Next().
Referenced by GWEN_Init().
GWEN_DBIO* GWEN_DBIO_new | ( | const char * | name, | |
const char * | descr | |||
) |
Creates the base object which is to be extended by the inheritor.
Definition at line 205 of file dbio.c.
References GWEN_INHERIT_INIT, GWEN_LIST_INIT, and GWEN_NEW_OBJECT.
GWEN_DBIO* GWEN_DBIO_Plugin_Factory | ( | GWEN_PLUGIN * | pl | ) |
Definition at line 174 of file dbio.c.
References GWEN_INHERIT_GETDATA.
Referenced by GWEN_DBIO_GetPlugin().
void GWENHYWFAR_CB GWEN_DBIO_Plugin_FreeData | ( | void * | bp, | |
void * | p | |||
) |
Definition at line 165 of file dbio.c.
References GWEN_FREE_OBJECT.
Referenced by GWEN_DBIO_Plugin_new().
GWEN_PLUGIN* GWEN_DBIO_Plugin_new | ( | GWEN_PLUGIN_MANAGER * | pm, | |
const char * | name, | |||
const char * | fileName | |||
) |
Definition at line 149 of file dbio.c.
References GWEN_DBIO_Plugin_FreeData(), GWEN_INHERIT_SETDATA, GWEN_NEW_OBJECT, and GWEN_Plugin_new().
void GWEN_DBIO_Plugin_SetFactoryFn | ( | GWEN_PLUGIN * | pl, | |
GWEN_DBIO_PLUGIN_FACTORYFN | f | |||
) |
void GWEN_DBIO_SetCheckFileFn | ( | GWEN_DBIO * | dbio, | |
GWEN_DBIO_CHECKFILEFN | f | |||
) |
void GWEN_DBIO_SetExportFn | ( | GWEN_DBIO * | dbio, | |
GWEN_DBIO_EXPORTFN | f | |||
) |
void GWEN_DBIO_SetImportFn | ( | GWEN_DBIO * | dbio, | |
GWEN_DBIO_IMPORTFN | f | |||
) |