summaryrefslogtreecommitdiff
path: root/src/gobject/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gobject/main.c')
-rw-r--r--src/gobject/main.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/gobject/main.c b/src/gobject/main.c
new file mode 100644
index 0000000..ed1daf9
--- /dev/null
+++ b/src/gobject/main.c
@@ -0,0 +1,74 @@
+#include <config.h>
+
+#define STREQ(a, b) (strcmp ((a), (b)) == 0)
+#define STRNEQ(a, b) (! (STREQ (a, b)))
+
+#include <errno.h>
+#include <fcntl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <unistd.h>
+#include "gettext.h"
+#include "relocatable.h"
+#include "attribute.h"
+#include <disfluid.h>
+#include <disfluid-gobject.h>
+
+#define _(String) dgettext (PACKAGE, (String))
+#define N_(String) (String)
+
+typedef struct disfluid_cache_entry DisfluidCacheEntry;
+
+/* *INDENT-OFF* */
+G_DEFINE_BOXED_TYPE (DisfluidCacheEntry,
+ disfluid_cache_entry,
+ disfluid_cache_entry_dup, disfluid_cache_entry_free)
+/* *INDENT-ON* */
+
+void
+disfluid_cache_entry_set_request_gdate (struct disfluid_cache_entry *entry,
+ GDateTime * request_date)
+{
+ struct timespec ts;
+ ts.tv_sec = g_date_time_to_unix (request_date);
+ ts.tv_nsec = g_date_time_get_microsecond (request_date) * 1000;
+ disfluid_cache_entry_set_request_date (entry, &ts);
+}
+
+void
+disfluid_cache_entry_set_response_gdate (struct disfluid_cache_entry *entry,
+ GDateTime * response_date)
+{
+ struct timespec ts;
+ ts.tv_sec = g_date_time_to_unix (response_date);
+ ts.tv_nsec = g_date_time_get_microsecond (response_date) * 1000;
+ disfluid_cache_entry_set_response_date (entry, &ts);
+}
+
+void
+disfluid_cache_entry_get_request_gdate (const struct disfluid_cache_entry
+ *entry, GDateTime ** date)
+{
+ struct timespec ts;
+ disfluid_cache_entry_get_request_date (entry, &ts);
+ GDateTime *gd = g_date_time_new_from_unix_utc (ts.tv_sec);
+ const double nsecs = ts.tv_nsec;
+ *date = g_date_time_add_seconds (gd, nsecs * 1e-9);
+ g_date_time_unref (gd);
+}
+
+void
+disfluid_cache_entry_get_response_gdate (const struct disfluid_cache_entry
+ *entry, GDateTime ** date)
+{
+ struct timespec ts;
+ disfluid_cache_entry_get_response_date (entry, &ts);
+ GDateTime *gd = g_date_time_new_from_unix_utc (ts.tv_sec);
+ const double nsecs = ts.tv_nsec;
+ *date = g_date_time_add_seconds (gd, nsecs * 1e-9);
+ g_date_time_unref (gd);
+}