[glibmm/glibmm-2-62] Add Gio::DBus::ObjectProxy and Gio::DBus::ObjectSkeleton



commit ca7f47f881ef938e590f5d3d91891696b6826060
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Mon Sep 16 12:03:27 2019 +0200

    Add Gio::DBus::ObjectProxy and Gio::DBus::ObjectSkeleton
    
    In preparation for adding Gio::DBus::ObjectManager, ObjectManagerClient
    and ObjectManagerServer. See issue #43.

 gio/giomm.h                               |   2 +
 gio/src/dbusobjectproxy.ccg               |  17 +++
 gio/src/dbusobjectproxy.hg                |  71 ++++++++++
 gio/src/dbusobjectskeleton.ccg            |  17 +++
 gio/src/dbusobjectskeleton.hg             |  83 ++++++++++++
 gio/src/filelist.am                       |   2 +
 gio/src/gio_signals.defs                  | 217 ++++++++++++++++++++++++++++++
 gio/src/gio_signals.defs.patch            |  45 +++++--
 tools/extra_defs_gen/generate_defs_gio.cc |  12 +-
 tools/m4/convert_gio.m4                   |   4 +-
 10 files changed, 456 insertions(+), 14 deletions(-)
---
diff --git a/gio/giomm.h b/gio/giomm.h
index 56b6ee2c..00248109 100644
--- a/gio/giomm.h
+++ b/gio/giomm.h
@@ -55,6 +55,8 @@
 #include <giomm/dbusmessage.h>
 #include <giomm/dbusmethodinvocation.h>
 #include <giomm/dbusobject.h>
+#include <giomm/dbusobjectproxy.h>
+#include <giomm/dbusobjectskeleton.h>
 #include <giomm/dbusownname.h>
 #include <giomm/dbusproxy.h>
 #include <giomm/dbusserver.h>
