qofbackend-p.h

Go to the documentation of this file.
00001 /********************************************************************\
00002  * qofbackend-p.h -- private api for data storage backend           *
00003  *                                                                  *
00004  * This program is free software; you can redistribute it and/or    *
00005  * modify it under the terms of the GNU General Public License as   *
00006  * published by the Free Software Foundation; either version 2 of   *
00007  * the License, or (at your option) any later version.              *
00008  *                                                                  *
00009  * This program is distributed in the hope that it will be useful,  *
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of   *
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    *
00012  * GNU General Public License for more details.                     *
00013  *                                                                  *
00014  * You should have received a copy of the GNU General Public License*
00015  * along with this program; if not, contact:                        *
00016  *                                                                  *
00017  * Free Software Foundation           Voice:  +1-617-542-5942       *
00018  * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
00019  * Boston, MA  02110-1301,  USA       gnu@gnu.org                   *
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 /* QOF_BACKEND_P_H */

Generated on Mon May 21 17:42:21 2007 for QOF by  doxygen 1.5.1