r16041 - gnucash/trunk - Collapse the various "version" and "version_check" fields into a

David Hampton hampton at cvs.gnucash.org
Wed May 2 22:56:58 EDT 2007


Author: hampton
Date: 2007-05-02 22:56:56 -0400 (Wed, 02 May 2007)
New Revision: 16041
Trac: http://svn.gnucash.org/trac/changeset/16041

Modified:
   gnucash/trunk/lib/libqof/qof/qofinstance.c
   gnucash/trunk/lib/libqof/qof/qofinstance.h
   gnucash/trunk/src/backend/postgres/PostgresBackend.c
   gnucash/trunk/src/backend/postgres/account.c
   gnucash/trunk/src/backend/postgres/price.c
   gnucash/trunk/src/backend/postgres/table.m4
   gnucash/trunk/src/backend/postgres/test/test-db.c
   gnucash/trunk/src/backend/postgres/txn.c
   gnucash/trunk/src/backend/postgres/txnmass.c
   gnucash/trunk/src/engine/Account.c
   gnucash/trunk/src/engine/Account.h
   gnucash/trunk/src/engine/Transaction.c
   gnucash/trunk/src/engine/TransactionP.h
   gnucash/trunk/src/engine/gnc-pricedb-p.h
   gnucash/trunk/src/engine/gnc-pricedb.c
   gnucash/trunk/src/engine/gnc-pricedb.h
   gnucash/trunk/src/engine/test/test-book-merge.c
Log:
Collapse the various "version" and "version_check" fields into a
single pair of fields attached to the QofInstance object.


Modified: gnucash/trunk/lib/libqof/qof/qofinstance.c
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofinstance.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/lib/libqof/qof/qofinstance.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -56,6 +56,8 @@
     PROP_DESTROYING,
     PROP_DIRTY,
     PROP_INFANT,
+    PROP_VERSION,
+    PROP_VERSION_CHECK,
 };
 
 typedef struct QofInstancePrivate
@@ -94,6 +96,11 @@
 
     /* True iff this instance has never been committed. */
     gboolean infant;
+
+    /* version number, used for tracking multiuser updates */
+    gint32 version;
+    guint32 version_check;  /* data aging timestamp */
+
 }  QofInstancePrivate;
 
 #define GET_PRIVATE(o)  \
@@ -211,6 +218,28 @@
                                "state of the data file.",
                                FALSE,
                                G_PARAM_READABLE));
+
+    g_object_class_install_property
+	(object_class,
+	 PROP_VERSION,
+	 g_param_spec_int ("version",
+			   "Version",
+			   "The version number of the current instance state.",
+			   0,
+			   G_MAXINT32,
+			   0,
+			   G_PARAM_READWRITE));
+
+    g_object_class_install_property
+	(object_class,
+	 PROP_VERSION_CHECK,
+	 g_param_spec_uint ("version-check",
+			    "Version Check",
+			    "The version check number of the current instance state.",
+			    0,
+			    G_MAXUINT32,
+			    0,
+			    G_PARAM_READWRITE));
 }
 
 static void
@@ -343,6 +372,12 @@
         case PROP_INFANT:
             g_value_set_boolean(value, priv->infant);
             break;
+	case PROP_VERSION:
+	    g_value_set_int(value, priv->version);
+	    break;
+	case PROP_VERSION_CHECK:
+	    g_value_set_uint(value, priv->version_check);
+	    break;
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
             break;
@@ -387,6 +422,12 @@
         case PROP_DIRTY:
             qof_instance_set_dirty(inst);
             break;
+	case PROP_VERSION:
+	    qof_instance_set_version(inst, g_value_get_int(value));
+	    break;
+	case PROP_VERSION_CHECK:
+	    qof_instance_set_version_check(inst, g_value_get_uint(value));
+	    break;
         default:
             G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
             break;
@@ -427,8 +468,6 @@
 void
 qof_instance_copy_guid (gpointer to, gconstpointer from)
 {
-    QofInstancePrivate *to_priv, *from_priv;
-
     g_return_if_fail(QOF_IS_INSTANCE(to));
     g_return_if_fail(QOF_IS_INSTANCE(from));
 
@@ -677,6 +716,70 @@
     return GET_PRIVATE(inst)->infant;
 }
 
