00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00041 #ifndef QOF_BACKEND_P_H
00042 #define QOF_BACKEND_P_H
00043
00044 #include "qofbackend.h"
00045 #include "qofbook.h"
00046 #include "qofinstance-p.h"
00047 #include "qofquery.h"
00048 #include "qofsession.h"
00049
00241 struct QofBackendProvider_s
00242 {
00244 const char * provider_name;
00245
00249 const char * access_method;
00250
00257 gboolean partial_book_supported;
00258
00264 QofBackend * (*backend_new) (void);
00265
00280 gboolean (*check_data_type) (const char*);
00281
00283 void (*provider_free) (QofBackendProvider *);
00284 };
00285
00286 struct QofBackend_s
00287 {
00288 void (*session_begin) (QofBackend *be,
00289 QofSession *session,
00290 const char *book_id,
00291 gboolean ignore_lock,
00292 gboolean create_if_nonexistent);
00293 void (*session_end) (QofBackend *);
00294 void (*destroy_backend) (QofBackend *);
00295
00296 void (*load) (QofBackend *, QofBook *);
00297
00298 void (*begin) (QofBackend *, QofInstance *);
00299 void (*commit) (QofBackend *, QofInstance *);
00300 void (*rollback) (QofBackend *, QofInstance *);
00301
00302 gpointer (*compile_query) (QofBackend *, QofQuery *);
00303 void (*free_query) (QofBackend *, gpointer);
00304 void (*run_query) (QofBackend *, gpointer);
00305
00306 void (*sync) (QofBackend *, QofBook *);
00307 void (*load_config) (QofBackend *, KvpFrame *);
00308 KvpFrame* (*get_config) (QofBackend *);
00309 gint64 (*counter) (QofBackend *, const char *counter_name);
00310
00311 gboolean (*events_pending) (QofBackend *);
00312 gboolean (*process_events) (QofBackend *);
00313
00314 QofBePercentageFunc percentage;
00315
00316 QofBackendProvider *provider;
00317
00330 gboolean (*save_may_clobber_data) (QofBackend *);
00331
00332 QofBackendError last_err;
00333 char * error_msg;
00334
00335 KvpFrame* backend_configuration;
00336 gint config_count;
00340 char * fullpath;
00341
00350 void (*price_lookup) (QofBackend *, gpointer);
00351
00357 void (*export) (QofBackend *, QofBook *);
00358
00359 };
00360
00368 void qof_backend_register_provider (QofBackendProvider *);
00369
00373 void qof_backend_set_error (QofBackend *be, QofBackendError err);
00374
00377 QofBackendError qof_backend_get_error (QofBackend *be);
00378
00381 void qof_backend_set_message(QofBackend *be, const char *format, ...);
00382
00386 char * qof_backend_get_message(QofBackend *be);
00387
00388 void qof_backend_init(QofBackend *be);
00389
00394 gchar qof_book_get_open_marker(QofBook *book);
00395
00403 gint32 qof_book_get_version (QofBook *book);
00404
00409 guint32 qof_book_get_idata (QofBook *book);
00410
00411 void qof_book_set_version (QofBook *book, gint32 version);
00412
00413 void qof_book_set_idata(QofBook *book, guint32 idata);
00414
00415
00416
00417
00418 #endif