diff options
Diffstat (limited to 'src/gobject/main.c')
-rw-r--r-- | src/gobject/main.c | 74 |
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); +} |