diff --git a/gio/src/dbusobjectproxy.ccg b/gio/src/dbusobjectproxy.ccg
new file mode 100644
index 00000000..eb1c2b1c
--- /dev/null
+++ b/gio/src/dbusobjectproxy.ccg
@@ -0,0 +1,17 @@
+/* Copyright (C) 2019 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gio/gio.h>
diff --git a/gio/src/dbusobjectproxy.hg b/gio/src/dbusobjectproxy.hg
new file mode 100644
index 00000000..755b4fc9
--- /dev/null
+++ b/gio/src/dbusobjectproxy.hg
@@ -0,0 +1,71 @@
+/* Copyright (C) 2019 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glibmm/object.h>
+#include <giomm/dbusobject.h>
+#include <giomm/dbusconnection.h>
+
+_DEFS(giomm,gio)
+_PINCLUDE(glibmm/private/object_p.h)
+
+namespace Gio
+{
+
+namespace DBus
+{
+//The GMMPROC_EXTRA_NAMESPACE() macro is a hint to generate_wrap_init.pl to put it in the DBus sub-namespace
+_GMMPROC_EXTRA_NAMESPACE(DBus)
+
+/** Client-side D-Bus object.
+ *
+ * A %Gio::DBus::ObjectProxy is an object used to represent a remote object
+ * with one or more D-Bus interfaces. Normally, you don't instantiate
+ * a %Gio::DBus::ObjectProxy yourself - typically Gio::DBus::ObjectManagerClient
+ * is used to obtain it.
+ *
+ * @newin{2,62}
+ * @ingroup DBus
+ */
+class ObjectProxy : public Glib::Object, public Object
+{
+  _CLASS_GOBJECT(ObjectProxy, GDBusObjectProxy, G_DBUS_OBJECT_PROXY, Glib::Object, GObject)
+  _IMPLEMENTS_INTERFACE(DBus::Object)
+
+protected:
+  _WRAP_CTOR(ObjectProxy(const Glib::RefPtr<Connection>& connection,
+    const Glib::ustring& object_path), g_dbus_object_proxy_new)
+
+public:
+  /** Creates a new %Gio::DBus::ObjectProxy for the given connection and
+   * object path.
+   *
+   * @param connection A %Gio::DBus::Connection.
+   * @param object_path The object path.
+   * @return A new %Gio::DBus::ObjectProxy.
+   */
+  _WRAP_CREATE(const Glib::RefPtr<Connection>& connection, const Glib::ustring& object_path)
+
+  _WRAP_METHOD(Glib::RefPtr<Connection> get_connection(), g_dbus_object_proxy_get_connection, refreturn)
+  _WRAP_METHOD(Glib::RefPtr<const Connection> get_connection() const,
+    g_dbus_object_proxy_get_connection, refreturn, constversion)
+
+ _WRAP_PROPERTY("g-connection", Glib::RefPtr<Connection>)
+ _WRAP_PROPERTY("g-object-path", Glib::ustring)
+};
+
+} //namespace
+
+} // namespace Gio
diff --git a/gio/src/dbusobjectskeleton.ccg b/gio/src/dbusobjectskeleton.ccg
new file mode 100644
index 00000000..eb1c2b1c
--- /dev/null
+++ b/gio/src/dbusobjectskeleton.ccg
@@ -0,0 +1,17 @@
+/* Copyright (C) 2019 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gio/gio.h>
diff --git a/gio/src/dbusobjectskeleton.hg b/gio/src/dbusobjectskeleton.hg
new file mode 100644
index 00000000..41197da9
--- /dev/null
+++ b/gio/src/dbusobjectskeleton.hg
@@ -0,0 +1,83 @@
+/* Copyright (C) 2019 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glibmm/object.h>
+#include <giomm/dbusobject.h>
+#include <giomm/dbusinterfaceskeleton.h>
+#include <giomm/dbusmethodinvocation.h>
+
+_DEFS(giomm,gio)
+_PINCLUDE(glibmm/private/object_p.h)
+
+namespace Gio
+{
+
+namespace DBus
+{
+//The GMMPROC_EXTRA_NAMESPACE() macro is a hint to generate_wrap_init.pl to put it in the DBus sub-namespace
+_GMMPROC_EXTRA_NAMESPACE(DBus)
+
+/** Service-side D-Bus object.
+ *
+ * A %Gio::DBus::ObjectSkeleton instance is essentially a group of D-Bus
+ * interfaces. The set of exported interfaces on the object may be
+ * dynamic and change at runtime.
+ *
+ * This type is intended to be used with Gio::DBus::ObjectManager.
+ *
+ * @newin{2,62}
+ * @ingroup DBus
+ */
+class ObjectSkeleton : public Glib::Object, public Object
+{
+  _CLASS_GOBJECT(ObjectSkeleton, GDBusObjectSkeleton, G_DBUS_OBJECT_SKELETON, Glib::Object, GObject)
+  _IMPLEMENTS_INTERFACE(DBus::Object)
+
+protected:
+  _WRAP_CTOR(ObjectSkeleton(const Glib::ustring& object_path), g_dbus_object_skeleton_new)
+
+public:
+  /** Creates a new %Gio::DBus::ObjectSkeleton.
+   *
+   * @param object_path An object path.
+   * @return A new %Gio::DBus::ObjectSkeleton.
+   */
+  _WRAP_CREATE(const Glib::ustring& object_path)
+
+  // The parameter name 'interface' can cause compilation errors with MinGW.
+  // See https://bugzilla.gnome.org/show_bug.cgi?id=735137
+  // The parameter names in glib are 'interface_' and 'interface'.
+  _WRAP_METHOD(void flush(), g_dbus_object_skeleton_flush)
+  _WRAP_METHOD(void add_interface(const Glib::RefPtr<Gio::DBus::InterfaceSkeleton>& iface),
+    g_dbus_object_skeleton_add_interface)
+  _WRAP_METHOD(void remove_interface(const Glib::RefPtr<Gio::DBus::InterfaceSkeleton>& iface),
+    g_dbus_object_skeleton_remove_interface)
+  _WRAP_METHOD(void remove_interface(const Glib::ustring& interface_name),
+    g_dbus_object_skeleton_remove_interface_by_name)
+  _WRAP_METHOD(void set_object_path(const Glib::ustring& object_path),
+    g_dbus_object_skeleton_set_object_path)
+
+ _WRAP_PROPERTY("g-object-path", Glib::ustring)
+
+#m4 _CONVERSION(`GDBusInterfaceSkeleton*',`const 
Glib::RefPtr<Gio::DBus::InterfaceSkeleton>&',`Glib::wrap($3, true)')
+#m4 _CONVERSION(`GDBusMethodInvocation*',`const Glib::RefPtr<Gio::DBus::MethodInvocation>&',`Glib::wrap($3, 
true)')
+ _WRAP_SIGNAL(bool authorize_method(const Glib::RefPtr<Gio::DBus::InterfaceSkeleton>& iface,
+   const Glib::RefPtr<Gio::DBus::MethodInvocation>& invocation), "authorize-method")
+};
+
+} //namespace
+
+} // namespace Gio
diff --git a/gio/src/filelist.am b/gio/src/filelist.am
index 5fb8540c..33404418 100644
--- a/gio/src/filelist.am
+++ b/gio/src/filelist.am
@@ -44,6 +44,8 @@ giomm_files_any_hg =                  \
        dbusmessage.hg                  \
        dbusmethodinvocation.hg         \
        dbusobject.hg                   \
