r17223 - gnucash/branches/gda-dev2/src/backend - Make SQL backend API more regular - always pass GncSqlBackend pointer, not

Phil Longstaff plongstaff at cvs.gnucash.org
Thu Jun 12 16:27:00 EDT 2008


Author: plongstaff
Date: 2008-06-12 16:27:00 -0400 (Thu, 12 Jun 2008)
New Revision: 17223
Trac: http://svn.gnucash.org/trac/changeset/17223

Modified:
   gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c
   gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c
   gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-sql.c
   gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-sql.h
   gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.h
Log:
Make SQL backend API more regular - always pass GncSqlBackend pointer, not
sometimes a QofBackend pointer.


Modified: gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c	2008-06-12 20:10:59 UTC (rev 17222)
+++ gnucash/branches/gda-dev2/src/backend/dbi/gnc-backend-dbi.c	2008-06-12 20:27:00 UTC (rev 17223)
@@ -209,9 +209,9 @@
 }
 
 static void
-gnc_dbi_sync_all( QofBackend* fbe, QofBook *book )
+gnc_dbi_sync_all( QofBackend* qbe, QofBook *book )
 {
-    GncDbiBackend* be = (GncDbiBackend*)fbe;
+    GncDbiBackend* be = (GncDbiBackend*)qbe;
     dbi_result tables;
     GError* error = NULL;
     gint row;
@@ -244,7 +244,41 @@
 }
 
 /* ================================================================= */
+static void
+gnc_dbi_begin_edit( QofBackend *qbe, QofInstance *inst )
+{
+    GncDbiBackend* be = (GncDbiBackend*)qbe;
 
+	g_return_if_fail( be != NULL );
+	g_return_if_fail( inst != NULL );
+
+	gnc_sql_begin_edit( &be->sql_be, inst );
+}
+
+static void
+gnc_dbi_rollback_edit( QofBackend *qbe, QofInstance *inst )
+{
+    GncDbiBackend* be = (GncDbiBackend*)qbe;
+
+	g_return_if_fail( be != NULL );
+	g_return_if_fail( inst != NULL );
+
+	gnc_sql_rollback_edit( &be->sql_be, inst );
+}
+
+static void
+gnc_dbi_commit_edit( QofBackend *qbe, QofInstance *inst )
+{
+    GncDbiBackend* be = (GncDbiBackend*)qbe;
+
+	g_return_if_fail( be != NULL );
+	g_return_if_fail( inst != NULL );
+
+	gnc_sql_commit_edit( &be->sql_be, inst );
+}
+
+/* ================================================================= */
+
 static QofBackend*
 gnc_dbi_backend_new(void)
 {
@@ -264,9 +298,9 @@
     be->save_may_clobber_data = gnc_dbi_save_may_clobber_data;
 
     /* The gda backend treats accounting periods transactionally. */
-    be->begin = gnc_sql_begin_edit;
-    be->commit = gnc_sql_commit_edit;
-    be->rollback = gnc_sql_rollback_edit;
+    be->begin = gnc_dbi_begin_edit;
+    be->commit = gnc_dbi_commit_edit;
+    be->rollback = gnc_dbi_rollback_edit;
 
     be->counter = NULL;
 

Modified: gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c	2008-06-12 20:10:59 UTC (rev 17222)
+++ gnucash/branches/gda-dev2/src/backend/gda/gnc-backend-gda.c	2008-06-12 20:27:00 UTC (rev 17223)
@@ -429,7 +429,41 @@
 }
 
 /* ================================================================= */