+gint32 
+qof_instance_get_version (gconstpointer inst)
+{
+    g_return_val_if_fail(QOF_IS_INSTANCE(inst), 0);
+    return GET_PRIVATE(inst)->version;
+}
+
+gint
+qof_instance_compare_version (gconstpointer inst1, gconstpointer inst2)
+{
+    g_return_val_if_fail(QOF_IS_INSTANCE(inst1), 1);
+    g_return_val_if_fail(QOF_IS_INSTANCE(inst2), -1);
+    return GET_PRIVATE(inst2)->version - GET_PRIVATE(inst1)->version;
+}
+
+void 
+qof_instance_set_version (gpointer inst, gint32 vers)
+{
+    g_return_if_fail(QOF_IS_INSTANCE(inst));
+    GET_PRIVATE(inst)->version = vers;
+}
+
+void
+qof_instance_copy_version (gpointer to, gconstpointer from)
+{
+    g_return_if_fail(QOF_IS_INSTANCE(to));
+    g_return_if_fail(QOF_IS_INSTANCE(from));
+    GET_PRIVATE(to)->version = GET_PRIVATE(from)->version;
+}
+
+void
+qof_instance_increment_version (gpointer inst, guint32 new_check)
+{
+    QofInstancePrivate *priv;
+
+    g_return_if_fail(QOF_IS_INSTANCE(inst));
+
+    priv = GET_PRIVATE(inst);
+    priv->version++;
+    priv->version_check = new_check;
+}
+
+guint32
+qof_instance_get_version_check (gconstpointer inst)
+{
+    g_return_val_if_fail(QOF_IS_INSTANCE(inst), 0);
+    return GET_PRIVATE(inst)->version_check;
+}
+
+void
+qof_instance_set_version_check (gpointer inst, guint32 value)
+{
+    g_return_if_fail(QOF_IS_INSTANCE(inst));
+    GET_PRIVATE(inst)->version_check = value;
+}
+
+void
+qof_instance_copy_version_check (gpointer to, gconstpointer from)
+{
+    g_return_if_fail(QOF_IS_INSTANCE(to));
+    g_return_if_fail(QOF_IS_INSTANCE(from));
+    GET_PRIVATE(to)->version_check = GET_PRIVATE(from)->version_check;
+}
+
 /* ========================================================== */
 
 void

Modified: gnucash/trunk/lib/libqof/qof/qofinstance.h
===================================================================
--- gnucash/trunk/lib/libqof/qof/qofinstance.h	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/lib/libqof/qof/qofinstance.h	2007-05-03 02:56:56 UTC (rev 16041)
@@ -198,6 +198,26 @@
 
 gboolean qof_instance_get_infant(const QofInstance *inst);
 
