[Gnucash-changes] Fixing business file backend
Neil Williams
codehelp at cvs.gnucash.org
Sun Oct 16 07:53:04 EDT 2005
Log Message:
-----------
Fixing business file backend
Tags:
----
gnucash-gnome2-dev
Modified Files:
--------------
gnucash:
README.dependencies
gnucash/src/business/business-core/file:
gncmod-business-backend-file.c
gnucash/src/engine:
cashobjects.c
cashobjects.h
gnc-engine.c
gnc-engine.h
gnc-lot-p.h
gnc-lot.c
Revision Data
-------------
Index: README.dependencies
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/Attic/README.dependencies,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -LREADME.dependencies -LREADME.dependencies -u -r1.1.2.5 -r1.1.2.6
--- README.dependencies
+++ README.dependencies
@@ -92,7 +92,8 @@
- pango-1.8.1
- FC3 = 2004-11-08
- Debian GNU/Linux
- - *3.1 sarge = 2005-06-06
+ - unstable
+ (already includes goffice and will include libqof1)
- Knoppix
- 4.0.2 = 2005-09-24
- *3.9 = 2005-06-01
Index: gncmod-business-backend-file.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/business/business-core/file/gncmod-business-backend-file.c,v
retrieving revision 1.5.4.2
retrieving revision 1.5.4.3
diff -Lsrc/business/business-core/file/gncmod-business-backend-file.c -Lsrc/business/business-core/file/gncmod-business-backend-file.c -u -r1.5.4.2 -r1.5.4.3
--- src/business/business-core/file/gncmod-business-backend-file.c
+++ src/business/business-core/file/gncmod-business-backend-file.c
@@ -28,7 +28,7 @@
#include "gnc-module.h"
#include "gnc-module-api.h"
-
+#include "gnc-engine.h"
#include "io-gncxml-v2.h"
#include "gnc-address-xml-v2.h"
@@ -76,15 +76,11 @@
int
libgncmod_business_backend_file_LTX_gnc_module_init(int refcount)
{
+ if(!gnc_engine_is_initialized()) { return FALSE; }
+
bus_core = gnc_module_load("gnucash/business-core", 0);
if(!bus_core) return FALSE;
- file = gnc_module_load("gnucash/backend/file", 0);
- if(!file) {
- gnc_module_unload (bus_core);
- return FALSE;
- }
-
if (refcount == 0) {
/* Initialize our pointers into the backend subsystem */
gnc_address_xml_initialize ();
@@ -111,9 +107,6 @@
if (bus_core)
unload = gnc_module_unload(bus_core);
- if (file)
- unload = gnc_module_unload(file);
-
if (refcount == 0) {
bus_core = NULL;
file = NULL;
Index: gnc-lot.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-lot.c,v
retrieving revision 1.14.4.9
retrieving revision 1.14.4.10
diff -Lsrc/engine/gnc-lot.c -Lsrc/engine/gnc-lot.c -u -r1.14.4.9 -r1.14.4.10
--- src/engine/gnc-lot.c
+++ src/engine/gnc-lot.c
@@ -352,9 +352,7 @@
/* ============================================================= */
-/* change prototype of gnc_lot_register to return a gboolean
-and set a foreach
-before enabling the object description. */
+/* Should the object description be enabled?. */
/*
static QofObject gncLotDesc =
{
@@ -366,17 +364,17 @@
book_end: NULL,
is_dirty: NULL,
mark_clean: NULL,
-foreach: NULL,
+foreach: qof_collection_foreach,
printable: NULL,
-version_cmp: NULL,
+version_cmp: (int (*)(gpointer,gpointer))qof_instance_version_cmp,
};
*/
-void gnc_lot_register (void)
+gboolean gnc_lot_register (void)
{
static const QofParam params[] = {
- { LOT_TITLE, QOF_TYPE_STRING, (QofAccessFunc)gnc_lot_get_title, (QofSetterFunc)gnc_lot_set_title },
- { LOT_NOTES, QOF_TYPE_STRING, (QofAccessFunc)gnc_lot_get_notes, (QofSetterFunc)gnc_lot_set_notes },
+ { LOT_TITLE, QOF_TYPE_STRING, (QofAccessFunc)gnc_lot_get_title, (QofSetterFunc)gnc_lot_set_title },
+ { LOT_NOTES, QOF_TYPE_STRING, (QofAccessFunc)gnc_lot_get_notes, (QofSetterFunc)gnc_lot_set_notes },
{ QOF_PARAM_GUID, QOF_TYPE_GUID, (QofAccessFunc)qof_entity_get_guid, NULL },
{ QOF_PARAM_BOOK, QOF_ID_BOOK, (QofAccessFunc)gnc_lot_get_book, NULL },
{ LOT_IS_CLOSED, QOF_TYPE_BOOLEAN, (QofAccessFunc)gnc_lot_is_closed, NULL },
@@ -385,7 +383,7 @@
};
qof_class_register (GNC_ID_LOT, NULL, params);
-
+ return TRUE;
// return qof_object_register(&gncLotDesc);
}
Index: gnc-lot-p.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-lot-p.h,v
retrieving revision 1.5.2.5
retrieving revision 1.5.2.6
diff -Lsrc/engine/gnc-lot-p.h -Lsrc/engine/gnc-lot-p.h -u -r1.5.2.5 -r1.5.2.6
--- src/engine/gnc-lot-p.h
+++ src/engine/gnc-lot-p.h
@@ -23,7 +23,7 @@
/*
* FILE:
* gnc-lot-p.h
- *
+ *
* FUNCTION:
* Lots implement the fundamental conceptual idea behind invoices,
* inventory lots, and stock market investment lots. See the file
@@ -45,13 +45,13 @@
QofEntity entity; /* Unique guid for this lot */
/* Book that this lot belongs to */
- QofBook *book;
+ QofBook *book;
/* Anchor for generic lot-specific data. */
KvpFrame *kvp_data;
/* Account to which this lot applies. All splits in the lot must
- * belong to this account.
+ * belong to this account.
*/
Account * account;
@@ -69,6 +69,6 @@
#define gnc_lot_set_guid(L,G) qof_entity_set_guid(QOF_ENTITY(L),&(G))
/* Register with the Query engine */
-void gnc_lot_register (void);
+gboolean gnc_lot_register (void);
#endif /* GNC_LOT_P_H */
Index: gnc-engine.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-engine.c,v
retrieving revision 1.17.4.7
retrieving revision 1.17.4.8
diff -Lsrc/engine/gnc-engine.c -Lsrc/engine/gnc-engine.c -u -r1.17.4.7 -r1.17.4.8
--- src/engine/gnc-engine.c
+++ src/engine/gnc-engine.c
@@ -27,7 +27,7 @@
#include "gnc-engine.h"
#include "qof.h"
-
+#include "cashobjects.h"
#include "AccountP.h"
#include "GroupP.h"
#include "SX-book-p.h"
@@ -78,7 +78,6 @@
GList * cur;
if (1 == engine_is_initialized) return;
- engine_is_initialized = 1;
/* initialize logging to our file. */
qof_log_init_filename("/tmp/gnucash.trace");
@@ -88,30 +87,18 @@
gnc_set_log_level(GNC_MOD_IO, GNC_LOG_WARNING);
gnc_set_log_level(GNC_MOD_GUI, GNC_LOG_WARNING);
qof_log_set_default(GNC_LOG_WARNING);
-
- guid_init ();
- qof_object_initialize ();
- qof_query_init ();
- qof_book_register ();
+ /* initialize QOF */
+ qof_init();
/* Now register our core types */
- xaccSplitRegister ();
- xaccTransRegister ();
- xaccAccountRegister ();
- xaccGroupRegister ();
- gnc_sxtt_register ();
- FreqSpecRegister ();
- SXRegister ();
- gnc_budget_register();
- gnc_pricedb_register ();
- gnc_commodity_table_register();
- gnc_lot_register ();
+ cashobjects_register();
g_return_if_fail((qof_load_backend_library
(QOF_LIB_DIR, "libqof-backend-qsf.la", "qsf_provider_init")));
g_return_if_fail((qof_load_backend_library
(QOF_LIB_DIR, GNC_LIB_NAME, GNC_LIB_INIT)));
+ engine_is_initialized = 1;
/* call any engine hooks */
for (cur = engine_init_hooks; cur; cur = cur->next)
{
@@ -135,6 +122,7 @@
guid_shutdown();
gnc_engine_string_cache_destroy ();
qof_log_shutdown();
+ engine_is_initialized = 0;
}
/********************************************************************
@@ -146,3 +134,12 @@
gnc_engine_add_init_hook(gnc_engine_init_hook_t h) {
engine_init_hooks = g_list_append(engine_init_hooks, (gpointer)h);
}
+
+gboolean
+gnc_engine_is_initialized (void)
+{
+/* if (engine_is_initialized == 1) return TRUE;
+ return FALSE;
+*/
+ return (engine_is_initialized == 1) ? TRUE : FALSE;
+}
Index: cashobjects.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/Attic/cashobjects.h,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/engine/cashobjects.h -Lsrc/engine/cashobjects.h -u -r1.1.2.1 -r1.1.2.2
--- src/engine/cashobjects.h
+++ src/engine/cashobjects.h
@@ -27,17 +27,8 @@
#ifndef _CASHOBJECTS_H
#define _CASHOBJECTS_H
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
#include <glib.h>
gboolean cashobjects_register(void);
-
-#ifdef __cplusplus
-}
-#endif
#endif /* _CASHOBJECTS_H */
Index: cashobjects.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/Attic/cashobjects.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -Lsrc/engine/cashobjects.c -Lsrc/engine/cashobjects.c -u -r1.1.2.3 -r1.1.2.4
--- src/engine/cashobjects.c
+++ src/engine/cashobjects.c
@@ -24,16 +24,6 @@
#include "cashobjects.h"
#include "gnc-engine.h"
-#include "gncAddressP.h"
-#include "gncBillTermP.h"
-#include "gncCustomerP.h"
-#include "gncEmployeeP.h"
-#include "gncEntryP.h"
-#include "gncInvoiceP.h"
-#include "gncJobP.h"
-#include "gncVendorP.h"
-#include "gncTaxTableP.h"
-#include "gncOrderP.h"
#include "AccountP.h"
#include "GroupP.h"
#include "TransactionP.h"
@@ -41,22 +31,12 @@
#include "SchedXaction.h"
#include "SX-book-p.h"
#include "gnc-pricedb-p.h"
+#include "gnc-lot-p.h"
+#include "gnc-budget-book-p.h"
gboolean
cashobjects_register(void)
{
-#ifndef GNUCASH_MAJOR_VERSION
- g_return_val_if_fail(gncInvoiceRegister(), FALSE);
- g_return_val_if_fail ( gncJobRegister (), FALSE);
- g_return_val_if_fail(gncBillTermRegister(), FALSE);
- g_return_val_if_fail(gncCustomerRegister(), FALSE);
- g_return_val_if_fail(gncAddressRegister(), FALSE);
- g_return_val_if_fail(gncEmployeeRegister(), FALSE);
- g_return_val_if_fail ( gncEntryRegister (), FALSE);
- g_return_val_if_fail (gncVendorRegister (), FALSE);
- g_return_val_if_fail(gncTaxTableRegister(), FALSE);
- g_return_val_if_fail ( gncOrderRegister (), FALSE);
-#endif
g_return_val_if_fail(gnc_commodity_table_register(), FALSE);
g_return_val_if_fail(xaccAccountRegister(), FALSE);
g_return_val_if_fail ( xaccTransRegister(), FALSE);
@@ -66,5 +46,8 @@
g_return_val_if_fail ( SXRegister (), FALSE);
g_return_val_if_fail ( gnc_sxtt_register(), FALSE);
g_return_val_if_fail(gnc_pricedb_register(),FALSE);
+ g_return_val_if_fail (gnc_budget_register(),FALSE);
+ g_return_val_if_fail ( gnc_lot_register (), FALSE);
return TRUE;
}
+
Index: gnc-engine.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/gnc-engine.h,v
retrieving revision 1.16.4.8
retrieving revision 1.16.4.9
diff -Lsrc/engine/gnc-engine.h -Lsrc/engine/gnc-engine.h -u -r1.16.4.8 -r1.16.4.9
--- src/engine/gnc-engine.h
+++ src/engine/gnc-engine.h
@@ -221,6 +221,9 @@
* for use without Guile. */
void gnc_engine_shutdown (void);
+/** check the engine is fully initialized */
+gboolean gnc_engine_is_initialized(void);
+
/** Pass a function pointer to gnc_engine_add_init_hook and
* it will be called during the evaluation of gnc_engine_init */
void gnc_engine_add_init_hook(gnc_engine_init_hook_t hook);
More information about the gnucash-changes
mailing list