00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00040 #ifndef QOF_BACKEND_P_H
00041 #define QOF_BACKEND_P_H
00042
00043 #include "qofbackend.h"
00044 #include "qofbook.h"
00045 #include "qofinstance-p.h"
00046 #include "qofquery.h"
00047 #include "qofsession.h"
00048
00240 struct QofBackendProvider_s
00241 {
00243 const gchar *provider_name;
00244
00249 const gchar *access_method;
00250
00256 gboolean partial_book_supported;
00257
00262 QofBackend *(*backend_new) (void);
00263
00279 gboolean (*check_data_type) (const gchar *);
00280
00282 void (*provider_free) (QofBackendProvider *);
00283 };
00284
00285 struct QofBackend_s
00286 {
00287 void (*session_begin) (QofBackend * be,
00288 QofSession * session,
00289 const gchar * book_id,
00290 gboolean ignore_lock,
00291 gboolean create_if_nonexistent);
00292 void (*session_end) (QofBackend *);
00293 void (*destroy_backend) (QofBackend *);
00294 void (*load) (QofBackend *, QofBook *);
00295 void (*begin) (QofBackend *, QofInstance *);
00296 void (*commit) (QofBackend *, QofInstance *);
00297 void (*rollback) (QofBackend *, QofInstance *);
00298 gpointer (*compile_query) (QofBackend *, QofQuery *);
00299 void (*free_query) (QofBackend *, gpointer);
00300 void (*run_query) (QofBackend *, gpointer);
00301 void (*sync) (QofBackend *, QofBook *);
00302 void (*load_config) (QofBackend *, KvpFrame *);
00303 KvpFrame *(*get_config) (QofBackend *);
00304 gint64 (*counter) (QofBackend *, const gchar * counter_name);
00305 gboolean (*events_pending) (QofBackend *);
00306 gboolean (*process_events) (QofBackend *);
00307 QofBePercentageFunc percentage;
00308 QofBackendProvider *provider;
00309
00322 gboolean (*save_may_clobber_data) (QofBackend *);
00323
00324 QofBackendError last_err;
00325 gchar *error_msg;
00326
00327 KvpFrame *backend_configuration;
00328 gint config_count;
00332 gchar *fullpath;
00333
00335 void (*price_lookup) (QofBackend *, gpointer);
00336
00338 void (*export) (QofBackend *, QofBook *);
00339
00340 };
00341
00349 void qof_backend_register_provider (QofBackendProvider *);
00350
00354 void qof_backend_set_error (QofBackend * be, QofBackendError err);
00355
00358 QofBackendError qof_backend_get_error (QofBackend * be);
00359
00362 void qof_backend_set_message (QofBackend * be, const gchar * format, ...);
00363
00366 gchar *qof_backend_get_message (QofBackend * be);
00367
00368 void qof_backend_init (QofBackend * be);
00369
00374 gchar qof_book_get_open_marker (QofBook * book);
00375
00383 gint32 qof_book_get_version (QofBook * book);
00384
00389 guint32 qof_book_get_idata (QofBook * book);
00390
00391 void qof_book_set_version (QofBook * book, gint32 version);
00392
00393 void qof_book_set_idata (QofBook * book, guint32 idata);
00394
00398 #endif