[Gnucash-changes] r14165 - gnucash/branches/misc-backend - Decrease
coupling between backends and engine:
Chris Shoemaker
chris at cvs.gnucash.org
Tue May 23 23:21:10 EDT 2006
Author: chris
Date: 2006-05-23 23:21:09 -0400 (Tue, 23 May 2006)
New Revision: 14165
Trac: http://svn.gnucash.org/trac/changeset/14165
Modified:
gnucash/branches/misc-backend/lib/libqof/backend/file/qsf-backend.c
gnucash/branches/misc-backend/lib/libqof/qof/qofbackend-p.h
gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.c
gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.h
gnucash/branches/misc-backend/lib/libqof/qof/qofsession-p.h
gnucash/branches/misc-backend/lib/libqof/qof/qofsession.c
gnucash/branches/misc-backend/lib/libqof/qof/qofsession.h
gnucash/branches/misc-backend/lib/libqof/qof/qofutil.c
gnucash/branches/misc-backend/lib/libqof/qof/qofutil.h
gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.c
gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.h
gnucash/branches/misc-backend/src/backend/file/test/test-load-backend.c
gnucash/branches/misc-backend/src/backend/file/test/test-load-xml2.c
gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.c
gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.h
gnucash/branches/misc-backend/src/backend/postgres/test/test-db.c
gnucash/branches/misc-backend/src/backend/postgres/test/test-load-backend.c
gnucash/branches/misc-backend/src/backend/postgres/test/test-period.c
gnucash/branches/misc-backend/src/engine/Period.c
gnucash/branches/misc-backend/src/engine/Transaction.c
gnucash/branches/misc-backend/src/engine/gnc-engine.c
gnucash/branches/misc-backend/src/engine/gnc-engine.h
gnucash/branches/misc-backend/src/engine/gnc-pricedb.c
gnucash/branches/misc-backend/src/engine/gnc-session-scm.c
gnucash/branches/misc-backend/src/engine/gnc-session-scm.h
gnucash/branches/misc-backend/src/engine/gw-engine-spec.scm
Log:
Decrease coupling between backends and engine:
- do not include the (supposedly) private qofbackend-p.h in qofutil.h,
instead, include it explictly in only the places that need it.
- since backends are GModules, use the GModule module init hook, instead
of rolling our own and using a different function for each backend
- loop over a list of backends for the engine to try to load
- include the postgres backend in that list of backends
- move qof_session_export() from gnc-engine.c to qofsession.c
- publicize qof_backend_set_error() and qof_backend_get_error()
- privatize QofBookFileType to gnc-backend-file.c
Incidental:
- Plug a string leak in qofsession.c
- drop the unused gnc_session_scm_export code
- Drop unimplemented prototype gncBackendInit_file()
- Formatting cleanups.
Modified: gnucash/branches/misc-backend/lib/libqof/backend/file/qsf-backend.c
===================================================================
--- gnucash/branches/misc-backend/lib/libqof/backend/file/qsf-backend.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/lib/libqof/backend/file/qsf-backend.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -24,6 +24,7 @@
#include "config.h"
#include <glib.h>
#include "qof.h"
+#include "qofbackend-p.h"
#include "qof-backend-qsf.h"
#include <libxml/xmlmemory.h>
#include <libxml/tree.h>
Modified: gnucash/branches/misc-backend/lib/libqof/qof/qofbackend-p.h
===================================================================
--- gnucash/branches/misc-backend/lib/libqof/qof/qofbackend-p.h 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/lib/libqof/qof/qofbackend-p.h 2006-05-24 03:21:09 UTC (rev 14165)
@@ -182,7 +182,7 @@
* pointer to the second book, where the results of the query
* should go.
*
- * Cann the book commit() to complete the book partitioning.
+ * Call the book commit() to complete the book partitioning.
*
* After the begin(), there will be a call to run_query(), followed
* probably by a string of object calls, and completed by commit().
@@ -367,15 +367,6 @@
*/
void qof_backend_register_provider (QofBackendProvider *);
-/** The qof_backend_set_error() routine pushes an error code onto the error
- * stack. (FIXME: the stack is 1 deep in current implementation).
- */
-void qof_backend_set_error (QofBackend *be, QofBackendError err);
-
-/** The qof_backend_get_error() routine pops an error code off the error stack.
- */
-QofBackendError qof_backend_get_error (QofBackend *be);
-
/** The qof_backend_set_message() assigns a string to the backend error message.
*/
void qof_backend_set_message(QofBackend *be, const char *format, ...);
Modified: gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.c
===================================================================
--- gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -128,7 +128,7 @@
be->run_query = NULL;
be->sync = NULL;
- be->load_config = NULL;
+ be->load_config = NULL;
be->events_pending = NULL;
be->process_events = NULL;
@@ -137,11 +137,11 @@
if (be->error_msg) g_free (be->error_msg);
be->error_msg = NULL;
be->percentage = NULL;
- be->backend_configuration = kvp_frame_new();
-
- /* to be removed */
- be->price_lookup = NULL;
- be->export = NULL;
+ be->backend_configuration = kvp_frame_new();
+
+ /* to be removed */
+ be->price_lookup = NULL;
+ be->export = NULL;
}
void
@@ -384,30 +384,19 @@
}
gboolean
-qof_load_backend_library (const char *directory,
- const char* filename, const char* init_fcn)
+qof_load_backend_library (const char *directory, const char* module_name)
{
gchar *fullpath;
- typedef void (* backend_init) (void);
GModule *backend;
- backend_init gmod_init;
- gpointer g;
g_return_val_if_fail(g_module_supported(), FALSE);
- fullpath = g_module_build_path(directory, filename);
+ fullpath = g_module_build_path(directory, module_name);
backend = g_module_open(fullpath, G_MODULE_BIND_LAZY);
- if(!backend) {
+ if (!backend) {
g_message ("%s: %s\n", PACKAGE, g_module_error ());
return FALSE;
}
- g = &gmod_init;
- if (!g_module_symbol (backend, init_fcn, g))
- {
- g_message ("%s: %s\n", PACKAGE, g_module_error ());
- return FALSE;
- }
g_module_make_resident(backend);
- gmod_init();
return TRUE;
}
Modified: gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.h
===================================================================
--- gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.h 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/lib/libqof/qof/qofbackend.h 2006-05-24 03:21:09 UTC (rev 14165)
@@ -177,6 +177,15 @@
gboolean qof_backend_commit_exists(QofBackend *be);
//@}
+/** The qof_backend_set_error() routine pushes an error code onto the error
+ * stack. (FIXME: the stack is 1 deep in current implementation).
+ */
+void qof_backend_set_error (QofBackend *be, QofBackendError err);
+
+/** The qof_backend_get_error() routine pops an error code off the error stack.
+ */
+QofBackendError qof_backend_get_error (QofBackend *be);
+
/** @name Backend Configuration using KVP
The backend uses qof_backend_get_config to pass back a KvpFrame of QofBackendOption
@@ -254,16 +263,14 @@
/** \brief Load a QOF-compatible backend shared library.
\param directory Can be NULL if filename is a complete path.
-\param filename Name of the .la file that describes the
+\param module_name Name of the .la file that describes the
shared library. This provides platform independence,
courtesy of libtool.
-\param init_fcn The QofBackendProvider init function.
\return FALSE in case or error, otherwise TRUE.
*/
gboolean
-qof_load_backend_library (const gchar *directory,
- const gchar* filename, const gchar* init_fcn);
+qof_load_backend_library(const gchar *directory, const gchar* module_name);
/** \brief Retrieve the backend used by this book */
QofBackend* qof_book_get_backend (QofBook *book);
Modified: gnucash/branches/misc-backend/lib/libqof/qof/qofsession-p.h
===================================================================
--- gnucash/branches/misc-backend/lib/libqof/qof/qofsession-p.h 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/lib/libqof/qof/qofsession-p.h 2006-05-24 03:21:09 UTC (rev 14165)
@@ -70,7 +70,4 @@
void qof_session_push_error (QofSession *session, QofBackendError err,
const char *message);
-
-QofBackend* gncBackendInit_file(const char *book_id, void *data);
-
#endif
Modified: gnucash/branches/misc-backend/lib/libqof/qof/qofsession.c
===================================================================
--- gnucash/branches/misc-backend/lib/libqof/qof/qofsession.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/lib/libqof/qof/qofsession.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -876,11 +876,10 @@
{
for (num = 0; backend_list[num].filename != NULL; num++) {
if(!qof_load_backend_library(backend_list[num].libdir,
- backend_list[num].filename, backend_list[num].init_fcn))
+ backend_list[num].filename))
{
- PWARN (" failed to load %s from %s using %s",
- backend_list[num].filename, backend_list[num].libdir,
- backend_list[num].init_fcn);
+ PWARN (" failed to load %s from %s",
+ backend_list[num].filename, backend_list[num].libdir);
}
}
}
@@ -894,13 +893,14 @@
/* More than one backend could provide this
access method, check file type compatibility. */
type_check = (gboolean (*)(const char*)) prov->check_data_type;
- prov_type = (type_check)(session->book_id);
- if(!prov_type)
- {
+ if (type_check) {
+ prov_type = (type_check)(session->book_id);
+ if (!prov_type) {
PINFO(" %s not usable", prov->provider_name);
p = p->next;
continue;
- }
+ }
+ }
PINFO (" selected %s", prov->provider_name);
if (NULL == prov->backend_new)
{
@@ -985,12 +985,12 @@
return;
}
+ /* destroy the old backend */
+ qof_session_destroy_backend(session);
+
/* Store the session URL */
session->book_id = g_strdup (book_id);
- /* destroy the old backend */
- qof_session_destroy_backend(session);
-
/* Look for something of the form of "file:/", "http://" or
* "postgres://". Everything before the colon is the access
* method. Load the first backend found for that access method.
@@ -1000,7 +1000,7 @@
{
access_method = g_strdup (book_id);
p = strchr (access_method, ':');
- *p = 0;
+ *p = '\0';
qof_session_load_backend(session, access_method);
g_free (access_method);
}
@@ -1013,6 +1013,8 @@
/* No backend was found. That's bad. */
if (NULL == session->backend)
{
+ g_free(session->book_id);
+ session->book_id = NULL;
qof_session_push_error (session, ERR_BACKEND_BAD_URL, NULL);
LEAVE (" BAD: no backend: sess=%p book-id=%s",
session, book_id ? book_id : "(null)");
@@ -1207,7 +1209,7 @@
{
for (num = 0; backend_list[num].filename != NULL; num++) {
qof_load_backend_library(backend_list[num].libdir,
- backend_list[num].filename, backend_list[num].init_fcn);
+ backend_list[num].filename);
}
}
p = g_slist_copy(provider_list);
@@ -1418,4 +1420,45 @@
return session->backend->process_events (session->backend);
}
+/* XXX This exports the list of accounts to a file. It does not
+ * export any transactions. It's a place-holder until full
+ * book-closing is implemented.
+ */
+gboolean
+qof_session_export (QofSession *tmp_session,
+ QofSession *real_session,
+ QofPercentageFunc percentage_func)
+{
+ QofBook *book, *book2;
+ QofBackend *be;
+
+ if ((!tmp_session) || (!real_session)) return FALSE;
+
+ book = qof_session_get_book (real_session);
+ ENTER ("tmp_session=%p real_session=%p book=%p book_id=%s",
+ tmp_session, real_session, book,
+ qof_session_get_url(tmp_session)
+ ? qof_session_get_url(tmp_session) : "(null)");
+
+ /* There must be a backend or else. (It should always be the file
+ * backend too.)
+ */
+ book2 = qof_session_get_book(tmp_session);
+ be = qof_book_get_backend(book2);
+ if (!be)
+ return FALSE;
+
+ be->percentage = percentage_func;
+ if (be->export) {
+ int err;
+
+ (be->export)(be, book);
+ err = qof_backend_get_error(be);
+
+ if (ERR_BACKEND_NO_ERR != err) { return FALSE; }
+ }
+
+ return TRUE;
+}
+
/* =================== END OF FILE ====================================== */
Modified: gnucash/branches/misc-backend/lib/libqof/qof/qofsession.h
===================================================================
--- gnucash/branches/misc-backend/lib/libqof/qof/qofsession.h 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/lib/libqof/qof/qofsession.h 2006-05-24 03:21:09 UTC (rev 14165)
@@ -431,5 +431,9 @@
* @param session A pointer to the session being closed. */
void qof_session_call_close_hooks (QofSession *session);
+gboolean qof_session_export (QofSession *tmp_session,
+ QofSession *real_session,
+ QofPercentageFunc percentage_func);
+
#endif /* QOF_SESSION_H */
/** @} */
Modified: gnucash/branches/misc-backend/lib/libqof/qof/qofutil.c
===================================================================
--- gnucash/branches/misc-backend/lib/libqof/qof/qofutil.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/lib/libqof/qof/qofutil.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -32,6 +32,7 @@
#include <stdlib.h>
#include <string.h>
#include "qof.h"
+#include "qofbackend-p.h"
static QofLogModule log_module = QOF_MOD_UTIL;
Modified: gnucash/branches/misc-backend/lib/libqof/qof/qofutil.h
===================================================================
--- gnucash/branches/misc-backend/lib/libqof/qof/qofutil.h 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/lib/libqof/qof/qofutil.h 2006-05-24 03:21:09 UTC (rev 14165)
@@ -36,7 +36,8 @@
#include "qof.h"
#include "qoflog.h"
#include "qofutil.h"
-#include "qofbackend-p.h"
+#include "qofbackend.h"
+#include "qofclass.h"
#include "qofbook.h"
#include "qofinstance.h"
Modified: gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.c
===================================================================
--- gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -66,6 +66,18 @@
static QofLogModule log_module = GNC_MOD_BACKEND;
+typedef enum
+{
+ GNC_BOOK_NOT_OURS,
+ GNC_BOOK_BIN_FILE,
+ GNC_BOOK_XML1_FILE,
+ GNC_BOOK_XML2_FILE,
+ GNC_BOOK_XML2_FILE_NO_ENCODING,
+ QSF_GNC_OBJECT,
+ QSF_OBJECT,
+ QSF_MAP,
+} QofBookFileType;
+
/* ================================================================= */
static gboolean
@@ -1024,8 +1036,8 @@
g_free (prov);
}
-void
-gnc_provider_init(void)
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module)
{
QofBackendProvider *prov;
#ifdef ENABLE_NLS
@@ -1042,6 +1054,7 @@
prov->provider_free = gnc_provider_free;
prov->check_data_type = gnc_determine_file_type;
qof_backend_register_provider (prov);
+ return NULL;
}
/* ========================== END OF FILE ===================== */
Modified: gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.h
===================================================================
--- gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.h 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/backend/file/gnc-backend-file.h 2006-05-24 03:21:09 UTC (rev 14165)
@@ -32,7 +32,9 @@
#define GNC_BACKEND_FILE_H_
#include "qof.h"
+#include <gmodule.h>
+#include "qofbackend-p.h"
struct FileBackend_struct
{
QofBackend be;
@@ -51,20 +53,9 @@
typedef struct FileBackend_struct FileBackend;
-typedef enum
-{
- GNC_BOOK_NOT_OURS,
- GNC_BOOK_BIN_FILE,
- GNC_BOOK_XML1_FILE,
- GNC_BOOK_XML2_FILE,
- GNC_BOOK_XML2_FILE_NO_ENCODING,
- QSF_GNC_OBJECT,
- QSF_OBJECT,
- QSF_MAP,
-} QofBookFileType;
-
QofBackend * libgncmod_backend_file_LTX_gnc_backend_new(void);
-void gnc_provider_init(void);
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module);
#endif /* GNC_BACKEND_FILE_H_ */
Modified: gnucash/branches/misc-backend/src/backend/file/test/test-load-backend.c
===================================================================
--- gnucash/branches/misc-backend/src/backend/file/test/test-load-backend.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/backend/file/test/test-load-backend.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -29,17 +29,16 @@
#include "cashobjects.h"
#include "test-stuff.h"
-#define GNC_LIB_NAME "libgnc-backend-file.la"
-#define GNC_LIB_INIT "gnc_provider_init"
+#define GNC_LIB_NAME "gnc-backend-file"
int main (int argc, char ** argv)
{
- qof_init();
- cashobjects_register();
- do_test(
- qof_load_backend_library ("../", GNC_LIB_NAME, GNC_LIB_INIT),
- " loading gnc-backend-file GModule failed");
+ qof_init();
+ cashobjects_register();
+ do_test(
+ qof_load_backend_library ("../", GNC_LIB_NAME),
+ " loading gnc-backend-file GModule failed");
print_test_results();
- qof_close();
- return 0;
+ qof_close();
+ return 0;
}
Modified: gnucash/branches/misc-backend/src/backend/file/test/test-load-xml2.c
===================================================================
--- gnucash/branches/misc-backend/src/backend/file/test/test-load-xml2.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/backend/file/test/test-load-xml2.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -47,8 +47,7 @@
#include "test-engine-stuff.h"
#include "test-file-stuff.h"
-#define GNC_LIB_NAME "libgnc-backend-file.la"
-#define GNC_LIB_INIT "gnc_provider_init"
+#define GNC_LIB_NAME "gnc-backend-file"
static void
remove_files_pattern(const char *begining, const char *ending)
@@ -112,8 +111,7 @@
g_type_init();
qof_init();
cashobjects_register();
- do_test(
- qof_load_backend_library ("../", GNC_LIB_NAME, GNC_LIB_INIT),
+ do_test(qof_load_backend_library ("../", GNC_LIB_NAME),
" loading gnc-backend-file GModule failed");
if (!location)
Modified: gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.c
===================================================================
--- gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -2542,7 +2542,8 @@
g_free (prov);
}
-void pgend_provider_init(void)
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module)
{
QofBackendProvider *prov;
@@ -2554,6 +2555,7 @@
prov->provider_free = pg_provider_free;
prov->check_data_type = NULL;
qof_backend_register_provider (prov);
+ return NULL;
}
/* ======================== END OF FILE ======================== */
Modified: gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.h
===================================================================
--- gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.h 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/backend/postgres/PostgresBackend.h 2006-05-24 03:21:09 UTC (rev 14165)
@@ -34,6 +34,7 @@
#ifndef POSTGRES_BACKEND_H
#define POSTGRES_BACKEND_H
+#include <gmodule.h>
#include <libpq-fe.h>
#include "Group.h"
@@ -57,6 +58,7 @@
#define MAX_VERSION_AGE 10
+#include "qofbackend-p.h"
struct _pgend {
QofBackend be;
@@ -132,6 +134,7 @@
void pgendDisable (PGBackend *be);
void pgendEnable (PGBackend *be);
-void pgend_provider_init(void);
+G_MODULE_EXPORT const gchar *
+g_module_check_init(GModule *module);
#endif /* POSTGRES_BACKEND_H */
Modified: gnucash/branches/misc-backend/src/backend/postgres/test/test-db.c
===================================================================
--- gnucash/branches/misc-backend/src/backend/postgres/test/test-db.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/backend/postgres/test/test-db.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -32,8 +32,7 @@
#include "test-stuff.h"
#include "test-engine-stuff.h"
-#define PG_LIB_NAME "libgnc-backend-postgres.la"
-#define PG_LIB_INIT "pgend_provider_init"
+#define PG_LIB_NAME "gnc-backend-postgres"
static QofLogModule log_module = GNC_MOD_TEST;
@@ -1095,9 +1094,8 @@
DbInfo *dbinfo;
qof_init();
- do_test(
- qof_load_backend_library (QOF_LIB_DIR, PG_LIB_NAME, PG_LIB_INIT),
- " loading gnc-backend-postgres GModule failed");
+ do_test(qof_load_backend_library (QOF_LIB_DIR, PG_LIB_NAME),
+ " loading gnc-backend-postgres GModule failed");
dbinfo = g_new0(DbInfo, 1);
Modified: gnucash/branches/misc-backend/src/backend/postgres/test/test-load-backend.c
===================================================================
--- gnucash/branches/misc-backend/src/backend/postgres/test/test-load-backend.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/backend/postgres/test/test-load-backend.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -29,8 +29,7 @@
#include "cashobjects.h"
#include "test-stuff.h"
-#define PG_LIB_NAME "libgnc-backend-postgres.la"
-#define PG_LIB_INIT "pgend_provider_init"
+#define PG_LIB_NAME "gnc-backend-postgres"
int main (int argc, char ** argv)
{
@@ -38,8 +37,7 @@
cashobjects_register();
/* the test needs to run locally in case make install
* has not yet been run. Use GNC_LIBDIR usually. */
- do_test(
- qof_load_backend_library ("../", PG_LIB_NAME, PG_LIB_INIT),
+ do_test(qof_load_backend_library ("../", PG_LIB_NAME),
" loading gnc-backend-postgres GModule failed");
print_test_results();
qof_close();
Modified: gnucash/branches/misc-backend/src/backend/postgres/test/test-period.c
===================================================================
--- gnucash/branches/misc-backend/src/backend/postgres/test/test-period.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/backend/postgres/test/test-period.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -35,7 +35,6 @@
#include "Transaction.h"
#define PG_LIB_NAME "libgnc-backend-postgres.la"
-#define PG_LIB_INIT "pgend_provider_init"
static void
run_test (void)
@@ -52,9 +51,8 @@
Timespec tsfirst, tslast, tsmiddle;
char * test_url;
- do_test( qof_load_backend_library (QOF_LIB_DIR,
- PG_LIB_NAME, PG_LIB_INIT),
- " loading gnc-backend-postgres GModule failed");
+ do_test(qof_load_backend_library (QOF_LIB_DIR, PG_LIB_NAME),
+ " loading gnc-backend-postgres GModule failed");
session = get_random_session ();
Modified: gnucash/branches/misc-backend/src/engine/Period.c
===================================================================
--- gnucash/branches/misc-backend/src/engine/Period.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/engine/Period.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -801,23 +801,27 @@
static void
period_begin_edit (QofBook *src_book, QofBook *dest_book)
{
+ /*
QofBackend *be;
be = qof_book_get_backend(src_book);
if (be && be->begin)
{
// (*be->begin)(be, GNC_ID_PERIOD, dest_book);
}
+ */
}
static void
period_commit_edit (QofBook *src_book, QofBook *dest_book)
{
+ /*
QofBackend *be;
be = qof_book_get_backend(src_book);
if (be && be->commit)
{
// (*be->commit)(be, GNC_ID_PERIOD, dest_book);
}
+ */
}
/* ================================================================ */
Modified: gnucash/branches/misc-backend/src/engine/Transaction.c
===================================================================
--- gnucash/branches/misc-backend/src/engine/Transaction.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/engine/Transaction.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -48,6 +48,7 @@
#include "gnc-lot.h"
#include "gnc-event.h"
+#include "qofbackend-p.h"
/* Notes about xaccTransBeginEdit(), xaccTransCommitEdit(), and
* xaccTransRollback():
Modified: gnucash/branches/misc-backend/src/engine/gnc-engine.c
===================================================================
--- gnucash/branches/misc-backend/src/engine/gnc-engine.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/engine/gnc-engine.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -1,5 +1,5 @@
/********************************************************************
- * gnc-engine.c -- top-level initialization for Gnucash Engine *
+ * gnc-engine.c -- top-level initialization for GnuCash Engine *
* Copyright 2000 Bill Gribble <grib at billgribble.com> *
* *
* This program is free software; you can redistribute it and/or *
@@ -39,15 +39,14 @@
#include "gnc-pricedb-p.h"
/** gnc file backend library name */
-#define GNC_LIB_NAME "libgnc-backend-file"
-/** init_fcn for gnc file backend library. */
-#define GNC_LIB_INIT "gnc_provider_init"
+#define GNC_LIB_NAME "gnc-backend-file"
+
/* gnc-backend-file location */
#include "gncla-dir.h"
static GList * engine_init_hooks = NULL;
static int engine_is_initialized = 0;
-static QofLogModule log_module = GNC_MOD_ENGINE;
+//static QofLogModule log_module = GNC_MOD_ENGINE;
/* GnuCash version functions */
unsigned int
@@ -76,15 +75,18 @@
void
gnc_engine_init(int argc, char ** argv)
{
+ static gchar *names[] = {
+ GNC_LIB_NAME, QSF_BACKEND_LIB, "gnc-backend-postgres",
+ NULL};
+ gchar **np;
gnc_engine_init_hook_t hook;
- GList * cur;
+ GList * cur;
if (1 == engine_is_initialized) return;
/* initialize logging to our file. */
qof_log_init_filename("/tmp/gnucash.trace");
- /* Only set the core log_modules here
- the rest can be set locally. */
+ /* Only set the core log_modules here the rest can be set locally. */
qof_log_set_level(GNC_MOD_ENGINE, QOF_LOG_WARNING);
qof_log_set_level(GNC_MOD_IO, QOF_LOG_WARNING);
qof_log_set_level(GNC_MOD_GUI, QOF_LOG_WARNING);
@@ -96,12 +98,11 @@
/* Now register our core types */
cashobjects_register();
- g_return_if_fail((qof_load_backend_library
- (QOF_LIB_DIR, QSF_BACKEND_LIB, QSF_MODULE_INIT)));
- g_return_if_fail((qof_load_backend_library
- (GNC_LIBDIR, GNC_LIB_NAME, GNC_LIB_INIT)));
+ for (np = names; *np; np++) {
+ if (qof_load_backend_library(GNC_LIBDIR, *np))
+ engine_is_initialized = 1;
+ }
- engine_is_initialized = 1;
/* call any engine hooks */
for (cur = engine_init_hooks; cur; cur = cur->next)
{
@@ -138,10 +139,7 @@
gboolean
gnc_engine_is_initialized (void)
{
-/* if (engine_is_initialized == 1) return TRUE;
- return FALSE;
-*/
- return (engine_is_initialized == 1) ? TRUE : FALSE;
+ return (engine_is_initialized == 1) ? TRUE : FALSE;
}
/* replicate old gnc-trace enum behaviour
@@ -176,46 +174,3 @@
qof_log_set_level(GNC_MOD_BUDGET, QOF_LOG_WARNING);
}
-/* ====================================================================== */
-/* XXX This exports the list of accounts to a file. It does not export
- * any transactions. Its a place-holder until full book-closing is implemented.
- */
-
-gboolean
-qof_session_export (QofSession *tmp_session,
- QofSession *real_session,
- QofPercentageFunc percentage_func)
-{
- QofBook *book, *book2;
- QofBackend *be;
- int err;
-
- if ((!tmp_session) || (!real_session)) return FALSE;
-
- book = qof_session_get_book (real_session);
- ENTER ("tmp_session=%p real_session=%p book=%p book_id=%s",
- tmp_session, real_session, book,
- qof_session_get_url(tmp_session)
- ? qof_session_get_url(tmp_session) : "(null)");
-
- /* There must be a backend or else. (It should always be the file
- * backend too.)
- */
- book2 = qof_session_get_book(tmp_session);
- be = qof_book_get_backend(book2);
- if (!be)
- return FALSE;
-
- be->percentage = percentage_func;
- if (be->export)
- {
-
- (be->export)(be, book);
- err = qof_backend_get_error(be);
-
- if (ERR_BACKEND_NO_ERR != err) { return FALSE; }
- }
-
- return TRUE;
-}
-
Modified: gnucash/branches/misc-backend/src/engine/gnc-engine.h
===================================================================
--- gnucash/branches/misc-backend/src/engine/gnc-engine.h 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/engine/gnc-engine.h 2006-05-24 03:21:09 UTC (rev 14165)
@@ -103,7 +103,7 @@
#define GNC_ID_SXTG "SXTGroup"
#define GNC_ID_SXTT "SXTTrans"
#define GNC_ID_TRANS "Trans"
-
+
/* TYPES **********************************************************/
/* CAS: ISTM, it would make more sense to put the typedefs in their
@@ -250,11 +250,5 @@
* it will be called during the evaluation of gnc_engine_init */
void gnc_engine_add_init_hook(gnc_engine_init_hook_t hook);
-gboolean
-qof_session_export (QofSession *tmp_session,
- QofSession *real_session,
- QofPercentageFunc percentage_func);
-
-
#endif
/** @} */
Modified: gnucash/branches/misc-backend/src/engine/gnc-pricedb.c
===================================================================
--- gnucash/branches/misc-backend/src/engine/gnc-pricedb.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/engine/gnc-pricedb.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -27,6 +27,7 @@
#include <glib.h>
#include <string.h>
#include "gnc-pricedb-p.h"
+#include "qofbackend-p.h"
/* This static indicates the debugging module that this .o belongs to. */
static QofLogModule log_module = GNC_MOD_PRICE;
Modified: gnucash/branches/misc-backend/src/engine/gnc-session-scm.c
===================================================================
--- gnucash/branches/misc-backend/src/engine/gnc-session-scm.c 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/engine/gnc-session-scm.c 2006-05-24 03:21:09 UTC (rev 14165)
@@ -69,13 +69,6 @@
qof_session_save (session, gnc_session_scm_gui_cb_helper);
}
-gboolean
-gnc_session_scm_export (QofSession *tmp_session, QofSession *real_session)
-{
- return qof_session_export(tmp_session, real_session,
- gnc_session_scm_gui_cb_helper);
-}
-
/*
* Set the callback that will be used for any calls to the session
* load/save functions from the scheme side of the code.
Modified: gnucash/branches/misc-backend/src/engine/gnc-session-scm.h
===================================================================
--- gnucash/branches/misc-backend/src/engine/gnc-session-scm.h 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/engine/gnc-session-scm.h 2006-05-24 03:21:09 UTC (rev 14165)
@@ -43,8 +43,6 @@
#include "gnc-engine.h"
void gnc_session_scm_load (QofSession *session);
-gboolean gnc_session_scm_export (QofSession *tmp_session,
- QofSession *real_session);
void gnc_session_scm_save (QofSession *session);
void gnc_session_scm_set_callback (SCM percentage_cb);
Modified: gnucash/branches/misc-backend/src/engine/gw-engine-spec.scm
===================================================================
--- gnucash/branches/misc-backend/src/engine/gw-engine-spec.scm 2006-05-24 03:18:14 UTC (rev 14164)
+++ gnucash/branches/misc-backend/src/engine/gw-engine-spec.scm 2006-05-24 03:21:09 UTC (rev 14165)
@@ -1443,14 +1443,6 @@
(gw:wrap-function
ws
- 'gnc:session-export
- '<gw:bool>
- "gnc_session_scm_export"
- '((<gnc:Session*> tmp_session) (<gnc:Session*> real_session))
- "Export the accounts in the session.")
-
-(gw:wrap-function
- ws
'gnc:session-set-callback
'<gw:void>
"gnc_session_scm_set_callback"
More information about the gnucash-changes
mailing list