+/** Get the version number on this instance.  The version number is
+ *  used to manage multi-user updates. */
+gint32 qof_instance_get_version (gconstpointer inst);
+/** Compare the version numbers of two instances. */
+gint qof_instance_compare_version (gconstpointer inst1, gconstpointer inst2);
+/** Set the version number on this instance.  The version number is
+ *  used to manage multi-user updates. */
+void qof_instance_set_version (gpointer inst, gint32 value);
+/** Copy the version number on this instance.  The version number is
+ *  used to manage multi-user updates. */
+void qof_instance_copy_version (gpointer to, gconstpointer from);
+/** Increment the instance version number */
+void qof_instance_increment_version (gpointer inst, guint32 new_check);
+/** Get the instance version_check number */
+guint32 qof_instance_get_version_check (gconstpointer inst);
+/** Set the instance version_check number */
+void qof_instance_set_version_check (gpointer inst, guint32 value);
+/** copy the instance version_check number */
+void qof_instance_copy_version_check (gpointer to, gconstpointer from);
+
 /** Pair things up.  This routine inserts a kvp value into each instance
  *  containing the guid of the other.  In this way, if one has one of the
  *  pair, one can always find the other by looking up it's guid.  Typically,

Modified: gnucash/trunk/src/backend/postgres/PostgresBackend.c
===================================================================
--- gnucash/trunk/src/backend/postgres/PostgresBackend.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/backend/postgres/PostgresBackend.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -445,7 +445,7 @@
       {
          gint32 db_version, cache_version;
          db_version = atoi (DB_GET_VAL("version",j));
-         cache_version = xaccTransGetVersion (trans);
+         cache_version = qof_instance_get_version (trans);
          if (db_version <= cache_version) {
             return qd;
          }
@@ -465,7 +465,7 @@
    xaccTransSetDatePostedTS (trans, &ts);
    ts = gnc_iso8601_to_timespec_gmt (DB_GET_VAL("date_entered",j));
    xaccTransSetDateEnteredTS (trans, &ts);
-   xaccTransSetVersion (trans, atoi(DB_GET_VAL("version",j)));
+   qof_instance_set_version (trans, atoi(DB_GET_VAL("version",j)));
    trans->idata = atoi(DB_GET_VAL("iguid",j));
 
    currency = gnc_string_to_commodity (DB_GET_VAL("currency",j), 

Modified: gnucash/trunk/src/backend/postgres/account.c
===================================================================
--- gnucash/trunk/src/backend/postgres/account.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/backend/postgres/account.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -102,8 +102,8 @@
    {
      if (0 < pgendAccountCompareVersion (be, acct)) return;
    }
-   gnc_account_increment_version(acct);  /* be sure to update the version !! */
-   gnc_account_set_version_check(acct, be->version_check);
+  /* be sure to update the version !! */
+   qof_instance_increment_version(acct, be->version_check);
 
    if ((0 == acct->idata) &&
        (FALSE == kvp_frame_is_empty (xaccAccountGetSlots(acct))))
@@ -300,7 +300,7 @@
    xaccAccountSetType(acc, xaccAccountStringToEnum(DB_GET_VAL("type",j)));
    if (commodity)
      xaccAccountSetCommodity(acc, commodity);
-   xaccAccountSetVersion(acc, atoi(DB_GET_VAL("version",j)));
+   qof_instance_set_version(acc, atoi(DB_GET_VAL("version",j)));
    acc->idata = atoi(DB_GET_VAL("iguid",j));
 
    /* try to find the parent account */
@@ -494,7 +494,7 @@
    {
       /* save some performance, don't go to the
        * backend if the data is recent. */
-      guint32 value = gnc_account_get_version_check(acc);
+      guint32 value = qof_instance_get_version_check(acc);
       if (MAX_VERSION_AGE >= be->version_check - value) 
       {
          PINFO ("fresh data, skip check");
@@ -528,7 +528,7 @@
             acc->inst.kvp_data = pgendKVPFetch (be, acc->idata, acc->inst.kvp_data);
          }
 
-         gnc_account_set_version_check(acc, be->version_check);
+         qof_instance_set_version_check(acc, be->version_check);
       }
    }
 
@@ -591,8 +591,8 @@
       LEAVE ("rolled back");
       return;
    }
-   gnc_account_increment_version(acct);  /* be sure to update the version !! */
-   gnc_account_set_version_check(acct, be->version_check);
+   /* be sure to update the version !! */
+   qof_instance_increment_version(acct, be->version_check);
 
    if (qof_instance_get_destroying(acct))
    {

Modified: gnucash/trunk/src/backend/postgres/price.c
===================================================================
--- gnucash/trunk/src/backend/postgres/price.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/backend/postgres/price.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -143,8 +143,8 @@
    {
      if (0 < pgendPriceCompareVersion (be, pr)) return;
    }
-   pr->version ++;  /* be sure to update the version !! */
-   pr->version_check = be->version_check;
+   /* be sure to update the version !! */
+   qof_instance_increment_version(pr, be->version_check);
 
    /* make sure that we've stored the commodity 
     * and currency before we store the price.
@@ -287,7 +287,7 @@
 
    /* compare versions. Hack alert -- Not sure how to handle failures */
    sql_vers = atoi (DB_GET_VAL("version",j));
-   local_vers = gnc_price_get_version(pr);
+   local_vers = qof_instance_get_version(pr);
    if (sql_vers < local_vers) {
       PERR ("local price version is higher than db !!! local=%d sql=%d",
          local_vers, sql_vers);
@@ -295,7 +295,7 @@
       gnc_price_unref (pr);
       return data;
    }
-   gnc_price_set_version (pr, sql_vers);
+   qof_instance_set_version (pr, sql_vers);
 
    modity = gnc_string_to_commodity (DB_GET_VAL("commodity",j), book);
    gnc_price_set_commodity (pr, modity);
@@ -493,8 +493,8 @@
       qof_backend_set_error (&be->be, ERR_BACKEND_MODIFIED);
       return;
    }
