GnuCash  2.6.99
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
qofbackend-p.h
Go to the documentation of this file.
1 /********************************************************************\
2  * qofbackend-p.h -- private api for data storage backend *
3  * *
4  * This program is free software; you can redistribute it and/or *
5  * modify it under the terms of the GNU General Public License as *
6  * published by the Free Software Foundation; either version 2 of *
7  * the License, or (at your option) any later version. *
8  * *
9  * This program is distributed in the hope that it will be useful, *
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12  * GNU General Public License for more details. *
13  * *
14  * You should have received a copy of the GNU General Public License*
15  * along with this program; if not, contact: *
16  * *
17  * Free Software Foundation Voice: +1-617-542-5942 *
18  * 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
19  * Boston, MA 02110-1301, USA [email protected] *
20  * *
21 \********************************************************************/
41 #ifndef QOF_BACKEND_P_H
42 #define QOF_BACKEND_P_H
43 
44 #include "qofbackend.h"
45 #include "qofbook.h"
46 #include "qofinstance-p.h"
47 #include "qofquery.h"
48 #include "qofsession.h"
49 
239 {
241  /*@ observer @*/
242  const char * provider_name;
243 
247  /*@ observer @*/
248  const char * access_method;
249 
255  QofBackend * (*backend_new) (void);
256 
271  /*@ null @*/
272  gboolean (*check_data_type) (const char*);
273 
275  void (*provider_free) (/*@ only @*/ QofBackendProvider *);
276 };
277 
278 typedef enum
279 {
280  LOAD_TYPE_INITIAL_LOAD,
281  LOAD_TYPE_LOAD_ALL
282 } QofBackendLoadType;
283 
285 {
286  void (*session_begin) (QofBackend *be,
287  QofSession *session,
288  const char *book_id,
289  gboolean ignore_lock,
290  gboolean create,
291  gboolean force);
292  void (*session_end) (QofBackend *);
293  void (*destroy_backend) (/*@ only @*/ QofBackend *);
294 
295  void (*load) (QofBackend *, /*@ dependent @*/ QofBook *, QofBackendLoadType);
296 
297  void (*begin) (QofBackend *, QofInstance *);
298  void (*commit) (QofBackend *, QofInstance *);
299  void (*rollback) (QofBackend *, QofInstance *);
300 
301  gpointer (*compile_query) (QofBackend *, QofQuery *);
302  void (*free_query) (QofBackend *, gpointer);
303  void (*run_query) (QofBackend *, gpointer);
304 
305  void (*sync) (QofBackend *, /*@ dependent @*/ QofBook *);
306  void (*safe_sync) (QofBackend *, /*@ dependent @*/ QofBook *);
307  void (*load_config) (QofBackend *, KvpFrame *);
308  /*@ observer @*/
309  KvpFrame* (*get_config) (QofBackend *);
310 
311  gboolean (*events_pending) (QofBackend *);
312  gboolean (*process_events) (QofBackend *);
313 
314  QofBePercentageFunc percentage;
315 
316  QofBackendProvider *provider;
317 
318  QofBackendError last_err;
319  char * error_msg;
320 
321  KvpFrame* backend_configuration;
322  gint config_count;
326  char * fullpath;
327 
336  void (*price_lookup) (QofBackend *, gpointer);
337 
343  void (*export_fn) (QofBackend *, QofBook *);
344 
345 };
346 
347 #ifdef __cplusplus
348 extern "C"
349 {
350 #endif
351 
360 
363 void qof_backend_set_message(QofBackend *be, const char *format, ...);
364 
369 
370 void qof_backend_init(QofBackend *be);
371 void qof_backend_destroy(QofBackend *be);
372 
377 gchar qof_book_get_open_marker(const QofBook *book);
378 
386 gint32 qof_book_get_version (const QofBook *book);
387 
388 void qof_book_set_version (QofBook *book, gint32 version);
389 
390 /* @} */
391 /* @} */
392 /* @} */
393 #ifdef __cplusplus
394 }
395 #endif
396 
397 #endif /* QOF_BACKEND_P_H */
Encapsulates a connection to a backend (persistent store)
API for data storage Backend.
char * qof_backend_get_message(QofBackend *be)
void(* provider_free)(QofBackendProvider *)
Definition: qofbackend-p.h:275
void qof_backend_register_provider(QofBackendProvider *)
void(* price_lookup)(QofBackend *, gpointer)
Definition: qofbackend-p.h:336
QofBackendError
The errors that can be reported to the GUI & other front-end users.
Definition: qofbackend.h:59
void(* export_fn)(QofBackend *, QofBook *)
Definition: qofbackend-p.h:343
struct _QofQuery QofQuery
Definition: qofquery.h:90
gint32 qof_book_get_version(const QofBook *book)
find objects that match a certain expression.
void qof_backend_set_message(QofBackend *be, const char *format,...)
void(* QofBePercentageFunc)(const char *message, double percent)
DOCUMENT ME!
Definition: qofbackend.h:150
gboolean(* check_data_type)(const char *)
Distinguish two providers with same access method.
Definition: qofbackend-p.h:272
Encapsulate all the information about a dataset.
const char * provider_name
Definition: qofbackend-p.h:242
const char * access_method
Definition: qofbackend-p.h:248
struct KvpFrameImpl KvpFrame
Definition: kvp_frame.h:76
gchar qof_book_get_open_marker(const QofBook *book)
char * fullpath
Definition: qofbackend-p.h:326