00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00033 #ifndef GWENHYWFAR_DBIO_H
00034 #define GWENHYWFAR_DBIO_H
00035
00036 #include <gwenhywfar/gwenhywfarapi.h>
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041 typedef struct GWEN_DBIO GWEN_DBIO;
00042 #ifdef __cplusplus
00043 }
00044 #endif
00045
00046
00050 #define GWEN_DBIO_FOLDER "dbio"
00051
00052
00053 #include <gwenhywfar/path.h>
00054 #include <gwenhywfar/bufferedio.h>
00055 #include <gwenhywfar/types.h>
00056 #include <gwenhywfar/misc.h>
00057 #include <gwenhywfar/inherit.h>
00058 #include <gwenhywfar/db.h>
00059 #include <gwenhywfar/libloader.h>
00060 #include <gwenhywfar/error.h>
00061
00062 #include <stdio.h>
00063
00064 #ifdef __cplusplus
00065 extern "C" {
00066 #endif
00067
00068
00069 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_DBIO, GWEN_DBIO, GWENHYWFAR_API)
00070 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_DBIO, GWENHYWFAR_API)
00071
00072
00073 typedef enum {
00074 GWEN_DBIO_CheckFileResultOk=0,
00075 GWEN_DBIO_CheckFileResultNotOk,
00076 GWEN_DBIO_CheckFileResultUnknown
00077 } GWEN_DBIO_CHECKFILE_RESULT;
00078
00079 typedef GWEN_DBIO* (*GWEN_DBIO_FACTORYFN)(void);
00080
00081 typedef int (*GWEN_DBIO_IMPORTFN)(GWEN_DBIO *dbio,
00082 GWEN_BUFFEREDIO *bio,
00083 GWEN_TYPE_UINT32 flags,
00084 GWEN_DB_NODE *db,
00085 GWEN_DB_NODE *params);
00086
00087 typedef int (*GWEN_DBIO_EXPORTFN)(GWEN_DBIO *dbio,
00088 GWEN_BUFFEREDIO *bio,
00089 GWEN_TYPE_UINT32 flags,
00090 GWEN_DB_NODE *db,
00091 GWEN_DB_NODE *params);
00092
00093 typedef GWEN_DBIO_CHECKFILE_RESULT (*GWEN_DBIO_CHECKFILEFN)(GWEN_DBIO *dbio,
00094 const char *fname);
00095
00096
00106 GWENHYWFAR_API
00107 int GWEN_DBIO_Import(GWEN_DBIO *dbio,
00108 GWEN_BUFFEREDIO *bio,
00109 GWEN_TYPE_UINT32 flags,
00110 GWEN_DB_NODE *db,
00111 GWEN_DB_NODE *params);
00112
00117 GWENHYWFAR_API
00118 int GWEN_DBIO_Export(GWEN_DBIO *dbio,
00119 GWEN_BUFFEREDIO *bio,
00120 GWEN_TYPE_UINT32 flags,
00121 GWEN_DB_NODE *db,
00122 GWEN_DB_NODE *params);
00123
00127 GWENHYWFAR_API
00128 GWEN_DBIO_CHECKFILE_RESULT GWEN_DBIO_CheckFile(GWEN_DBIO *dbio,
00129 const char *fname);
00130
00131
00136 GWENHYWFAR_API
00137 void GWEN_DBIO_free(GWEN_DBIO *dbio);
00138
00143 GWENHYWFAR_API
00144 void GWEN_DBIO_Attach(GWEN_DBIO *dbio);
00145
00149 GWENHYWFAR_API
00150 const char *GWEN_DBIO_GetName(const GWEN_DBIO *dbio);
00151
00155 GWENHYWFAR_API
00156 const char *GWEN_DBIO_GetDescription(const GWEN_DBIO *dbio);
00157
00162 GWENHYWFAR_API
00163 GWEN_DBIO *GWEN_DBIO_Find(const char *name);
00164
00173 GWENHYWFAR_API
00174 int GWEN_DBIO_GetPluginPath(GWEN_BUFFER *pbuf);
00175
00188 GWENHYWFAR_API
00189 GWEN_DBIO *GWEN_DBIO_new(const char *name, const char *descr);
00190
00194 GWENHYWFAR_API
00195 void GWEN_DBIO_SetImportFn(GWEN_DBIO *dbio, GWEN_DBIO_IMPORTFN f);
00196
00200 GWENHYWFAR_API
00201 void GWEN_DBIO_SetExportFn(GWEN_DBIO *dbio, GWEN_DBIO_EXPORTFN f);
00202
00203 GWENHYWFAR_API
00204 void GWEN_DBIO_SetCheckFileFn(GWEN_DBIO *dbio, GWEN_DBIO_CHECKFILEFN f);
00205
00215
00222 GWENHYWFAR_API
00223 GWEN_LIBLOADER *GWEN_DBIO_GetLibLoader(const GWEN_DBIO *dbio);
00224
00231 GWENHYWFAR_API
00232 void GWEN_DBIO_SetLibLoader(GWEN_DBIO *dbio, GWEN_LIBLOADER *ll);
00233
00239 GWENHYWFAR_API
00240 int GWEN_DBIO_Register(GWEN_DBIO *dbio);
00241
00245 GWENHYWFAR_API
00246 GWEN_DBIO *GWEN_DBIO_LoadPluginFile(const char *modname, const char *fname);
00247
00253 GWENHYWFAR_API
00254 GWEN_DBIO *GWEN_DBIO_LoadPlugin(const char *modname);
00255
00264 GWENHYWFAR_API
00265 GWEN_DBIO *GWEN_DBIO_GetPlugin(const char *modname);
00266
00270 #ifdef __cplusplus
00271 }
00272 #endif
00273
00274
00275 #endif
00276
00277