]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
D-Bus: Support registering objects with low-level connections
authorJürg Billeter <j@bitron.ch>
Fri, 26 Jun 2009 13:25:45 +0000 (15:25 +0200)
committerJürg Billeter <j@bitron.ch>
Fri, 26 Jun 2009 13:26:45 +0000 (15:26 +0200)
codegen/valadbusservermodule.vala
vapi/dbus-glib-1.vapi

index bba546ef017f855fb93ec1ae2fa740a6a2fb23a1..225ab2afcc4979e3805efe6429000d854fe6b8fd 100644 (file)
@@ -1401,7 +1401,8 @@ internal class Vala.DBusServerModule : DBusClientModule {
 
        public override void visit_method_call (MethodCall expr) {
                var mtype = expr.call.value_type as MethodType;
-               if (mtype == null || mtype.method_symbol.get_cname () != "dbus_g_connection_register_g_object") {
+               if (mtype == null || (mtype.method_symbol.get_cname () != "dbus_connection_register_g_object" &&
+                                     mtype.method_symbol.get_cname () != "dbus_g_connection_register_g_object")) {
                        base.visit_method_call (expr);
                        return;
                }
@@ -1422,7 +1423,11 @@ internal class Vala.DBusServerModule : DBusClientModule {
                var obj_arg = args_it.get ();
 
                var cregister = new CCodeFunctionCall (new CCodeIdentifier ("_vala_dbus_register_object"));
-               cregister.add_argument (raw_conn);
+               if (mtype.method_symbol.get_cname () == "dbus_g_connection_register_g_object") {
+                       cregister.add_argument (raw_conn);
+               } else {
+                       cregister.add_argument ((CCodeExpression) ma.inner.ccodenode);
+               }
                cregister.add_argument ((CCodeExpression) path_arg.ccodenode);
                cregister.add_argument ((CCodeExpression) obj_arg.ccodenode);
                expr.ccodenode = cregister;
index cf62ae710da36ea6089b029c8ae2a966130fd5fb..cda3179eca0e5da3826c9e09e646ff9ca0a05385 100644 (file)
@@ -1,6 +1,6 @@
 /* dbus-glib-1.vala
  *
- * Copyright (C) 2007-2008  Jürg Billeter
+ * Copyright (C) 2007-2009  Jürg Billeter
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -40,6 +40,8 @@ namespace DBus {
                public void setup_with_main (GLib.MainContext? context = null);
                [CCode (cname = "dbus_connection_get_g_connection")]
                public Connection get_g_connection ();
+               [CCode (cname = "dbus_connection_register_g_object")]
+               public void register_object (string at_path, GLib.Object object);
        }
 
        [CCode (cname = "DBusError", cprefix = "dbus_error_", destroy_function = "dbus_error_free")]
@@ -92,7 +94,6 @@ namespace DBus {
        public struct Bus {
                [CCode (cname = "dbus_g_bus_get")]
                public static Connection get (BusType type) throws Error;
-               
        }
 
        [Compact]