+static void
+gnc_gda_begin_edit( QofBackend *qbe, QofInstance *inst )
+{
+    GncGdaBackend* be = (GncGdaBackend*)qbe;
 
+	g_return_if_fail( be != NULL );
+	g_return_if_fail( inst != NULL );
+
+	gnc_sql_begin_edit( &be->sql_be, inst );
+}
+
+static void
+gnc_gda_rollback_edit( QofBackend *qbe, QofInstance *inst )
+{
+    GncGdaBackend* be = (GncGdaBackend*)qbe;
+
+	g_return_if_fail( be != NULL );
+	g_return_if_fail( inst != NULL );
+
+	gnc_sql_rollback_edit( &be->sql_be, inst );
+}
+
+static void
+gnc_gda_commit_edit( QofBackend *qbe, QofInstance *inst )
+{
+    GncGdaBackend* be = (GncGdaBackend*)qbe;
+
+	g_return_if_fail( be != NULL );
+	g_return_if_fail( inst != NULL );
+
+	gnc_sql_commit_edit( &be->sql_be, inst );
+}
+
+/* ================================================================= */
+
 static QofBackend*
 gnc_gda_backend_new(void)
 {
@@ -449,9 +483,9 @@
     be->save_may_clobber_data = gnc_gda_save_may_clobber_data;
 
     /* The gda backend treats accounting periods transactionally. */
-    be->begin = gnc_sql_begin_edit;
-    be->commit = gnc_sql_commit_edit;
-    be->rollback = gnc_sql_rollback_edit;
+    be->begin = gnc_gda_begin_edit;
+    be->commit = gnc_gda_commit_edit;
+    be->rollback = gnc_gda_rollback_edit;
 
     /* The gda backend uses queries to load data ... */
 #if 0

Modified: gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-sql.c
===================================================================
--- gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-sql.c	2008-06-12 20:10:59 UTC (rev 17222)
+++ gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-sql.c	2008-06-12 20:27:00 UTC (rev 17223)
@@ -425,16 +425,16 @@
 /* Routines to deal with the creation of multiple books. */
 
 void
-gnc_sql_begin_edit( QofBackend *qbe, QofInstance *inst )
+gnc_sql_begin_edit( GncSqlBackend *be, QofInstance *inst )
 {
-	g_return_if_fail( qbe != NULL );
+	g_return_if_fail( be != NULL );
 	g_return_if_fail( inst != NULL );
 }
 
 void
-gnc_sql_rollback_edit( QofBackend *qbe, QofInstance *inst )
+gnc_sql_rollback_edit( GncSqlBackend *be, QofInstance *inst )
 {
-	g_return_if_fail( qbe != NULL );
+	g_return_if_fail( be != NULL );
 	g_return_if_fail( inst != NULL );
 }
 
@@ -461,9 +461,8 @@
  * type and call its commit handler
  */
 void
-gnc_sql_commit_edit( QofBackend *qbe, QofInstance *inst )
+gnc_sql_commit_edit( GncSqlBackend *be, QofInstance *inst )
 {
-	GncSqlBackend* be = (GncSqlBackend*)qbe;
     sql_backend be_data;
 	GError* error;
 	gboolean status;

Modified: gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-sql.h
===================================================================
--- gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-sql.h	2008-06-12 20:10:59 UTC (rev 17222)
+++ gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-sql.h	2008-06-12 20:27:00 UTC (rev 17223)
@@ -18,26 +18,89 @@
  * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
  * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
 \********************************************************************/
+
+/**
+ * @defgroup SQLBE SQL Backend Core
+  @{
+*/
+
+/** @addtogroup Columns Columns
+    @ingroup SQLBE
+*/
+
+/**
+  @}
+*/
+
+/** @addtogroup SQLBE
+    @{
+*/
+/** @addtogroup SQLBE
+
+ * The SQL backend core is a library which can form the core for a QOF
+ * backend based on an SQL library.
+
+*/
+
 /** @file gnc-backend-sql.h
  *  @brief load and save data to SQL
  *  @author Copyright (c) 2006-2008 Phil Longstaff <plongstaff at rogers.com>
  *
- * This file implements the top-level QofBackend API for saving/
- * restoring data to/from an SQL database
- */
+   @}
+ */ 
 
 #ifndef GNC_BACKEND_SQL_H_
 #define GNC_BACKEND_SQL_H_
 
 #include <gmodule.h>
 
+/**
+ * Initialize the SQL backend.
+ *
+ * @param be SQL backend
+ */
 void gnc_sql_init( GncSqlBackend* be );
+
+/**
+ * Load the contents of an SQL database into a book.
+ *
+ * @param be SQL backend
+ * @param book Book to be loaded
+ */
 void gnc_sql_load( GncSqlBackend* be, QofBook *book );
+
+/**
+ * Save the contents of a book to an SQL database.
+ *
+ * @param be SQL backend
+ * @param book Book to be saved
+ */
 void gnc_sql_sync_all( GncSqlBackend* be, QofBook *book );
-void gnc_sql_begin_edit( QofBackend* qbe, QofInstance *inst );
-void gnc_sql_rollback_edit( QofBackend* qbe, QofInstance *inst );
-void gnc_sql_commit_edit( QofBackend* qbe, QofInstance *inst );
 
+/**
+ * An object is about to be edited.
+ *
+ * @param be SQL backend
+ * @param inst Object being edited
+ */
+void gnc_sql_begin_edit( GncSqlBackend* be, QofInstance *inst );
+
+/**
+ * Object editing has been cancelled.
+ *
+ * @param be SQL backend
+ * @param inst Object being edited
+ */
+void gnc_sql_rollback_edit( GncSqlBackend* qbe, QofInstance *inst );
+
+/**
+ * Object editting is complete and the object should be saved.
+ *
+ * @param be SQL backend
+ * @param inst Object being edited
+ */
+void gnc_sql_commit_edit( GncSqlBackend* qbe, QofInstance *inst );
+
 G_MODULE_EXPORT void
 qof_backend_module_init(void);
 

Modified: gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.h
===================================================================
--- gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.h	2008-06-12 20:10:59 UTC (rev 17222)
+++ gnucash/branches/gda-dev2/src/backend/sql/gnc-backend-util-sql.h	2008-06-12 20:27:00 UTC (rev 17223)
@@ -42,6 +42,9 @@
 typedef struct GncSqlConnection GncSqlConnection;
 typedef struct GncSqlRow GncSqlRow;
 
+/**
+ *@struct GncSqlStatement
+ */
 struct GncSqlStatement
 {
 	void (*dispose)( GncSqlStatement* );
@@ -55,6 +58,9 @@
 #define gnc_sql_statement_add_where_cond(STMT,TYPENAME,OBJ,COLDESC,VALUE) \
 		(STMT)->addWhereCond(STMT, TYPENAME, OBJ, COLDESC, VALUE)
 
+/**
+ * @struct GncSqlColumnInfo
+ */
 typedef struct {
 	const gchar* name;
 	const gchar* type_name;
@@ -63,6 +69,9 @@
 	gboolean null_allowed;
 } GncSqlColumnInfo;
 
+/**
+ * @struct GncSqlConnection
+ */
 struct GncSqlConnection
 {
 	void (*dispose)( GncSqlConnection* );



More information about the gnucash-changes mailing list