diff options
Diffstat (limited to 'src/lib/util/gnunet_time_dbus_lib_push.c')
-rw-r--r-- | src/lib/util/gnunet_time_dbus_lib_push.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/lib/util/gnunet_time_dbus_lib_push.c b/src/lib/util/gnunet_time_dbus_lib_push.c new file mode 100644 index 0000000..a618278 --- /dev/null +++ b/src/lib/util/gnunet_time_dbus_lib_push.c | |||
@@ -0,0 +1,61 @@ | |||
1 | #include "config.h" | ||
2 | |||
3 | #include <gnunet/platform.h> | ||
4 | #include <gnunet/gnunet_common.h> | ||
5 | #include <gnunet/gnunet_strings_lib.h> | ||
6 | |||
7 | #include "gnunet_time_dbus_lib.h" | ||
8 | |||
9 | #define LOG(kind, ...) GNUNET_log_from (kind, "time-dbus-push", __VA_ARGS__) | ||
10 | |||
11 | void | ||
12 | GNUNET_TIME_DBUS_push_absolute ( | ||
13 | DBusMessage *message, | ||
14 | DBusMessageIter *iter, | ||
15 | const struct GNUNET_TIME_Absolute *value) | ||
16 | { | ||
17 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Pushing absolute time\n"); | ||
18 | DBusMessageIter iter_sub; | ||
19 | if (GNUNET_DBUS_message_get_pretty (message)) | ||
20 | { | ||
21 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Encoding time as string\n"); | ||
22 | GNUNET_DBUS_push_open_variant (message, iter, &iter_sub, GNUNET_DBUS_SIGNATURE_STRING); | ||
23 | const char *stringified = GNUNET_STRINGS_absolute_time_to_string (*value); | ||
24 | GNUNET_DBUS_push_string (message, &iter_sub, &stringified); | ||
25 | GNUNET_DBUS_push_close_variant (message, iter, &iter_sub); | ||
26 | } | ||
27 | else | ||
28 | { | ||
29 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Encoding time as uint64\n"); | ||
30 | GNUNET_DBUS_push_open_variant (message, iter, &iter_sub, GNUNET_DBUS_SIGNATURE_UINT64); | ||
31 | GNUNET_DBUS_push_uint64 (message, &iter_sub, &value->abs_value_us); | ||
32 | GNUNET_DBUS_push_close_variant (message, iter, &iter_sub); | ||
33 | } | ||
34 | } | ||
35 | |||
36 | void | ||
37 | GNUNET_TIME_DBUS_push_relative ( | ||
38 | DBusMessage *message, | ||
39 | DBusMessageIter *iter, | ||
40 | const struct GNUNET_TIME_Relative *value) | ||
41 | { | ||
42 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Pushing relative time\n"); | ||
43 | DBusMessageIter iter_sub; | ||
44 | if (GNUNET_DBUS_message_get_pretty (message)) | ||
45 | { | ||
46 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Encoding time as string\n"); | ||
47 | GNUNET_DBUS_push_open_variant (message, iter, &iter_sub, GNUNET_DBUS_SIGNATURE_STRING); | ||
48 | const char *stringified = GNUNET_STRINGS_relative_time_to_string (*value, 0); | ||
49 | GNUNET_DBUS_push_string (message, &iter_sub, &stringified); | ||
50 | GNUNET_DBUS_push_close_variant (message, iter, &iter_sub); | ||
51 | } | ||
52 | else | ||
53 | { | ||
54 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Encoding time as uint64\n"); | ||
55 | GNUNET_DBUS_push_open_variant (message, iter, &iter_sub, GNUNET_DBUS_SIGNATURE_UINT64); | ||
56 | GNUNET_DBUS_push_uint64 (message, &iter_sub, &value->rel_value_us); | ||
57 | GNUNET_DBUS_push_close_variant (message, iter, &iter_sub); | ||
58 | } | ||
59 | } | ||
60 | |||
61 | |||