gwenhywfar 5.10.1
Macros | Functions
dbio.c File Reference
#include "dbio_p.h"
#include <gwenhywfar/gwenhywfar.h>
#include <gwenhywfar/misc.h>
#include <gwenhywfar/debug.h>
#include <gwenhywfar/path.h>
#include <gwenhywfar/text.h>
#include <gwenhywfar/directory.h>
#include <gwenhywfar/syncio.h>
#include <gwenhywfar/syncio_file.h>
#include <gwenhywfar/syncio_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>
Include dependency graph for dbio.c:

Go to the source code of this file.

Macros

#define DIRSEP   "/"
 
#define DISABLE_DEBUGLOG
 

Functions

void GWEN_DBIO_Attach (GWEN_DBIO *dbio)
 
GWEN_DBIO_CHECKFILE_RESULT GWEN_DBIO_CheckFile (GWEN_DBIO *dbio, const char *fname)
 
int GWEN_DBIO_Export (GWEN_DBIO *dbio, GWEN_SYNCIO *sio, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags)
 
int GWEN_DBIO_ExportToBuffer (GWEN_DBIO *dbio, GWEN_BUFFER *buf, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags)
 
int GWEN_DBIO_ExportToFile (GWEN_DBIO *dbio, const char *fname, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t dbflags)
 
void GWEN_DBIO_free (GWEN_DBIO *dbio)
 
const char * GWEN_DBIO_GetDescription (const GWEN_DBIO *dbio)
 
const char * GWEN_DBIO_GetName (const GWEN_DBIO *dbio)
 
GWEN_DBIOGWEN_DBIO_GetPlugin (const char *modname)
 
int GWEN_DBIO_Import (GWEN_DBIO *dbio, GWEN_SYNCIO *sio, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t flags)
 
int GWEN_DBIO_ImportFromFile (GWEN_DBIO *dbio, const char *fname, GWEN_DB_NODE *db, GWEN_DB_NODE *params, uint32_t dbflags)
 
int GWEN_DBIO_ModuleFini (void)
 
int GWEN_DBIO_ModuleInit (void)
 
GWEN_DBIOGWEN_DBIO_new (const char *name, const char *descr)
 
GWEN_DBIOGWEN_DBIO_Plugin_Factory (GWEN_PLUGIN *pl)
 
void GWENHYWFAR_CB GWEN_DBIO_Plugin_FreeData (GWEN_UNUSED void *bp, void *p)
 
GWEN_PLUGINGWEN_DBIO_Plugin_new (GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)
 
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)
 

Macro Definition Documentation

◆ DIRSEP

#define DIRSEP   "/"

Definition at line 70 of file dbio.c.

◆ DISABLE_DEBUGLOG

#define DISABLE_DEBUGLOG

Definition at line 30 of file dbio.c.

Function Documentation

◆ GWEN_DBIO_Attach()

void GWEN_DBIO_Attach ( GWEN_DBIO dbio)

Increments the internal usage counter. This counter is decremented upon GWEN_DBIO_free.

Definition at line 243 of file dbio.c.

◆ GWEN_DBIO_CheckFile()

GWEN_DBIO_CHECKFILE_RESULT GWEN_DBIO_CheckFile ( GWEN_DBIO dbio,
const char *  fname 
)

Checks whether the given file is supported by the given DBIO.

Definition at line 297 of file dbio.c.

References DBG_INFO, GWEN_DBIO_CheckFileResultUnknown, and GWEN_LOGDOMAIN.

◆ GWEN_DBIO_Export()

int GWEN_DBIO_Export ( GWEN_DBIO dbio,
GWEN_SYNCIO sio,
GWEN_DB_NODE db,
GWEN_DB_NODE params,
uint32_t  flags 
)

Writes data to the given GWEN_BUFFEREDIO in the format of this particular GWEN_DBIO.

Definition at line 277 of file dbio.c.

References DBG_INFO, and GWEN_LOGDOMAIN.

Referenced by GWEN_DBIO_ExportToBuffer(), and GWEN_DBIO_ExportToFile().

Here is the caller graph for this function:

◆ GWEN_DBIO_ExportToBuffer()

int GWEN_DBIO_ExportToBuffer ( GWEN_DBIO dbio,
GWEN_BUFFER buf,
GWEN_DB_NODE db,
GWEN_DB_NODE params,
uint32_t  flags 
)

Definition at line 468 of file dbio.c.

References DBG_INFO, GWEN_DBIO_Export(), GWEN_LOGDOMAIN, GWEN_SyncIo_free(), and GWEN_SyncIo_Memory_new().

Here is the call graph for this function:

◆ GWEN_DBIO_ExportToFile()

int GWEN_DBIO_ExportToFile ( GWEN_DBIO dbio,
const char *  fname,
GWEN_DB_NODE db,
GWEN_DB_NODE params,
uint32_t  dbflags 
)

◆ GWEN_DBIO_free()

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 225 of file dbio.c.

References GWEN_FREE_OBJECT, GWEN_INHERIT_FINI, and GWEN_LIST_FINI.

