Add g_get_real_time() for wall-clock int64 micros
authorRyan Lortie <desrt@desrt.ca>
Mon, 1 Nov 2010 20:40:36 +0000 (16:40 -0400)
committerRyan Lortie <desrt@desrt.ca>
Wed, 3 Nov 2010 02:39:09 +0000 (22:39 -0400)
Similar in spirit to g_get_monotonic_time().

docs/reference/glib/glib-sections.txt
glib/glib.symbols
glib/gmain.c
glib/gmain.h

index 113d595..d2f7422 100644 (file)
@@ -1322,6 +1322,7 @@ g_time_val_to_iso8601
 
 <SUBSECTION>
 g_get_monotonic_time
+g_get_real_time
 
 <SUBSECTION>
 GDate
index b421788..232e12a 100644 (file)
@@ -685,6 +685,7 @@ g_child_watch_add_full
 g_child_watch_source_new
 g_get_current_time
 g_get_monotonic_time
+g_get_real_time
 g_main_context_acquire
 g_main_context_add_poll
 g_main_context_check
index 9468e68..1b84dd8 100644 (file)
@@ -1777,8 +1777,10 @@ g_source_remove_by_funcs_user_data (GSourceFuncs *funcs,
 /**
  * g_get_current_time:
  * @result: #GTimeVal structure in which to store current time.
- * 
+ *
  * Equivalent to the UNIX gettimeofday() function, but portable.
+ *
+ * You may find g_get_real_time() to be more convenient.
  **/
 void
 g_get_current_time (GTimeVal *result)
@@ -1814,6 +1816,33 @@ g_get_current_time (GTimeVal *result)
 }
 
 /**
+ * g_get_real_time:
+ *
+ * Queries the system wall-clock time.
+ *
+ * This call is functionally equivalent to g_get_current_time() except
+ * that the return value is often more convenient than dealing with a
+ * #GTimeVal.
+ *
+ * You should only use this call if you are actually interested in the real
+ * wall-clock time.  g_get_monotonic_time() is probably more useful for
+ * measuring intervals.
+ *
+ * Returns: the number of microseconds since January 1, 1970 UTC.
+ *
+ * Since: 2.28
+ **/
+gint64
+g_get_real_time (void)
+{
+  GTimeVal tv;
+
+  g_get_current_time (&tv);
+
+  return (((gint64) tv.tv_sec) * 1000000) + tv.tv_usec;
+}
+
+/**
  * g_get_monotonic_time:
  *
  * Queries the system monotonic time, if available.
index c87a762..3a7bba0 100644 (file)
@@ -384,6 +384,7 @@ GSource *g_timeout_source_new_seconds (guint interval);
  */
 void   g_get_current_time                 (GTimeVal       *result);
 gint64 g_get_monotonic_time               (void);
+gint64 g_get_real_time                    (void);
 
 /* ============== Compat main loop stuff ================== */