Add kvp data to sessions.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5745 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2001-10-29 23:23:54 +00:00
parent b67097586a
commit 9aac6d6fd0
3 changed files with 22 additions and 0 deletions

View File

@ -63,6 +63,9 @@ struct gnc_session_struct
char *fullpath;
char *logpath;
/* kvp database for per-session data for user code */
kvp_frame * kvp_data;
/* ---------------------------------------------------- */
/* This struct member applies for network, rpc and SQL i/o */
/* It is not currently used for file i/o, but it should be. */

View File

@ -126,6 +126,8 @@ gnc_session_init (GNCSession *session)
session->logpath = NULL;
session->backend = NULL;
session->kvp_data = kvp_frame_new ();
gnc_session_clear_error (session);
}
@ -160,6 +162,13 @@ gnc_session_set_book (GNCSession *session, GNCBook *book)
gnc_book_set_backend (book, session->backend);
}
kvp_frame *
gnc_session_get_slots (GNCSession *session)
{
if (!session) return NULL;
return session->kvp_data;
}
GNCEntityTable *
gnc_session_get_entity_table (GNCSession *session)
{
@ -595,6 +604,9 @@ gnc_session_destroy (GNCSession *session)
xaccEntityTableDestroy (session->entity_table);
session->entity_table = NULL;
kvp_frame_delete (session->kvp_data);
session->kvp_data = NULL;
xaccLogEnable();
g_free (session);
@ -607,21 +619,26 @@ gnc_session_swap_data (GNCSession *session_1, GNCSession *session_2)
{
GNCBook *book_1, *book_2;
GNCEntityTable *entity_table_1, *entity_table_2;
kvp_frame *kvp_1, *kvp_2;
if (session_1 == session_2) return;
if (!session_1 || !session_2) return;
book_1 = session_1->book;
entity_table_1 = session_1->entity_table;
kvp_1 = session_1->kvp_data;
book_2 = session_2->book;
entity_table_2 = session_2->entity_table;
kvp_2 = session_2->kvp_data;
session_1->book = book_2;
session_1->entity_table = entity_table_2;
session_1->kvp_data = kvp_2;
session_2->book = book_1;
session_2->entity_table = entity_table_1;
session_2->kvp_data = kvp_1;
gnc_book_set_backend (book_1, session_2->backend);
gnc_book_set_backend (book_2, session_1->backend);

View File

@ -122,6 +122,8 @@ GNCBackendError gnc_session_pop_error (GNCSession *session);
GNCBook * gnc_session_get_book (GNCSession *session);
void gnc_session_set_book (GNCSession *session, GNCBook *book);
/* Return the kvp data for the session */
kvp_frame * gnc_session_get_slots (GNCSession *session);
/* The gnc_session_get_file_path() routine returns the fully-qualified file
* path for the session. That is, if a relative or partial filename