This file provides the GWEN DB import/export framework. More...
#include <gwenhywfar/gwenhywfarapi.h>
#include <gwenhywfar/plugin.h>
#include <gwenhywfar/path.h>
#include <gwenhywfar/iolayer.h>
#include <gwenhywfar/types.h>
#include <gwenhywfar/misc.h>
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/db.h>
#include <gwenhywfar/libloader.h>
#include <gwenhywfar/error.h>
#include <stdio.h>
Go to the source code of this file.
Defines | |
#define | GWEN_DBIO_FOLDER "dbio" |
#define | GWEN_DBIO_PLUGIN_NAME "dbio" |
Typedefs | |
typedef struct GWEN_DBIO | GWEN_DBIO |
Enumerations | |
enum | GWEN_DBIO_CHECKFILE_RESULT { GWEN_DBIO_CheckFileResultOk = 0, GWEN_DBIO_CheckFileResultNotOk, GWEN_DBIO_CheckFileResultUnknown } |
Functions | |
Functions To Be Used By Applications | |
GWENHYWFAR_API void | GWEN_DBIO_Attach (GWEN_DBIO *dbio) |
GWENHYWFAR_API GWEN_DBIO_CHECKFILE_RESULT | GWEN_DBIO_CheckFile (GWEN_DBIO *dbio, const char *fname, uint32_t guiid, int msecs) |
GWENHYWFAR_API 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) |
GWENHYWFAR_API 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) |
GWENHYWFAR_API int | GWEN_DBIO_ExportToFile (GWEN_DBIO *dbio, const char *fname, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags, uint32_t guiid, int msecs) |
GWENHYWFAR_API void | GWEN_DBIO_free (GWEN_DBIO *dbio) |
GWENHYWFAR_API const char * | GWEN_DBIO_GetDescription (const GWEN_DBIO *dbio) |
GWENHYWFAR_API const char * | GWEN_DBIO_GetName (const GWEN_DBIO *dbio) |
GWENHYWFAR_API 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) |
GWENHYWFAR_API int | GWEN_DBIO_ImportFromFile (GWEN_DBIO *dbio, const char *fname, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags, uint32_t guiid, int msecs) |
Functions To Be Used By Administration Functions | |
GWENHYWFAR_API GWEN_DBIO * | GWEN_DBIO_GetPlugin (const char *modname) |
GWEN_DBIO plugins | |
| |
typedef GWEN_DBIO *(* | GWEN_DBIO_PLUGIN_FACTORYFN )(GWEN_PLUGIN *pl) |
GWENHYWFAR_API GWEN_DBIO * | GWEN_DBIO_Plugin_Factory (GWEN_PLUGIN *pl) |
This file provides the GWEN DB import/export framework.
Definition in file dbio.h.
#define GWEN_DBIO_FOLDER "dbio" |
name of the folder below Gwen's PLUGIN folder which holds DBIO plugins
Definition at line 56 of file dbio.h.
Referenced by GWEN_DBIO_ModuleInit().
typedef GWEN_DBIO*(* GWEN_DBIO_PLUGIN_FACTORYFN)(GWEN_PLUGIN *pl) |
GWENHYWFAR_API void GWEN_DBIO_Attach | ( | GWEN_DBIO * | dbio | ) |
Increments the internal usage counter. This counter is decremented upon GWEN_DBIO_free.
GWENHYWFAR_API 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 289 of file dbio.c.
References DBG_INFO, GWEN_DBIO_CheckFileResultUnknown, and GWEN_LOGDOMAIN.
GWENHYWFAR_API 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 268 of file dbio.c.
References DBG_INFO, and GWEN_LOGDOMAIN.
Referenced by GWEN_DBIO_ExportToBuffer(), and GWEN_DBIO_ExportToFile().
GWENHYWFAR_API 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 473 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.
GWENHYWFAR_API int GWEN_DBIO_ExportToFile | ( | GWEN_DBIO * | dbio, | |
const char * | fname, | |||
GWEN_DB_NODE * | db, | |||
GWEN_DB_NODE * | params, | |||
uint32_t | flags, | |||
uint32_t | guiid, | |||
int | msecs | |||
) |
Definition at line 367 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().
GWENHYWFAR_API 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 223 of file dbio.c.
References GWEN_FREE_OBJECT, GWEN_INHERIT_FINI, and GWEN_LIST_FINI.
GWENHYWFAR_API const char* GWEN_DBIO_GetDescription | ( | const GWEN_DBIO * | dbio | ) |
GWENHYWFAR_API const char* GWEN_DBIO_GetName | ( | const GWEN_DBIO * | dbio | ) |
GWENHYWFAR_API 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 340 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().
GWENHYWFAR_API 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 247 of file dbio.c.
References DBG_INFO, and GWEN_LOGDOMAIN.
Referenced by GWEN_DB_ReadFileAs(), and GWEN_DBIO_ImportFromFile().
GWENHYWFAR_API int GWEN_DBIO_ImportFromFile | ( | GWEN_DBIO * | dbio, | |
const char * | fname, | |||
GWEN_DB_NODE * | db, | |||
GWEN_DB_NODE * | params, | |||
uint32_t | flags, | |||
uint32_t | guiid, | |||
int | msecs | |||
) |
Definition at line 520 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.
GWENHYWFAR_API GWEN_DBIO* GWEN_DBIO_Plugin_Factory | ( | GWEN_PLUGIN * | pl | ) |
Definition at line 175 of file dbio.c.
References GWEN_INHERIT_GETDATA.
Referenced by GWEN_DBIO_GetPlugin().