-   pr->version ++;   /* be sure to update the version !! */
-   pr->version_check = be->version_check;
+   /* be sure to update the version !! */
+   qof_instance_increment_version(pr, be->version_check);
 
    if (qof_instance_get_destroying(pr))
    {

Modified: gnucash/trunk/src/backend/postgres/table.m4
===================================================================
--- gnucash/trunk/src/backend/postgres/table.m4	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/backend/postgres/table.m4	2007-05-03 02:56:56 UTC (rev 16041)
@@ -11,7 +11,7 @@
        description,    , char *, xaccAccountGetDescription(ptr),
        type,           , char *, xaccAccountTypeEnumAsString(xaccAccountGetType(ptr)),
        commodity,      , char *, gnc_commodity_get_unique_name(xaccAccountGetCommodity(ptr)),
-       version,        , int32,  xaccAccountGetVersion(ptr),
+       version,        , int32,  qof_instance_get_version(ptr),
        iguid,          , int32,  ptr->idata,
        bookGUID,       , GUID *, qof_instance_get_guid((QofInstance*)gnc_account_get_book(ptr)),
        parentGUID,     , GUID *, xaccAccountGetGUID(gnc_account_get_parent(ptr)),
@@ -52,7 +52,7 @@
        last_modified,  , now,      "NOW",
        date_entered,   , Timespec, xaccTransRetDateEnteredTS(ptr),
        date_posted,    , Timespec, xaccTransRetDatePostedTS(ptr),
-       version,        , int32,    xaccTransGetVersion(ptr),
+       version,        , int32,    qof_instance_get_version(ptr),
        iguid,          , int32,    ptr->idata,
        transGUID,   KEY, GUID *,   xaccTransGetGUID(ptr),
        ')
@@ -76,7 +76,7 @@
        type,         , char *,   gnc_price_get_typestr(ptr),
        valueNum,     , int64,    gnc_numeric_num(gnc_price_get_value(ptr)),
        valueDenom,   , int64,    gnc_numeric_denom(gnc_price_get_value(ptr)),
-       version,      , int32,    gnc_price_get_version(ptr),
+       version,      , int32,    qof_instance_get_version(ptr),
        bookGUID,     , GUID *,   qof_book_get_guid(gnc_price_get_book(ptr)),
        priceGUID, KEY, GUID *,   gnc_price_get_guid(ptr),
        ')

Modified: gnucash/trunk/src/backend/postgres/test/test-db.c
===================================================================
--- gnucash/trunk/src/backend/postgres/test/test-db.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/backend/postgres/test/test-db.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -759,7 +759,7 @@
 
     ok = xaccTransEqual(trans, trans_2, TRUE, TRUE, TRUE, FALSE);
     if (trans && trans_2)
-        ok = ok && (trans->version == trans_2->version);
+      ok = ok && (qof_instance_compare_version(trans, trans_2));
 
     /*
        ok = ok && (qof_session_get_error (td->session_2) == ERR_BACKEND_MODIFIED);

Modified: gnucash/trunk/src/backend/postgres/txn.c
===================================================================
--- gnucash/trunk/src/backend/postgres/txn.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/backend/postgres/txn.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -143,8 +143,8 @@
    {
       if (0 < pgendTransactionCompareVersion (be, trans)) return;
    }
-   trans->version ++;  /* be sure to update the version !! */
-   trans->version_check = be->version_check;
+   /* be sure to update the version !! */
+   qof_instance_increment_version(trans, be->version_check);
 
    /* first, we need to see which splits are in the database
     * since what is there may not match what we have cached in 
@@ -652,7 +652,7 @@
    {
       /* save some performance, don't go to the
          backend if the data is recent. */
-      if (MAX_VERSION_AGE >= be->version_check - trans->version_check) 
+      if (MAX_VERSION_AGE >= be->version_check - qof_instance_get_version_check(trans)) 
       {
          PINFO ("fresh data, skip check");
          pgendEnable(be);
@@ -715,7 +715,7 @@
      {
        gint32 db_version, cache_version;
        db_version = atoi (DB_GET_VAL("version",j));
-       cache_version = xaccTransGetVersion (trans);
+       cache_version = qof_instance_get_version (trans);
        if (db_version == cache_version) {
          engine_data_is_newer = 0;
        } else 
@@ -753,7 +753,7 @@
        xaccTransSetDatePostedTS (trans, &ts);
        ts = gnc_iso8601_to_timespec_gmt (DB_GET_VAL("date_entered",j));
        xaccTransSetDateEnteredTS (trans, &ts);
-       xaccTransSetVersion (trans, atoi(DB_GET_VAL("version",j)));
+       qof_instance_set_version (trans, atoi(DB_GET_VAL("version",j)));
        xaccTransSetCurrency (trans, currency);
        trans->idata = atoi(DB_GET_VAL("iguid",j));
      }
@@ -762,7 +762,7 @@
    PQclear (result);
 
    /* set timestamp as 'recent' for this data */
-   trans->version_check = be->version_check;
+   qof_instance_set_version_check(trans, be->version_check);
 
    /* if engine data was newer, we are done */
    if (0 <= engine_data_is_newer) 

Modified: gnucash/trunk/src/backend/postgres/txnmass.c
===================================================================
--- gnucash/trunk/src/backend/postgres/txnmass.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/backend/postgres/txnmass.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -71,7 +71,7 @@
 
       gint32 db_version, cache_version;
       db_version = atoi (DB_GET_VAL("version",j));
-      cache_version = xaccTransGetVersion (trans);
+      cache_version = qof_instance_get_version (trans);
       if (db_version < cache_version) {
          xaccTransBeginEdit (trans);
          xaction_list = g_list_prepend (xaction_list, trans);
@@ -93,7 +93,7 @@
    xaccTransSetDatePostedTS (trans, &ts);
    ts = gnc_iso8601_to_timespec_gmt (DB_GET_VAL("date_entered",j));
    xaccTransSetDateEnteredTS (trans, &ts);
-   xaccTransSetVersion (trans, atoi(DB_GET_VAL("version",j)));
+   qof_instance_set_version (trans, atoi(DB_GET_VAL("version",j)));
    trans->idata = atoi (DB_GET_VAL("iguid",j));
 
    currency = gnc_string_to_commodity (DB_GET_VAL("currency",j), book);
@@ -101,7 +101,7 @@
    xaccTransSetCurrency (trans, currency);
 
    /* set timestamp as 'recent' for this data */
-   trans->version_check = be->version_check;
+   qof_instance_set_version_check(trans, be->version_check);
 
    xaction_list = g_list_prepend (xaction_list, trans);
 

Modified: gnucash/trunk/src/engine/Account.c
===================================================================
--- gnucash/trunk/src/engine/Account.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/engine/Account.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -73,8 +73,6 @@
   PROP_END_CLEARED_BALANCE,
   PROP_END_RECONCILED_BALANCE,
 
-  PROP_ACCT_VERSION,
-  PROP_ACCT_VERSION_CHECK,
   PROP_POLICY,
   PROP_MARK,
   PROP_TAX_RELATED,
@@ -140,10 +138,6 @@
 
     gboolean balance_dirty;     /* balances in splits incorrect */
 
-    /* version number, used for tracking multiuser updates */
-    gint32 version;
-    guint32 version_check;  /* data aging timestamp */
-
     GList *splits;              /* list of split pointers */
     gboolean sort_dirty;        /* sort order of splits is bad */
 
@@ -237,8 +231,6 @@
 
     priv->type = ACCT_TYPE_NONE;
 
-    priv->version = 0;
-    priv->version_check = 0;
     priv->mark = 0;
 
     priv->policy = xaccGetFIFOPolicy();
@@ -338,12 +330,6 @@
 	case PROP_END_RECONCILED_BALANCE:
 	    g_value_set_boxed(value, &priv->reconciled_balance);
 	    break;
-	case PROP_ACCT_VERSION:
-	    g_value_set_int(value, priv->version);
-	    break;
-	case PROP_ACCT_VERSION_CHECK:
-	    g_value_set_uint(value, priv->version_check);
-	    break;
 	case PROP_POLICY:
 	    /* MAKE THIS A BOXED VALUE */
 	    g_value_set_pointer(value, priv->policy);
@@ -421,12 +407,6 @@
 	    number = g_value_get_boxed(value);
 	    gnc_account_set_start_reconciled_balance(account, *number);
 	    break;
-	case PROP_ACCT_VERSION:
-	    xaccAccountSetVersion(account, g_value_get_int(value));
-	    break;
-	case PROP_ACCT_VERSION_CHECK:
-	    gnc_account_set_version_check(account, g_value_get_uint(value));
-	    break;
 	case PROP_POLICY:
 	    gnc_account_set_policy(account, g_value_get_pointer(value));
 	    break;
@@ -691,28 +671,6 @@
 
     g_object_class_install_property
 	(gobject_class,
-	 PROP_ACCT_VERSION,
-	 g_param_spec_int ("acct-version",
-			   "Version",
-			   "The version number of the current account state.",
-			   0,
-			   G_MAXINT32,
-			   0,
-			   G_PARAM_READWRITE));
-
-    g_object_class_install_property
-	(gobject_class,
-	 PROP_ACCT_VERSION_CHECK,
-	 g_param_spec_uint ("acct-version-check",
-			    "Version Check",
-			    "The version check number of the current account state.",
-			    0,
-			    G_MAXUINT32,
-			    0,
-			    G_PARAM_READWRITE));
-
-    g_object_class_install_property
-	(gobject_class,
 	 PROP_POLICY,
 	 g_param_spec_pointer ("policy",
 			       "Policy",
@@ -1050,7 +1008,6 @@
   priv->type = ACCT_TYPE_NONE;
   priv->commodity = NULL;
 
-  priv->version = 0;
   priv->balance_dirty = FALSE;
   priv->sort_dirty = FALSE;
 
@@ -1178,56 +1135,6 @@
   xaccAccountCommitEdit (acc);
 }
 
-void 
-xaccAccountSetVersion (Account *acc, gint32 vers)
-{
-    AccountPrivate *priv;
-
-    g_return_if_fail(GNC_IS_ACCOUNT(acc));
-
-    priv = GET_PRIVATE(acc);
-    priv->version = vers;
-}
-
-gint32 
-xaccAccountGetVersion (const Account *acc)
-{
-    g_return_val_if_fail(GNC_IS_ACCOUNT(acc), 0);
-
-    return GET_PRIVATE(acc)->version;
-}
-
-void
-gnc_account_increment_version (Account *acc)
-{
-    AccountPrivate *priv;
-
-    g_return_if_fail(GNC_IS_ACCOUNT(acc));
-
-    priv = GET_PRIVATE(acc);
-    priv->version++;
-}
-
-guint32
-gnc_account_get_version_check (const Account *acc)
-{
-    g_return_val_if_fail(GNC_IS_ACCOUNT(acc), 0);
-
-    return GET_PRIVATE(acc)->version_check;
-}
-
-void
-gnc_account_set_version_check (Account *acc, guint32 value)
-{
-    AccountPrivate *priv;
-
-    g_return_if_fail(GNC_IS_ACCOUNT(acc));
-
-    priv = GET_PRIVATE(acc);
-    priv->version_check = value;
-}
-
-
 /********************************************************************\
 \********************************************************************/
 

Modified: gnucash/trunk/src/engine/Account.h
===================================================================
--- gnucash/trunk/src/engine/Account.h	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/engine/Account.h	2007-05-03 02:56:56 UTC (rev 16041)
@@ -263,13 +263,6 @@
 void xaccAccountSetLastNum (Account *account, const char *num);
 /** Set the account's lot order policy */
 void gnc_account_set_policy (Account *account, GNCPolicy *policy);
-/** Set the version numbers on this account.  The version number is
- *  used to manage multi-user updates. */
-void xaccAccountSetVersion (Account*, gint32);
-/** Increment the account version number */
-void gnc_account_increment_version (Account *acc);
-/** Set the account version_check number */
-void gnc_account_set_version_check (Account *acc, guint32 value);
 /** Get the account's type */
 GNCAccountType xaccAccountGetType (const Account *account);
 /** Is the account a stock, mutual fund or currency? */
@@ -361,11 +354,6 @@
 const char * xaccAccountGetLastNum (const Account *account);
 /** Get the account's lot order policy */
 GNCPolicy *gnc_account_get_policy (Account *account);
-/** Get the version numbers on this account.  The version number is
- *  used to manage multi-user updates. */
-gint32 xaccAccountGetVersion (const Account* acc);
-/** Get the account version_check number */
-guint32 gnc_account_get_version_check (const Account *acc);
 /** Retrieve the starting commodity balance for this account. */
 gnc_numeric gnc_account_get_start_balance (Account *acc);
 

Modified: gnucash/trunk/src/engine/Transaction.c
===================================================================
--- gnucash/trunk/src/engine/Transaction.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/engine/Transaction.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -271,8 +271,6 @@
   trans->date_posted.tv_sec  = 0;
   trans->date_posted.tv_nsec = 0;
 
-  trans->version = 0;
-  trans->version_check = 0;
   trans->marker = 0;
   trans->orig = NULL;
 
@@ -312,8 +310,8 @@
          trans->description ? trans->description : "(null)");
   printf("    Currency:    %s\n", 
          gnc_commodity_get_printname(trans->common_currency));
-  printf("    version:     %x\n", trans->version);
-  printf("    version_chk: %x\n", trans->version_check);
+  printf("    version:     %x\n", qof_instance_get_version(trans));
+  printf("    version_chk: %x\n", qof_instance_get_version_check(trans));
   printf("    editlevel:   %x\n", qof_instance_get_editlevel(trans));
   printf("    orig:        %p\n", trans->orig);
   printf("    idata:       %x\n", trans->idata);
@@ -386,7 +384,7 @@
 
   trans->date_entered = t->date_entered;
   trans->date_posted = t->date_posted;
-  trans->version = t->version;
+  qof_instance_copy_version(trans, t);
   trans->orig = NULL;
 
   trans->common_currency = t->common_currency;
@@ -422,8 +420,8 @@
   trans->num             = CACHE_INSERT (t->num);
   trans->description     = CACHE_INSERT (t->description);
   trans->common_currency = t->common_currency;
-  trans->version         = t->version;
-  trans->version_check   = t->version_check;
+  qof_instance_copy_version(trans, t);
+  qof_instance_copy_version_check(trans, t);
 
   trans->orig            = NULL;
   trans->idata           = 0;
@@ -483,7 +481,6 @@
   trans->date_entered.tv_nsec = 0;
   trans->date_posted.tv_sec = 0;
   trans->date_posted.tv_nsec = 0;
-  trans->version = 0;
 
   if (trans->orig)
   {
@@ -1217,20 +1214,6 @@
   return trans ? (0 < qof_instance_get_editlevel(trans)) : FALSE;
 }
 
-/* Only used by postgres backend. Not sure if it should dirty the trans. */
-void
-xaccTransSetVersion (Transaction *trans, gint32 vers)
-{
-  if (trans) 
-      trans->version = vers;
-}
-
-gint32
-xaccTransGetVersion (const Transaction *trans)
-{
-  return trans ? trans->version : 0;
-}
-
 #define SECS_PER_DAY 86400
 
 int

Modified: gnucash/trunk/src/engine/TransactionP.h
===================================================================
--- gnucash/trunk/src/engine/TransactionP.h	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/engine/TransactionP.h	2007-05-03 02:56:56 UTC (rev 16041)
@@ -95,10 +95,6 @@
    * splits can be valued.  */
   gnc_commodity *common_currency;
 
-  /* version number, used for tracking multiuser updates */
-  gint32 version;
-  guint32 version_check; /* data aging timestamp */
-
   GList * splits; /* list of splits */
 
   /* marker is used to track the progress of transaction traversals. 

Modified: gnucash/trunk/src/engine/gnc-pricedb-p.h
===================================================================
--- gnucash/trunk/src/engine/gnc-pricedb-p.h	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/engine/gnc-pricedb-p.h	2007-05-03 02:56:56 UTC (rev 16041)
@@ -42,8 +42,6 @@
   char *source;
   char *type;
   gnc_numeric value;
-  gint32   version;              /* version number, for syncing with backend */
-  guint32  version_check;        /* data aging timestamp */
 
   /* 'private' object management fields */
   guint32  refcount;             /* garbage collection reference count */

Modified: gnucash/trunk/src/engine/gnc-pricedb.c
===================================================================
--- gnucash/trunk/src/engine/gnc-pricedb.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/engine/gnc-pricedb.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -68,8 +68,6 @@
   p = g_object_new(GNC_TYPE_PRICE, NULL);
 
   p->refcount = 1;
-  p->version = 0;
-  p->version_check = 0;
   p->value = gnc_numeric_zero();
   p->type = NULL;
   p->source = NULL;
@@ -136,7 +134,7 @@
   new_p = gnc_price_create(book);
   if(!new_p) { LEAVE (" "); return NULL; }
 
-  new_p->version = p->version;
+  qof_instance_copy_version(new_p, p);
 
   gnc_price_begin_edit(new_p);
   /* never ever clone guid's */
@@ -307,15 +305,6 @@
   }
 }
 
-void
-gnc_price_set_version(GNCPrice *p, gint32 vers)
-{
-  /* begin/end edit is inappropriate here, this is a backend thing only. */
-  if(!p) return;
-  p->version = vers;
-}
-
-
 /* ==================================================================== */
 /* getters */
 
@@ -379,13 +368,6 @@
   return p->currency;
 }
 
