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 \********************************************************************/
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 /* QOF_BACKEND_P_H */

Generated on Fri May 12 17:57:20 2006 for QOF by  doxygen 1.4.4