00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00041 #ifndef QOF_BACKEND_H
00042 #define QOF_BACKEND_H
00043
00044 #include "qofinstance.h"
00045
00046 #define QOF_MOD_BACKEND "qof-backend"
00047
00052 typedef enum {
00053 ERR_BACKEND_NO_ERR = 0,
00054 ERR_BACKEND_NO_HANDLER,
00055 ERR_BACKEND_NO_BACKEND,
00056 ERR_BACKEND_BAD_URL,
00057 ERR_BACKEND_NO_SUCH_DB,
00058 ERR_BACKEND_CANT_CONNECT,
00059 ERR_BACKEND_CONN_LOST,
00060 ERR_BACKEND_LOCKED,
00061 ERR_BACKEND_READONLY,
00062 ERR_BACKEND_TOO_NEW,
00063 ERR_BACKEND_DATA_CORRUPT,
00064 ERR_BACKEND_SERVER_ERR,
00065 ERR_BACKEND_ALLOC,
00066 ERR_BACKEND_PERM,
00068 ERR_BACKEND_MODIFIED,
00070 ERR_BACKEND_MOD_DESTROY,
00072 ERR_BACKEND_MISC,
00074
00075 ERR_QSF_INVALID_OBJ,
00076 ERR_QSF_INVALID_MAP,
00077 ERR_QSF_BAD_OBJ_GUID,
00078 ERR_QSF_BAD_QOF_VERSION,
00079 ERR_QSF_BAD_MAP,
00084 ERR_QSF_NO_MAP,
00088 ERR_QSF_WRONG_MAP,
00093 ERR_QSF_MAP_NOT_OBJ,
00094 ERR_QSF_OVERFLOW,
00100 ERR_QSF_OPEN_NOT_MERGE,
00105
00106 ERR_FILEIO_FILE_BAD_READ = 1000,
00107 ERR_FILEIO_FILE_EMPTY,
00108 ERR_FILEIO_FILE_LOCKERR,
00109 ERR_FILEIO_FILE_NOT_FOUND,
00110 ERR_FILEIO_FILE_TOO_OLD,
00111 ERR_FILEIO_UNKNOWN_FILE_TYPE,
00112 ERR_FILEIO_PARSE_ERROR,
00113 ERR_FILEIO_BACKUP_ERROR,
00114 ERR_FILEIO_WRITE_ERROR,
00116
00117 ERR_NETIO_SHORT_READ = 2000,
00118 ERR_NETIO_WRONG_CONTENT_TYPE,
00119 ERR_NETIO_NOT_GNCXML,
00121
00122 ERR_SQL_MISSING_DATA = 3000,
00123 ERR_SQL_DB_TOO_OLD,
00124 ERR_SQL_DB_BUSY,
00126
00127 ERR_RPC_HOST_UNK = 4000,
00128 ERR_RPC_CANT_BIND,
00129 ERR_RPC_CANT_ACCEPT,
00130 ERR_RPC_NO_CONNECTION,
00131 ERR_RPC_BAD_VERSION,
00132 ERR_RPC_FAILED,
00133 ERR_RPC_NOT_ADDED,
00134 } QofBackendError;
00135
00142 typedef struct QofBackendProvider_s QofBackendProvider;
00143
00152 typedef struct QofBackend_s QofBackend;
00153
00155 typedef void (*QofBePercentageFunc) (const char *message, double percent);
00156
00165
00166 void qof_backend_run_begin(QofBackend *be, QofInstance *inst);
00167
00168 gboolean qof_backend_begin_exists(QofBackend *be);
00169
00170 void qof_backend_run_commit(QofBackend *be, QofInstance *inst);
00171
00172 gboolean qof_backend_commit_exists(QofBackend *be);
00174
00192 typedef struct QofBackendOption_s {
00193 KvpValueType type;
00194 const char *option_name;
00195 const char *description;
00196 const char *tooltip;
00197 gpointer value;
00198 }QofBackendOption;
00199
00201 void qof_backend_prepare_frame(QofBackend *be);
00202
00204 void qof_backend_prepare_option(QofBackend *be, QofBackendOption *option);
00205
00207 KvpFrame* qof_backend_complete_frame(QofBackend *be);
00208
00210 typedef void (*QofBackendOptionCB)(QofBackendOption*, gpointer data);
00211
00213 void qof_backend_option_foreach(KvpFrame *config, QofBackendOptionCB cb, gpointer data);
00214
00223 void qof_backend_load_config (QofBackend *be, KvpFrame *config);
00224
00242 KvpFrame* qof_backend_get_config(QofBackend *be);
00244
00255 gboolean
00256 qof_load_backend_library (const char *directory,
00257 const char* filename, const char* init_fcn);
00258
00260 QofBackend* qof_book_get_backend (QofBook *book);
00261
00262 void qof_book_set_backend (QofBook *book, QofBackend *);
00263
00264 #endif
00265