◆ GWEN_DBIO_GetDescription()

const char * GWEN_DBIO_GetDescription ( const GWEN_DBIO dbio)

Returns a descriptive text about this particular GWEN_DBIO.

Definition at line 321 of file dbio.c.

◆ GWEN_DBIO_GetName()

const char * GWEN_DBIO_GetName ( const GWEN_DBIO dbio)

Returns the name of a GWEN_DBIO.

Definition at line 313 of file dbio.c.

◆ GWEN_DBIO_GetPlugin()

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 352 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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_DBIO_Import()

int GWEN_DBIO_Import ( GWEN_DBIO dbio,
GWEN_SYNCIO sio,
GWEN_DB_NODE db,
GWEN_DB_NODE params,
uint32_t  flags 
)

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 251 of file dbio.c.

References DBG_ERROR, DBG_INFO, GWEN_LOGDOMAIN, GWEN_SyncIo_GetStatus(), GWEN_SyncIo_GetTypeName(), and GWEN_SyncIo_Status_Connected.

Referenced by GWEN_DB_ReadFileAs(), and GWEN_DBIO_ImportFromFile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_DBIO_ImportFromFile()

int GWEN_DBIO_ImportFromFile ( GWEN_DBIO dbio,
const char *  fname,
GWEN_DB_NODE db,
GWEN_DB_NODE params,
uint32_t  dbflags 
)

◆ GWEN_DBIO_ModuleFini()

int GWEN_DBIO_ModuleFini ( void  )

Definition at line 122 of file dbio.c.

References DBG_ERROR, GWEN_LOGDOMAIN, GWEN_PluginManager_FindPluginManager(), GWEN_PluginManager_free(), and GWEN_PluginManager_Unregister().

Referenced by GWEN_Fini().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_DBIO_ModuleInit()

int GWEN_DBIO_ModuleInit ( void  )

◆ GWEN_DBIO_new()

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 207 of file dbio.c.

References GWEN_INHERIT_INIT, GWEN_LIST_INIT, and GWEN_NEW_OBJECT.

Referenced by _csvFactory(), GWEN_DBIO_OldDb_Factory(), and GWEN_DBIO_XmlDb_Factory().

Here is the caller graph for this function:

◆ GWEN_DBIO_Plugin_Factory()

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().

Here is the caller graph for this function:

◆ GWEN_DBIO_Plugin_FreeData()

void GWENHYWFAR_CB GWEN_DBIO_Plugin_FreeData ( GWEN_UNUSED void *  bp,
void *  p 
)

Definition at line 164 of file dbio.c.

References GWEN_FREE_OBJECT.

Referenced by GWEN_DBIO_Plugin_new().

Here is the caller graph for this function:

◆ GWEN_DBIO_Plugin_new()

GWEN_PLUGIN * GWEN_DBIO_Plugin_new ( GWEN_PLUGIN_MANAGER pm,
const char *  name,
const char *  fileName 
)

Definition at line 147 of file dbio.c.

References GWEN_DBIO_Plugin_FreeData(), GWEN_INHERIT_SETDATA, GWEN_NEW_OBJECT, and GWEN_Plugin_new().

Referenced by dbio_csv_factory(), dbio_olddb_factory(), and dbio_xmldb_factory().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_DBIO_Plugin_SetFactoryFn()

void GWEN_DBIO_Plugin_SetFactoryFn ( GWEN_PLUGIN pl,
GWEN_DBIO_PLUGIN_FACTORYFN  f 
)

Definition at line 188 of file dbio.c.

References GWEN_INHERIT_GETDATA.

Referenced by dbio_csv_factory(), dbio_olddb_factory(), and dbio_xmldb_factory().

Here is the caller graph for this function:

◆ GWEN_DBIO_SetCheckFileFn()

void GWEN_DBIO_SetCheckFileFn ( GWEN_DBIO dbio,
GWEN_DBIO_CHECKFILEFN  f 
)

Definition at line 344 of file dbio.c.

Referenced by _csvFactory(), GWEN_DBIO_OldDb_Factory(), and GWEN_DBIO_XmlDb_Factory().

Here is the caller graph for this function:

◆ GWEN_DBIO_SetExportFn()

void GWEN_DBIO_SetExportFn ( GWEN_DBIO dbio,
GWEN_DBIO_EXPORTFN  f 
)

Sets the export function for this kind of GWEN_DBIO.

Definition at line 337 of file dbio.c.

Referenced by _csvFactory(), GWEN_DBIO_OldDb_Factory(), and GWEN_DBIO_XmlDb_Factory().

Here is the caller graph for this function:

◆ GWEN_DBIO_SetImportFn()

void GWEN_DBIO_SetImportFn ( GWEN_DBIO dbio,
GWEN_DBIO_IMPORTFN  f 
)

Sets the import function for this kind of GWEN_DBIO.

Definition at line 329 of file dbio.c.

Referenced by _csvFactory(), GWEN_DBIO_OldDb_Factory(), and GWEN_DBIO_XmlDb_Factory().

Here is the caller graph for this function: