QOF: qofsession.h File Reference

QOF 0.7.5

Macros | Typedefs | Functions
qofsession.h File Reference
Query Object Framework » Backends: Permanent storage for QOF entities. » Session: Backend connections.

Encapsulates a connection to a backend (persistent store) More...

`#include "qofbackend.h"`
`#include "qofbook.h"`
`#include "qofclass.h"`
`#include "qofobject.h"`

Go to the source code of this file.

## Macros
#define | QOF_MOD_SESSION "qof-session"
#define | QOF_STDOUT "file:"
| Allow session data to be printed to stdout. More...

## Typedefs
typedef struct _QofSession | QofSession
typedef void(* | QofPercentageFunc) (const gchar *message, gdouble percent)

## Functions
QofSession * | qof_session_new (void)
void | qof_session_destroy (QofSession *session)
void | qof_session_swap_data (QofSession *session_1, QofSession *session_2)
void | qof_session_begin (QofSession *session, const gchar *book_id, gboolean ignore_lock, gboolean create_if_nonexistent)
void | qof_session_load (QofSession *session, QofPercentageFunc percentage_func)
void | qof_session_add_book (QofSession *session, QofBook *book)
QofBook * | qof_session_get_book (QofSession *session)
const gchar * | qof_session_get_file_path (QofSession *session)
const gchar * | qof_session_get_url (QofSession *session)
gboolean | qof_session_not_saved (QofSession *session)
gboolean | qof_session_save_may_clobber_data (QofSession *session)
void | qof_session_save (QofSession *session, QofPercentageFunc percentage_func)
void | qof_session_end (QofSession *session)
void | qof_session_add_close_hook (GFunc fn, gpointer data)
void | qof_session_call_close_hooks (QofSession *session)
Copying entities between sessions.
Only certain backends can cope with selective copying of entities and only fully defined QOF entities can be copied between sessions - see the QOF Serialisation Format (QSF) documentation (::qsf_write_file) for more information. The recommended backend for the new session is QSF or a future SQL backend. Using any of these entity copy functions sets a flag in the backend that this is now a partial QofBook. See Reference: Referring to entities outside a partial book.. When you save a session containing a partial QofBook, the session will check that the backend is able to handle the partial book. If not, the backend will be replaced by one that can handle partial books, preferably one using the same ::access_method. Currently, this means that a book using the GnuCash XML v2 file backend will be switched to QSF. Copied entities are identical to the source entity, all parameters defined with QofAccessFunc and QofSetterFunc in QOF are copied and the ::GUID of the original QofEntity is set in the new entity. Sessions containing copied entities are intended for use as mechanisms for data export. It is acceptable to add entities to new_session in batches. Note that any of these calls will fail if an entity already exists in new_session with the same GUID as any entity to be copied. To merge a whole QofBook or where there is any possibility of collisions or requirement for user intervention, see Merge: Merging QofBook structures
gboolean | qof_entity_copy_to_session (QofSession *new_session, QofEntity *original)
| Copy a single QofEntity to another session. More...
gboolean | qof_entity_copy_list (QofSession *new_session, GList *entity_list)
| Copy a GList of entities to another session. More...
gboolean | qof_entity_copy_coll (QofSession *new_session, QofCollection *entity_coll)
| Copy a QofCollection of entities. More...
gboolean | qof_entity_copy_coll_r (QofSession *new_session, QofCollection *coll)
| Recursively copy a collection of entities to a session. More...
gboolean | qof_entity_copy_one_r (QofSession *new_session, QofEntity *ent)
| Recursively copy a single entity to a new session. More...
Event Handling
gboolean | qof_session_events_pending (QofSession *session)
gboolean | qof_session_process_events (QofSession *session)

## Detailed Description

Encapsulates a connection to a backend (persistent store)

Author
  Copyright (c) 1998, 1999, 2001, 2002 Linas Vepstas linas.nosp@m.@lin.nosp@m.as.or.nosp@m.g
  Copyright (c) 2000 Dave Peticolas
  Copyright (c) 2005 Neil Williams linux.nosp@m.@cod.nosp@m.ehelp.nosp@m..co..nosp@m.uk

Definition in file qofsession.h.