+       dbusobjectproxy.hg \
+       dbusobjectskeleton.hg \
        dbusownname.hg                  \
        dbusproxy.hg                    \
        dbusserver.hg                   \
diff --git a/gio/src/gio_signals.defs b/gio/src/gio_signals.defs
index ac668062..f57f1872 100644
--- a/gio/src/gio_signals.defs
+++ b/gio/src/gio_signals.defs
@@ -2761,6 +2761,223 @@
   )
 )
 
+;; From GDBusObjectManager
+
+(define-signal interface-added
+  (of-object "GDBusObjectManager")
+  (return-type "void")
+  (flags "Run Last")
+  (parameters
+    '("GDBusObject*" "p0")
+    '("GDBusInterface*" "p1")
+  )
+)
+
+(define-signal interface-removed
+  (of-object "GDBusObjectManager")
+  (return-type "void")
+  (flags "Run Last")
+  (parameters
+    '("GDBusObject*" "p0")
+    '("GDBusInterface*" "p1")
+  )
+)
+
+(define-signal object-added
+  (of-object "GDBusObjectManager")
+  (return-type "void")
+  (flags "Run Last")
+  (parameters
+    '("GDBusObject*" "p0")
+  )
+)
+
+(define-signal object-removed
+  (of-object "GDBusObjectManager")
+  (return-type "void")
+  (flags "Run Last")
+  (parameters
+    '("GDBusObject*" "p0")
+  )
+)
+
+;; From GDBusObjectManagerClient
+
+(define-signal interface-proxy-signal
+  (of-object "GDBusObjectManagerClient")
+  (return-type "void")
+  (flags "Run Last")
+  (parameters
+    '("GDBusObjectProxy*" "p0")
+    '("GDBusProxy*" "p1")
+    '("const-gchar*" "p2")
+    '("const-gchar*" "p3")
+    '("GVariant*" "p4")
+  )
+)
+
+(define-signal interface-proxy-properties-changed
+  (of-object "GDBusObjectManagerClient")
+  (return-type "void")
+  (flags "Run Last")
+  (parameters
+    '("GDBusObjectProxy*" "p0")
+    '("GDBusProxy*" "p1")
+    '("GVariant*" "p2")
+    '("const-gchar*const*" "p3")
+  )
+)
+
+(define-property bus-type
+  (of-object "GDBusObjectManagerClient")
+  (prop-type "GParamEnum")
+  (docs "The bus to connect to, if any")
+  (readable #f)
+  (writable #t)
+  (construct-only #t)
+  (default-value "G_BUS_TYPE_NONE")
+)
+
+(define-property connection
+  (of-object "GDBusObjectManagerClient")
+  (prop-type "GParamObject")
+  (docs "The connection to use")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property flags
+  (of-object "GDBusObjectManagerClient")
+  (prop-type "GParamFlags")
+  (docs "Flags for the proxy manager")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+  (default-value "G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE")
+)
+
+(define-property object-path
+  (of-object "GDBusObjectManagerClient")
+  (prop-type "GParamString")
+  (docs "The object path of the control object")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+  (default-value "")
+)
+
+(define-property name
+  (of-object "GDBusObjectManagerClient")
+  (prop-type "GParamString")
+  (docs "Name that the manager is for")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+  (default-value "")
+)
+
+(define-property name-owner
+  (of-object "GDBusObjectManagerClient")
+  (prop-type "GParamString")
+  (docs "The owner of the name we are watching")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+  (default-value "")
+)
+
+(define-property get-proxy-type-func
+  (of-object "GDBusObjectManagerClient")
+  (prop-type "GParamPointer")
+  (docs "The GDBusProxyTypeFunc pointer to use")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property get-proxy-type-user-data
+  (of-object "GDBusObjectManagerClient")
+  (prop-type "GParamPointer")
+  (docs "The GDBusProxyTypeFunc user_data")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+(define-property get-proxy-type-destroy-notify
+  (of-object "GDBusObjectManagerClient")
+  (prop-type "GParamPointer")
+  (docs "The GDBusProxyTypeFunc user data free function")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+;; From GDBusObjectManagerServer
+
+(define-property connection
+  (of-object "GDBusObjectManagerServer")
+  (prop-type "GParamObject")
+  (docs "The connection to export objects on")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property object-path
+  (of-object "GDBusObjectManagerServer")
+  (prop-type "GParamString")
+  (docs "The object path to register the manager object at")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+  (default-value "")
+)
+
+;; From GDBusObjectProxy
+
+(define-property g-object-path
+  (of-object "GDBusObjectProxy")
+  (prop-type "GParamString")
+  (docs "The object path of the proxy")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+  (default-value "")
+)
+
+(define-property g-connection
+  (of-object "GDBusObjectProxy")
+  (prop-type "GParamObject")
+  (docs "The connection of the proxy")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+)
+
+;; From GDBusObjectSkeleton
+
+(define-signal authorize-method
+  (of-object "GDBusObjectSkeleton")
+  (return-type "gboolean")
+  (flags "Run Last")
+  (parameters
+    '("GDBusInterfaceSkeleton*" "p0")
+    '("GDBusMethodInvocation*" "p1")
+  )
+)
+
+(define-property g-object-path
+  (of-object "GDBusObjectSkeleton")
+  (prop-type "GParamString")
+  (docs "The object path where the object is exported")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+  (default-value "")
+)
+
 ;; GDBusNodeInfo is neither a GObject nor a GInterface. Not checked for signals and properties.
 
 ;; From GDBusMessage
diff --git a/gio/src/gio_signals.defs.patch b/gio/src/gio_signals.defs.patch
index bf5d51ac..9aa6d380 100644
--- a/gio/src/gio_signals.defs.patch
+++ b/gio/src/gio_signals.defs.patch
@@ -1,5 +1,5 @@
---- ./../../gio/src/gio_signals.defs.orig      2017-09-12 17:06:06.023464567 +0200
-+++ ./../../gio/src/gio_signals.defs   2017-09-13 08:41:32.428298292 +0200
+--- ./../../gio/src/gio_signals.defs.orig      2019-09-16 10:58:32.886304328 +0200
++++ ./../../gio/src/gio_signals.defs   2019-09-16 11:38:16.372140422 +0200
 @@ -87,11 +87,11 @@
    (return-type "void")
    (flags "Run Last, Must Collect")
@@ -13,7 +13,7 @@
  
  ;; From GApplication
  
-@@ -591,10 +591,11 @@
+@@ -597,10 +597,11 @@
    (prop-type "GParamBoolean")
    (docs "Whether or not this is an abstract address")
    (readable #t)
@@ -25,7 +25,7 @@
  
  (define-property address-type
    (of-object "GUnixSocketAddress")
-@@ -738,11 +739,11 @@
+@@ -744,11 +745,11 @@
    (of-object "GMountOperation")
    (return-type "void")
    (flags "Run Last")
@@ -38,7 +38,7 @@
  
  (define-signal reply
    (of-object "GMountOperation")
-@@ -1106,11 +1107,11 @@
+@@ -1142,11 +1143,11 @@
  (define-signal writable-change-event
    (of-object "GSettings")
    (return-type "gboolean")
@@ -51,7 +51,7 @@
  
  (define-property settings-schema
    (of-object "GSettings")
-@@ -1190,20 +1191,20 @@
+@@ -1226,20 +1227,20 @@
  (define-signal activate
    (of-object "GSimpleAction")
    (return-type "void")
@@ -74,7 +74,7 @@
  
  (define-property name
    (of-object "GSimpleAction")
-@@ -1850,11 +1851,11 @@
+@@ -1886,11 +1887,11 @@
  (define-signal writable-change-event
    (of-object "GSettings")
    (return-type "gboolean")
@@ -87,7 +87,7 @@
  
  (define-property settings-schema
    (of-object "GSettings")
-@@ -2345,10 +2346,11 @@
+@@ -2383,10 +2384,11 @@
    (prop-type "GParamBoolean")
    (docs "Whether to verify peer certificates against the system certificate database")
    (readable #t)
@@ -99,7 +99,34 @@
  
  (define-property database
    (of-object "GTlsConnection")
-@@ -2723,23 +2725,23 @@
+@@ -2808,23 +2810,23 @@
+   (parameters
+     '("GDBusObjectProxy*" "p0")
+     '("GDBusProxy*" "p1")
+     '("const-gchar*" "p2")
+     '("const-gchar*" "p3")
+-    '("GVariant" "p4")
++    '("GVariant*" "p4")
+   )
+ )
+ 
+ (define-signal interface-proxy-properties-changed
+   (of-object "GDBusObjectManagerClient")
+   (return-type "void")
+   (flags "Run Last")
+   (parameters
+     '("GDBusObjectProxy*" "p0")
+     '("GDBusProxy*" "p1")
+-    '("GVariant" "p2")
+-    '("GStrv*" "p3")
++    '("GVariant*" "p2")
++    '("const-gchar*const*" "p3")
+   )
+ )
+ 
+ (define-property bus-type
+   (of-object "GDBusObjectManagerClient")
+@@ -2997,23 +2999,23 @@
  (define-signal g-properties-changed
    (of-object "GDBusProxy")
    (return-type "void")
diff --git a/tools/extra_defs_gen/generate_defs_gio.cc b/tools/extra_defs_gen/generate_defs_gio.cc
index 229c155f..36ad4fca 100644
--- a/tools/extra_defs_gen/generate_defs_gio.cc
+++ b/tools/extra_defs_gen/generate_defs_gio.cc
@@ -39,6 +39,7 @@ main(int, char**)
   // g_type_init();
 
   // Until the glib bug https://bugzilla.gnome.org/show_bug.cgi?id=465631
+  // (https://gitlab.gnome.org/GNOME/glib/issues/100)
   // is fixed, get_defs() must be called for a GObject before it's
   // called for a GInterface.
   (void)get_defs(G_TYPE_APPLICATION);
@@ -77,9 +78,6 @@ main(int, char**)
             << get_defs(G_TYPE_SIMPLE_ACTION) << get_defs(G_TYPE_SIMPLE_IO_STREAM)
             << get_defs(G_TYPE_SUBPROCESS) << get_defs(G_TYPE_SUBPROCESS_LAUNCHER)
             << get_defs(G_TYPE_THEMED_ICON)
-
-            // TODO: This causes a g_warning:
-            // GLib-GObject-CRITICAL **: g_param_spec_pool_list: assertion `pool != NULL' failed"
             << get_defs(G_TYPE_VOLUME)
 
             << get_defs(G_TYPE_VOLUME_MONITOR) << get_defs(G_TYPE_ZLIB_COMPRESSOR)
@@ -113,7 +111,13 @@ main(int, char**)
             << get_defs(G_TYPE_DBUS_ARG_INFO) << get_defs(G_TYPE_DBUS_MENU_MODEL)
             << get_defs(G_TYPE_DBUS_METHOD_INFO) << get_defs(G_TYPE_DBUS_SIGNAL_INFO)
             << get_defs(G_TYPE_DBUS_PROPERTY_INFO) << get_defs(G_TYPE_DBUS_INTERFACE_INFO)
-            << get_defs(G_TYPE_DBUS_INTERFACE_SKELETON) << get_defs(G_TYPE_DBUS_OBJECT)
+            << get_defs(G_TYPE_DBUS_INTERFACE_SKELETON)
+            << get_defs(G_TYPE_DBUS_OBJECT)
+            << get_defs(G_TYPE_DBUS_OBJECT_MANAGER)
+            << get_defs(G_TYPE_DBUS_OBJECT_MANAGER_CLIENT)
+            << get_defs(G_TYPE_DBUS_OBJECT_MANAGER_SERVER)
+            << get_defs(G_TYPE_DBUS_OBJECT_PROXY)
+            << get_defs(G_TYPE_DBUS_OBJECT_SKELETON)
             << get_defs(G_TYPE_DBUS_NODE_INFO) << get_defs(G_TYPE_DBUS_MESSAGE)
             << get_defs(G_TYPE_DBUS_METHOD_INVOCATION) << get_defs(G_TYPE_DBUS_PROXY)
             << get_defs(G_TYPE_DBUS_SERVER)
diff --git a/tools/m4/convert_gio.m4 b/tools/m4/convert_gio.m4
index d40cac60..0e5f8d88 100644
--- a/tools/m4/convert_gio.m4
+++ b/tools/m4/convert_gio.m4
@@ -126,13 +126,15 @@ _CONVERSION(`const Glib::RefPtr<InterfaceInfo>&',`GDBusInterfaceInfo*',`Glib::un
 _CONVERSION(`Glib::RefPtr<InterfaceInfo>',`GDBusInterfaceInfo*',`Glib::unwrap($3)')
 _CONVERSION(`GDBusInterfaceInfo*',`const Glib::RefPtr<InterfaceInfo>',`Glib::wrap($3)')
 
-# DBusInterface
+# DBusInterface, DBusInterfaceSkeleton
 _CONVERSION(`GDBusInterface*',`Glib::RefPtr<Gio::DBus::Interface>',`Glib::wrap($3)')
 _CONVERSION(`Glib::RefPtr<Gio::DBus::Interface>',`GDBusInterface*',`Glib::unwrap($3)')
 _CONVERSION(`const Glib::RefPtr<Gio::DBus::Interface>&',`GDBusInterface*',`Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Gio::DBus::InterfaceSkeleton>&',`GDBusInterfaceSkeleton*',`Glib::unwrap($3)')
 
 # DBusMethodInvocation
 _CONVERSION(`const Glib::RefPtr<MethodInvocation>&',`GDBusMethodInvocation*',`Glib::unwrap($3)')
+_CONVERSION(`const Glib::RefPtr<Gio::DBus::MethodInvocation>&',`GDBusMethodInvocation*',`Glib::unwrap($3)')
 
 # DBusObject
 _CONVERSION(`GDBusObject*',`Glib::RefPtr<Gio::DBus::Object>',`Glib::wrap($3)')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]