DBus helpers: add a version accepting GVariant 82/205582/3
authorMichal Bloch <m.bloch@samsung.com>
Tue, 7 May 2019 13:49:04 +0000 (15:49 +0200)
committerMichal Bloch <m.bloch@samsung.com>
Tue, 7 May 2019 16:09:17 +0000 (18:09 +0200)
This allows passing parameter packs more complex than `append_variant`
can produce. This commit just introduces this interface without making
any functions actually use it yet.

Change-Id: If0b3e3ae16913fde11df637ffd59842edaa7cf53
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
src/common/dbus-handler.c
src/common/dbus-handler.h

index 9ac48c2..1d2545f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * resourced
  *
- * Copyright (c) 2000 - 2017 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2000 - 2019 Samsung Electronics Co., Ltd. All rights reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -267,8 +267,6 @@ int d_bus_call_method_sync(const char *dest, const char *path,
                const char *interface, const char *method,
                const char *sig, char *param[])
 {
-       int ret;
-       GVariant *reply = NULL;
        GVariant *gv = NULL;
 
        if (sig || param) {
@@ -279,6 +277,16 @@ int d_bus_call_method_sync(const char *dest, const char *path,
                }
        }
 
+       return d_bus_call_method_sync_gvariant(dest, path, interface, method, gv);
+}
+
+int d_bus_call_method_sync_gvariant(const char *dest, const char *path,
+               const char *interface, const char *method,
+               GVariant *gv)
+{
+       int ret;
+       GVariant *reply = NULL;
+
        reply = g_dbus_connection_call_sync(d_bus_get_connection(), dest, path,
                        interface, method, gv, NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL);
        if (!reply) {
@@ -301,7 +309,12 @@ int d_bus_call_method_async(const char *dest, const char *path,
                _E("Failed to build g_variant");
                return -EPERM;
        }
+       return d_bus_call_method_async_gvariant(dest, path, interface, method, gv);
+}
 
+int d_bus_call_method_async_gvariant(const char *dest, const char *path,
+               const char *interface, const char *method, GVariant *gv)
+{
        g_dbus_connection_call(d_bus_get_connection(), dest, path, interface, method,
                        gv, NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL, NULL);
 
index f560440..214fcb1 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * resourced
  *
- * Copyright (c) 2013 - 2017 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2013 - 2019 Samsung Electronics Co., Ltd. All rights reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -243,10 +243,18 @@ struct dbus_byte {
 void serialize_params(char *params[], size_t n, ...);
 
 
+int d_bus_call_method_sync_gvariant(const char *dest, const char *path,
+               const char *interface, const char *method,
+               GVariant *gv);
+
 int d_bus_call_method_sync(const char *dest, const char *path,
                const char *interface, const char *method,
                const char *sig, char *param[]);
 
+int d_bus_call_method_async_gvariant(const char *dest, const char *path,
+               const char *interface, const char *method,
+               GVariant *gv);
+
 int d_bus_call_method_async(const char *dest, const char *path,
                const char *interface, const char *method,
                const char *sig, char *param[]);