00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00045 #ifndef QOF_BACKEND_H
00046 #define QOF_BACKEND_H
00047
00048 #include "qofinstance.h"
00049
00050 #define QOF_MOD_BACKEND "qof-backend"
00051
00054 typedef enum
00055 {
00056 ERR_BACKEND_NO_ERR = 0,
00057 ERR_BACKEND_NO_HANDLER,
00059 ERR_BACKEND_NO_BACKEND,
00061 ERR_BACKEND_BAD_URL,
00062 ERR_BACKEND_NO_SUCH_DB,
00063 ERR_BACKEND_CANT_CONNECT,
00065 ERR_BACKEND_CONN_LOST,
00066 ERR_BACKEND_LOCKED,
00067 ERR_BACKEND_READONLY,
00068 ERR_BACKEND_TOO_NEW,
00070 ERR_BACKEND_DATA_CORRUPT,
00071 ERR_BACKEND_SERVER_ERR,
00072 ERR_BACKEND_ALLOC,
00073 ERR_BACKEND_PERM,
00075 ERR_BACKEND_MODIFIED,
00077 ERR_BACKEND_MOD_DESTROY,
00079 ERR_BACKEND_MISC,
00081
00082 ERR_QSF_INVALID_OBJ,
00084 ERR_QSF_INVALID_MAP,
00086 ERR_QSF_BAD_OBJ_GUID,
00088 ERR_QSF_BAD_QOF_VERSION,
00090 ERR_QSF_BAD_MAP,
00096 ERR_QSF_NO_MAP,
00101 ERR_QSF_WRONG_MAP,
00107 ERR_QSF_MAP_NOT_OBJ,
00109 ERR_QSF_OVERFLOW,
00117 ERR_QSF_OPEN_NOT_MERGE,
00122
00123 ERR_FILEIO_FILE_BAD_READ = 1000,
00125 ERR_FILEIO_FILE_EMPTY,
00127 ERR_FILEIO_FILE_LOCKERR,
00128 ERR_FILEIO_FILE_NOT_FOUND,
00129 ERR_FILEIO_FILE_TOO_OLD,
00131 ERR_FILEIO_UNKNOWN_FILE_TYPE,
00133 ERR_FILEIO_PARSE_ERROR,
00135 ERR_FILEIO_BACKUP_ERROR,
00137 ERR_FILEIO_WRITE_ERROR,
00138 ERR_FILEIO_READ_ERROR,
00140 ERR_FILEIO_NO_ENCODING,
00142
00143 ERR_NETIO_SHORT_READ = 2000,
00144 ERR_NETIO_WRONG_CONTENT_TYPE,
00146 ERR_NETIO_NOT_GNCXML,
00149
00150 ERR_SQL_MISSING_DATA = 3000,
00152 ERR_SQL_DB_TOO_OLD,
00154 ERR_SQL_DB_BUSY,
00157
00158 ERR_RPC_HOST_UNK = 4000,
00159 ERR_RPC_CANT_BIND,
00160 ERR_RPC_CANT_ACCEPT,
00161 ERR_RPC_NO_CONNECTION,
00162 ERR_RPC_BAD_VERSION,
00163 ERR_RPC_FAILED,
00164 ERR_RPC_NOT_ADDED,
00165 } QofBackendError;
00166
00171 typedef struct QofBackendProvider_s QofBackendProvider;
00172
00180 typedef struct QofBackend_s QofBackend;
00181
00183 typedef void (*QofBePercentageFunc) (const gchar * message, double percent);
00184
00194 void qof_backend_run_begin (QofBackend * be, QofInstance * inst);
00195
00196 gboolean qof_backend_begin_exists (QofBackend * be);
00197
00198 void qof_backend_run_commit (QofBackend * be, QofInstance * inst);
00199
00200 gboolean qof_backend_commit_exists (QofBackend * be);
00225 typedef struct QofBackendOption_s
00226 {
00227 KvpValueType type;
00229 const gchar *option_name;
00230 const gchar *description;
00231 const gchar *tooltip;
00232 gpointer value;
00233 } QofBackendOption;
00234
00236 void qof_backend_prepare_frame (QofBackend * be);
00237
00239 void qof_backend_prepare_option (QofBackend * be, QofBackendOption * option);
00240
00242 KvpFrame *qof_backend_complete_frame (QofBackend * be);
00243
00245 typedef void (*QofBackendOptionCB) (QofBackendOption *, gpointer data);
00246
00248 void
00249 qof_backend_option_foreach (KvpFrame * config, QofBackendOptionCB cb,
00250 gpointer data);
00251
00260 void qof_backend_load_config (QofBackend * be, KvpFrame * config);
00261
00279 KvpFrame *qof_backend_get_config (QofBackend * be);
00292 gboolean
00293 qof_load_backend_library (const gchar * directory,
00294 const gchar * filename, const gchar * init_fcn);
00295
00297 QofBackend *qof_book_get_backend (QofBook * book);
00298
00303 void qof_book_set_backend (QofBook * book, QofBackend *);
00304
00307 #endif