[Gnucash-changes] convert qofbook to use instances too
Linas Vepstas
linas at cvs.gnucash.org
Sun Jun 13 01:27:47 EDT 2004
Log Message:
-----------
convert qofbook to use instances too
Tags:
----
backend-work-1
Modified Files:
--------------
gnucash/src/engine:
qofbook-p.h
qofbook.c
qofbook.h
qofinstance-p.h
qofquery.h
Revision Data
-------------
Index: qofquery.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofquery.h,v
retrieving revision 1.12
retrieving revision 1.12.2.1
diff -Lsrc/engine/qofquery.h -Lsrc/engine/qofquery.h -u -r1.12 -r1.12.2.1
--- src/engine/qofquery.h
+++ src/engine/qofquery.h
@@ -109,6 +109,7 @@
#define QOF_PARAM_GUID "guid"
/** "Known" Object Parameters -- some objects might support these */
+#define QOF_PARAM_KVP "kvp"
#define QOF_PARAM_ACTIVE "active"
/* --------------------------------------------------------- */
Index: qofinstance-p.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofinstance-p.h,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -Lsrc/engine/qofinstance-p.h -Lsrc/engine/qofinstance-p.h -u -r1.5 -r1.5.2.1
--- src/engine/qofinstance-p.h
+++ src/engine/qofinstance-p.h
@@ -73,7 +73,9 @@
/** In process of being destroyed */
gboolean do_free;
- /** This instance has not been saved yet */
+ /** dirty/clean flag. If dirty, then this instance has been modified,
+ * but has not yet been written out to storage (file/database)
+ */
gboolean dirty;
};
Index: qofbook.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofbook.h,v
retrieving revision 1.13
retrieving revision 1.13.2.1
diff -Lsrc/engine/qofbook.h -Lsrc/engine/qofbook.h -u -r1.13 -r1.13.2.1
--- src/engine/qofbook.h
+++ src/engine/qofbook.h
@@ -99,7 +99,7 @@
* between multiple users). To store application runtime data, use
* qof_book_set_data() isntead.
*/
-KvpFrame * qof_book_get_slots (QofBook *book);
+#define qof_book_get_slots(book) qof_instance_get_slots(QOF_INSTANCE(book))
/** The qof_book_set_data() allows arbitrary pointers to structs
* to be stored in QofBook. This is the "prefered" method for
@@ -154,13 +154,6 @@
*/
gint64 qof_book_get_counter (QofBook *book, const char *counter_name);
-/** Book parameter names */
-/**@{*/
-
-#define QOF_BOOK_KVP "qof-kvp"
-
-/**@}*/
-
/** deprecated */
#define qof_book_get_guid(X) qof_entity_get_guid (QOF_ENTITY(X))
Index: qofbook.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofbook.c,v
retrieving revision 1.23
retrieving revision 1.23.2.1
diff -Lsrc/engine/qofbook.c -Lsrc/engine/qofbook.c -u -r1.23 -r1.23.2.1
--- src/engine/qofbook.c
+++ src/engine/qofbook.c
@@ -58,16 +58,12 @@
static void
qof_book_init (QofBook *book)
{
- QofCollection *col;
if (!book) return;
book->hash_of_collections = g_hash_table_new (g_str_hash, g_str_equal);
- col = qof_book_get_collection (book, QOF_ID_BOOK);
- qof_entity_init (&book->entity, QOF_ID_BOOK, col);
+ qof_instance_init (&book->inst, QOF_ID_BOOK, book);
- book->kvp_data = kvp_frame_new ();
-
book->data_tables = g_hash_table_new (g_str_hash, g_str_equal);
book->data_table_finalizers = g_hash_table_new (g_str_hash, g_str_equal);
@@ -86,7 +82,7 @@
qof_book_init(book);
qof_object_book_begin (book);
- gnc_engine_gen_event (&book->entity, GNC_EVENT_CREATE);
+ gnc_engine_gen_event (&book->inst.entity, GNC_EVENT_CREATE);
LEAVE ("book=%p", book);
return book;
}
@@ -116,7 +112,7 @@
ENTER ("book=%p", book);
book->shutting_down = TRUE;
- gnc_engine_force_event (&book->entity, GNC_EVENT_DESTROY);
+ gnc_engine_force_event (&book->inst.entity, GNC_EVENT_DESTROY);
/* Call the list of finalizers, let them do thier thing.
* Do this before tearing into the rest of the book.
@@ -125,12 +121,10 @@
qof_object_book_end (book);
- kvp_frame_delete (book->kvp_data);
-
g_hash_table_destroy (book->data_table_finalizers);
g_hash_table_destroy (book->data_tables);
- qof_entity_release (&book->entity);
+ qof_instance_release (&book->inst);
g_hash_table_foreach_remove (book->hash_of_collections,
coll_destroy, NULL);
@@ -159,7 +153,7 @@
{
if (!book) return FALSE;
- return(book->dirty || qof_object_is_dirty (book));
+ return(book->inst.dirty || qof_object_is_dirty (book));
}
void
@@ -167,20 +161,13 @@
{
if (!book) return;
- book->dirty = FALSE;
+ book->inst.dirty = FALSE;
qof_object_mark_clean (book);
}
/* ====================================================================== */
/* getters */
-KvpFrame *
-qof_book_get_slots (QofBook *book)
-{
- if (!book) return NULL;
- return book->kvp_data;
-}
-
QofBackend *
qof_book_get_backend (QofBook *book)
{
@@ -209,7 +196,7 @@
void qof_book_kvp_changed (QofBook *book)
{
if (!book) return;
- book->dirty = TRUE;
+ book->inst.dirty = TRUE;
}
/* ====================================================================== */
@@ -352,8 +339,8 @@
gboolean qof_book_register (void)
{
static QofParam params[] = {
- { QOF_BOOK_KVP, QOF_TYPE_KVP, (QofAccessFunc)qof_book_get_slots, NULL },
{ QOF_PARAM_GUID, QOF_TYPE_GUID, (QofAccessFunc)qof_entity_get_guid, NULL },
+ { QOF_PARAM_KVP, QOF_TYPE_KVP, (QofAccessFunc)qof_instance_get_slots, NULL },
{ NULL },
};
Index: qofbook-p.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/qofbook-p.h,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -Lsrc/engine/qofbook-p.h -Lsrc/engine/qofbook-p.h -u -r1.8 -r1.8.2.1
--- src/engine/qofbook-p.h
+++ src/engine/qofbook-p.h
@@ -41,16 +41,13 @@
#include "qofbook.h"
#include "qofid.h"
#include "qofid-p.h"
+#include "qofinstance-p.h"
/** Book structure */
struct _QofBook
{
- QofEntity entity; /**< Unique guid for this book. */
+ QofInstance inst; /**< Unique guid for this book. */
- /** The KvpFrame provides a place for top-level data associated
- * with this book. */
- KvpFrame *kvp_data;
-
/** The entity table associates the GUIDs of all the objects
* belonging to this book, with their pointers to the respective
* objects. This allows a lookup of objects based on thier guid.
@@ -67,17 +64,14 @@
/** state flag: 'y' means 'open for editing',
* 'n' means 'book is closed'
+ * xxxxx shouldn't this be replaced by the instance editlevel ???
*/
char book_open;
- /** dirty/clean flag. If dirty, then this book has been modified,
- * but has not yet been written out to storage (file/database)
- */
- gboolean dirty;
-
/** a flag denoting whether the book is closing down, used to
* help the QOF objects shut down cleanly without maintaining
* internal consistency.
+ * XXX shouldn't this be replaced by instance->do_free ???
*/
gboolean shutting_down;
More information about the gnucash-changes
mailing list