aboutsummaryrefslogtreecommitdiff
path: root/src/lib/util/gnunet_time_dbus_lib_push.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/util/gnunet_time_dbus_lib_push.c')
-rw-r--r--src/lib/util/gnunet_time_dbus_lib_push.c61
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
11void
12GNUNET_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
36void
37GNUNET_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