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 {
00057 ERR_BACKEND_NO_ERR = 0,
00058 ERR_BACKEND_NO_HANDLER,
00059 ERR_BACKEND_NO_BACKEND,
00060 ERR_BACKEND_BAD_URL,
00061 ERR_BACKEND_NO_SUCH_DB,
00062 ERR_BACKEND_CANT_CONNECT,
00063 ERR_BACKEND_CONN_LOST,
00064 ERR_BACKEND_LOCKED,
00065 ERR_BACKEND_STORE_EXISTS,
00066 ERR_BACKEND_READONLY,
00067 ERR_BACKEND_TOO_NEW,
00068 ERR_BACKEND_DATA_CORRUPT,
00069 ERR_BACKEND_SERVER_ERR,
00070 ERR_BACKEND_ALLOC,
00071 ERR_BACKEND_PERM,
00073 ERR_BACKEND_MODIFIED,
00075 ERR_BACKEND_MOD_DESTROY,
00077 ERR_BACKEND_MISC,
00079 ERR_QOF_OVERFLOW,
00086
00087 ERR_FILEIO_FILE_BAD_READ = 1000,
00088 ERR_FILEIO_FILE_EMPTY,
00089 ERR_FILEIO_FILE_LOCKERR,
00090 ERR_FILEIO_FILE_NOT_FOUND,
00091 ERR_FILEIO_FILE_TOO_OLD,
00092 ERR_FILEIO_UNKNOWN_FILE_TYPE,
00093 ERR_FILEIO_PARSE_ERROR,
00094 ERR_FILEIO_BACKUP_ERROR,
00095 ERR_FILEIO_WRITE_ERROR,
00096 ERR_FILEIO_READ_ERROR,
00097 ERR_FILEIO_NO_ENCODING,
00098 ERR_FILEIO_FILE_EACCES,
00099 ERR_FILEIO_RESERVED_WRITE,
00102
00103 ERR_NETIO_SHORT_READ = 2000,
00104 ERR_NETIO_WRONG_CONTENT_TYPE,
00105 ERR_NETIO_NOT_GNCXML,
00107
00108 ERR_SQL_MISSING_DATA = 3000,
00109 ERR_SQL_DB_TOO_OLD,
00110 ERR_SQL_DB_TOO_NEW,
00111 ERR_SQL_DB_BUSY,
00112 ERR_SQL_BAD_DBI,
00114
00115 ERR_RPC_HOST_UNK = 4000,
00116 ERR_RPC_CANT_BIND,
00117 ERR_RPC_CANT_ACCEPT,
00118 ERR_RPC_NO_CONNECTION,
00119 ERR_RPC_BAD_VERSION,
00120 ERR_RPC_FAILED,
00121 ERR_RPC_NOT_ADDED,
00122 } QofBackendError;
00123
00130 typedef struct QofBackendProvider_s QofBackendProvider;
00131
00140 typedef struct QofBackend_s QofBackend;
00141
00143 typedef void (*QofBePercentageFunc) ( const char *message, double percent);
00144
00147
00148 void qof_backend_run_begin(QofBackend *be, QofInstance *inst);
00149
00150 gboolean qof_backend_begin_exists(const QofBackend *be);
00151
00152 void qof_backend_run_commit(QofBackend *be, QofInstance *inst);
00153
00154 gboolean qof_backend_commit_exists(const QofBackend *be);
00156
00160 void qof_backend_set_error (QofBackend *be, QofBackendError err);
00161
00164 QofBackendError qof_backend_get_error (QofBackend *be);
00165
00166
00176 gboolean
00177 qof_load_backend_library(const gchar *directory, const gchar* module_name);
00178
00180 void qof_finalize_backend_libraries(void);
00181
00183 QofBackend* qof_book_get_backend (const QofBook *book);
00184
00185 void qof_book_set_backend (QofBook *book, QofBackend *);
00186
00187 #endif
00188