00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00044 #ifndef QOF_BACKEND_H
00045 #define QOF_BACKEND_H
00046
00047 #include "qofinstance.h"
00048
00049 #define QOF_MOD_BACKEND "qof-backend"
00050
00055 typedef enum {
00056 ERR_BACKEND_NO_ERR = 0,
00057 ERR_BACKEND_NO_HANDLER,
00058 ERR_BACKEND_NO_BACKEND,
00059 ERR_BACKEND_BAD_URL,
00060 ERR_BACKEND_NO_SUCH_DB,
00061 ERR_BACKEND_CANT_CONNECT,
00062 ERR_BACKEND_CONN_LOST,
00063 ERR_BACKEND_LOCKED,
00064 ERR_BACKEND_READONLY,
00065 ERR_BACKEND_TOO_NEW,
00066 ERR_BACKEND_DATA_CORRUPT,
00067 ERR_BACKEND_SERVER_ERR,
00068 ERR_BACKEND_ALLOC,
00069 ERR_BACKEND_PERM,
00071 ERR_BACKEND_MODIFIED,
00073 ERR_BACKEND_MOD_DESTROY,
00075 ERR_BACKEND_MISC,
00077
00078 ERR_QSF_INVALID_OBJ,
00079 ERR_QSF_INVALID_MAP,
00080 ERR_QSF_BAD_OBJ_GUID,
00081 ERR_QSF_BAD_QOF_VERSION,
00082 ERR_QSF_BAD_MAP,
00087 ERR_QSF_NO_MAP,
00091 ERR_QSF_WRONG_MAP,
00096 ERR_QSF_MAP_NOT_OBJ,
00097 ERR_QSF_OVERFLOW,
00103 ERR_QSF_OPEN_NOT_MERGE,
00108
00109 ERR_FILEIO_FILE_BAD_READ = 1000,
00110 ERR_FILEIO_FILE_EMPTY,
00111 ERR_FILEIO_FILE_LOCKERR,
00112 ERR_FILEIO_FILE_NOT_FOUND,
00113 ERR_FILEIO_FILE_TOO_OLD,
00114 ERR_FILEIO_UNKNOWN_FILE_TYPE,
00115 ERR_FILEIO_PARSE_ERROR,
00116 ERR_FILEIO_BACKUP_ERROR,
00117 ERR_FILEIO_WRITE_ERROR,
00118 ERR_FILEIO_READ_ERROR,
00119 ERR_FILEIO_NO_ENCODING,
00121
00122 ERR_NETIO_SHORT_READ = 2000,
00123 ERR_NETIO_WRONG_CONTENT_TYPE,
00124 ERR_NETIO_NOT_GNCXML,
00126
00127 ERR_SQL_MISSING_DATA = 3000,
00128 ERR_SQL_DB_TOO_OLD,
00129 ERR_SQL_DB_BUSY,
00131
00132 ERR_RPC_HOST_UNK = 4000,
00133 ERR_RPC_CANT_BIND,
00134 ERR_RPC_CANT_ACCEPT,
00135 ERR_RPC_NO_CONNECTION,
00136 ERR_RPC_BAD_VERSION,
00137 ERR_RPC_FAILED,
00138 ERR_RPC_NOT_ADDED,
00139 } QofBackendError;
00140
00147 typedef struct QofBackendProvider_s QofBackendProvider;
00148
00157 typedef struct QofBackend_s QofBackend;
00158
00160 typedef void (*QofBePercentageFunc) (const char *message, double percent);
00161
00170
00171 void qof_backend_run_begin(QofBackend *be, QofInstance *inst);
00172
00173 gboolean qof_backend_begin_exists(QofBackend *be);
00174
00175 void qof_backend_run_commit(QofBackend *be, QofInstance *inst);
00176
00177 gboolean qof_backend_commit_exists(QofBackend *be);
00179
00201 typedef struct QofBackendOption_s {
00202 KvpValueType type;
00203 const gchar *option_name;
00204 const gchar *description;
00205 const gchar *tooltip;
00206 gpointer value;
00207 }QofBackendOption;
00208
00210 void qof_backend_prepare_frame(QofBackend *be);
00211
00213 void qof_backend_prepare_option(QofBackend *be, QofBackendOption *option);
00214
00216 KvpFrame* qof_backend_complete_frame(QofBackend *be);
00217
00219 typedef void (*QofBackendOptionCB)(QofBackendOption*, gpointer data);
00220
00222 void qof_backend_option_foreach(KvpFrame *config, QofBackendOptionCB cb, gpointer data);
00223
00232 void qof_backend_load_config (QofBackend *be, KvpFrame *config);
00233
00251 KvpFrame* qof_backend_get_config(QofBackend *be);
00253
00264 gboolean
00265 qof_load_backend_library (const gchar *directory,
00266 const gchar* filename, const gchar* init_fcn);
00267
00269 QofBackend* qof_book_get_backend (QofBook *book);
00270
00271 void qof_book_set_backend (QofBook *book, QofBackend *);
00272
00273 #endif
00274