-gint32
-gnc_price_get_version(const GNCPrice *p)
-{
-  if(!p) return 0;
-  return (p->version);
-}
-
 gboolean
 gnc_price_equal (const GNCPrice *p1, const GNCPrice *p2)
 {

Modified: gnucash/trunk/src/engine/gnc-pricedb.h
===================================================================
--- gnucash/trunk/src/engine/gnc-pricedb.h	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/engine/gnc-pricedb.h	2007-05-03 02:56:56 UTC (rev 16041)
@@ -210,7 +210,6 @@
 void gnc_price_set_source(GNCPrice *p, const char *source);
 void gnc_price_set_typestr(GNCPrice *p, const char* type);
 void gnc_price_set_value(GNCPrice *p, gnc_numeric value);
-void gnc_price_set_version(GNCPrice *p, gint32 versn);
 /**  @} */
 
 /* ------------------ */
@@ -226,7 +225,6 @@
 const char *    gnc_price_get_source(const GNCPrice *p);
 const char *    gnc_price_get_typestr(const GNCPrice *p);
 gnc_numeric     gnc_price_get_value(const GNCPrice *p);
-gint32          gnc_price_get_version(const GNCPrice *p);
 gboolean        gnc_price_equal(const GNCPrice *p1, const GNCPrice *p2);
 
 #define gnc_price_get_guid(X)    qof_instance_get_guid(QOF_INSTANCE(X))

Modified: gnucash/trunk/src/engine/test/test-book-merge.c
===================================================================
--- gnucash/trunk/src/engine/test/test-book-merge.c	2007-05-03 02:56:15 UTC (rev 16040)
+++ gnucash/trunk/src/engine/test/test-book-merge.c	2007-05-03 02:56:56 UTC (rev 16041)
@@ -24,6 +24,7 @@
 
 #include "config.h" 
 #include <glib.h>
+#include <unistd.h>
 
 #include "qof.h"
 #include "test-stuff.h"
@@ -504,6 +505,7 @@
 int
 main (int argc, char **argv)
 {
+  sleep(10);
 	qof_init();
 	myobjRegister();
 	test_merge();



More information about the gnucash-changes mailing list