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  * 59 Temple Place - Suite 330        Fax:    +1-617-542-2652       *
00019  * Boston, MA  02111-1307,  USA       gnu@gnu.org                   *
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 /* QOF_BACKEND_P_H */

Generated on Fri Oct 21 15:49:55 2005 for QOF by  doxygen 1.4.5