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 "config.h"
00045 #include "qof-be-utils.h"
00046 #include "qofbackend.h"
00047 #include "qofbook.h"
00048 #include "qofinstance-p.h"
00049 #include "qofquery.h"
00050 #include "qofsession.h"
00051
00246 struct QofBackendProvider_s
00247 {
00249 const char * provider_name;
00250
00254 const char * access_method;
00255
00262 gboolean partial_book_supported;
00263
00265 QofBackend * (*backend_new) (void);
00266
00281 gboolean (*check_data_type) (const char*);
00282
00284 void (*provider_free) (QofBackendProvider *);
00285 };
00286
00287 struct QofBackend_s
00288 {
00289 void (*session_begin) (QofBackend *be,
00290 QofSession *session,
00291 const char *book_id,
00292 gboolean ignore_lock,
00293 gboolean create_if_nonexistent);
00294 void (*session_end) (QofBackend *);
00295 void (*destroy_backend) (QofBackend *);
00296
00297 void (*load) (QofBackend *, QofBook *);
00298
00299 void (*begin) (QofBackend *, QofInstance *);
00300 void (*commit) (QofBackend *, QofInstance *);
00301 void (*rollback) (QofBackend *, QofInstance *);
00302
00303 gpointer (*compile_query) (QofBackend *, QofQuery *);
00304 void (*free_query) (QofBackend *, gpointer);
00305 void (*run_query) (QofBackend *, gpointer);
00306
00307 void (*sync) (QofBackend *, QofBook *);
00308 void (*load_config) (QofBackend *, KvpFrame *);
00309 KvpFrame* (*get_config) (QofBackend *);
00310 gint64 (*counter) (QofBackend *, const char *counter_name);
00311
00312 gboolean (*events_pending) (QofBackend *);
00313 gboolean (*process_events) (QofBackend *);
00314
00315 QofBePercentageFunc percentage;
00316
00317 QofBackendProvider *provider;
00318
00320 gboolean (*save_may_clobber_data) (QofBackend *);
00321
00322 QofBackendError last_err;
00323 char * error_msg;
00324
00325 KvpFrame* backend_configuration;
00326 gint config_count;
00330 char * fullpath;
00331
00340 void (*price_lookup) (QofBackend *, gpointer);
00341
00347 void (*export) (QofBackend *, QofBook *);
00348
00349 };
00350
00358 void qof_backend_register_provider (QofBackendProvider *);
00359
00363 void qof_backend_set_error (QofBackend *be, QofBackendError err);
00364
00367 QofBackendError qof_backend_get_error (QofBackend *be);
00368
00371 void qof_backend_set_message(QofBackend *be, const char *format, ...);
00372
00376 char * qof_backend_get_message(QofBackend *be);
00377
00378 void qof_backend_init(QofBackend *be);
00379
00384 gchar qof_book_get_open_marker(QofBook *book);
00385
00393 gint32 qof_book_get_version (QofBook *book);
00394
00399 guint32 qof_book_get_idata (QofBook *book);
00400
00401 void qof_book_set_version (QofBook *book, gint32 version);
00402
00403 void qof_book_set_idata(QofBook *book, guint32 idata);
00404
00405
00406
00407
00408 #endif