You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2012/11/14 21:12:17 UTC

svn commit: r1409363 - in /qpid/proton/trunk/proton-c: include/proton/driver.h src/driver.c src/messenger.c

Author: kgiusti
Date: Wed Nov 14 20:12:16 2012
New Revision: 1409363

URL: http://svn.apache.org/viewvc?rev=1409363&view=rev
Log:
PROTON-111: make platform agnostic timestamp public

Modified:
    qpid/proton/trunk/proton-c/include/proton/driver.h
    qpid/proton/trunk/proton-c/src/driver.c
    qpid/proton/trunk/proton-c/src/messenger.c

Modified: qpid/proton/trunk/proton-c/include/proton/driver.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/driver.h?rev=1409363&r1=1409362&r2=1409363&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/driver.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/driver.h Wed Nov 14 20:12:16 2012
@@ -121,6 +121,16 @@ pn_listener_t *pn_driver_listener(pn_dri
  */
 pn_connector_t *pn_driver_connector(pn_driver_t *driver);
 
+/** Get the current time in pn_timestamp_t format.
+ *
+ * Returns current time in milliseconds since Unix Epoch,
+ * as defined by AMQP 1.0
+ *
+ * @param[in] driver the driver
+ * @return current time
+ */
+pn_timestamp_t pn_driver_now(pn_driver_t *driver);
+
 /** Free the driver allocated via pn_driver, and all associated
  *  listeners and connectors.
  *

Modified: qpid/proton/trunk/proton-c/src/driver.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/driver.c?rev=1409363&r1=1409362&r2=1409363&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/driver.c (original)
+++ qpid/proton/trunk/proton-c/src/driver.c Wed Nov 14 20:12:16 2012
@@ -109,8 +109,6 @@ struct pn_connector_t {
 
 /* Impls */
 
-static pn_timestamp_t pn_driver_now(pn_driver_t *driver);
-
 // listener
 
 static void pn_driver_add_listener(pn_driver_t *d, pn_listener_t *l)
@@ -608,14 +606,6 @@ void pn_connector_process(pn_connector_t
 
 // driver
 
-static pn_timestamp_t pn_driver_now(pn_driver_t *driver)
-{
-  struct timeval now;
-  if (gettimeofday(&now, NULL)) pn_fatal("gettimeofday failed\n");
-
-  return ((pn_timestamp_t)now.tv_sec) * 1000 + (now.tv_usec / 1000);
-}
-
 pn_driver_t *pn_driver()
 {
   pn_driver_t *d = (pn_driver_t *) malloc(sizeof(pn_driver_t));
@@ -833,3 +823,11 @@ pn_connector_t *pn_driver_connector(pn_d
 
   return NULL;
 }
+
+pn_timestamp_t pn_driver_now(pn_driver_t *driver)
+{
+  struct timeval now;
+  if (gettimeofday(&now, NULL)) pn_fatal("gettimeofday failed\n");
+
+  return ((pn_timestamp_t)now.tv_sec) * 1000 + (now.tv_usec / 1000);
+}

Modified: qpid/proton/trunk/proton-c/src/messenger.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/messenger.c?rev=1409363&r1=1409362&r2=1409363&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/messenger.c (original)
+++ qpid/proton/trunk/proton-c/src/messenger.c Wed Nov 14 20:12:16 2012
@@ -465,11 +465,6 @@ void pn_messenger_reclaim(pn_messenger_t
   }
 }
 
-static long int millis(struct timeval tv)
-{
-  return tv.tv_sec * 1000 + tv.tv_usec/1000;
-}
-
 int pn_messenger_tsync(pn_messenger_t *messenger, bool (*predicate)(pn_messenger_t *), int timeout)
 {
   pn_connector_t *ctor = pn_connector_head(messenger->driver);
@@ -478,14 +473,13 @@ int pn_messenger_tsync(pn_messenger_t *m
     ctor = pn_connector_next(ctor);
   }
 
-  struct timeval now;
-  if (gettimeofday(&now, NULL)) pn_fatal("gettimeofday failed\n");
-  long int deadline = millis(now) + timeout;
+  pn_timestamp_t now = pn_driver_now(messenger->driver);
+  long int deadline = now + timeout;
   bool pred;
 
   while (true) {
     pred = predicate(messenger);
-    int remaining = deadline - millis(now);
+    int remaining = deadline - now;
     if (pred || (timeout >= 0 && remaining < 0)) break;
 
     int error = pn_driver_wait(messenger->driver, remaining);
@@ -534,7 +528,7 @@ int pn_messenger_tsync(pn_messenger_t *m
     }
 
     if (timeout >= 0) {
-      if (gettimeofday(&now, NULL)) pn_fatal("gettimeofday failed\n");
+      now = pn_driver_now(messenger->driver);
     }
   }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org