]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
D-Bus: Support name attribute for members in clients and servers
authorJürg Billeter <j@bitron.ch>
Mon, 21 Sep 2009 18:44:34 +0000 (20:44 +0200)
committerJürg Billeter <j@bitron.ch>
Mon, 21 Sep 2009 18:44:34 +0000 (20:44 +0200)
Fixes bug 595587.

codegen/valadbusclientmodule.vala
codegen/valadbusmodule.vala
codegen/valadbusservermodule.vala

index 239a7922aafe9c651d38f69a7fe72e7eb07f3367..0de4e179d6f505b140b21fadf0f7221d41c63668 100644 (file)
@@ -1358,7 +1358,7 @@ internal class Vala.DBusClientModule : DBusModule {
                                continue;
                        }
 
-                       handle_signal (dbus_iface_name, Symbol.lower_case_to_camel_case (sig.name), generate_dbus_signal_handler (sig, iface), block, ref clastif);
+                       handle_signal (dbus_iface_name, get_dbus_name_for_member (sig), generate_dbus_signal_handler (sig, iface), block, ref clastif);
                }
        }
 
@@ -1374,7 +1374,7 @@ internal class Vala.DBusClientModule : DBusModule {
                msgcall.add_argument (destination);
                msgcall.add_argument (path);
                msgcall.add_argument (new CCodeConstant ("\"%s\"".printf (dbus_iface_name)));
-               msgcall.add_argument (new CCodeConstant ("\"%s\"".printf (Symbol.lower_case_to_camel_case (m.name))));
+               msgcall.add_argument (new CCodeConstant ("\"%s\"".printf (get_dbus_name_for_member (m))));
                prefragment.append (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("_message"), msgcall)));
 
                var iter_call = new CCodeFunctionCall (new CCodeIdentifier ("dbus_message_iter_init_append"));
@@ -1948,7 +1948,7 @@ internal class Vala.DBusClientModule : DBusModule {
                // interface name
                write_expression (prefragment, string_type, new CCodeIdentifier ("_iter"), new CCodeConstant ("\"%s\"".printf (dbus_iface_name)));
                // property name
-               write_expression (prefragment, string_type, new CCodeIdentifier ("_iter"), new CCodeConstant ("\"%s\"".printf (Symbol.lower_case_to_camel_case (prop.name))));
+               write_expression (prefragment, string_type, new CCodeIdentifier ("_iter"), new CCodeConstant ("\"%s\"".printf (get_dbus_name_for_member (prop))));
 
                cdecl = new CCodeDeclaration (prop.get_accessor.value_type.get_cname ());
                cdecl.add_declarator (new CCodeVariableDeclarator ("_result"));
@@ -2088,7 +2088,7 @@ internal class Vala.DBusClientModule : DBusModule {
                // interface name
                write_expression (prefragment, string_type, new CCodeIdentifier ("_iter"), new CCodeConstant ("\"%s\"".printf (dbus_iface_name)));
                // property name
-               write_expression (prefragment, string_type, new CCodeIdentifier ("_iter"), new CCodeConstant ("\"%s\"".printf (Symbol.lower_case_to_camel_case (prop.name))));
+               write_expression (prefragment, string_type, new CCodeIdentifier ("_iter"), new CCodeConstant ("\"%s\"".printf (get_dbus_name_for_member (prop))));
 
                // property value (as variant)
                iter_call = new CCodeFunctionCall (new CCodeIdentifier ("dbus_message_iter_open_container"));
index 1e9cb1f9b67608f07fde6f1bd63aa9df645d9b5f..44018f927d7038969a635043ea202870b1120b75 100644 (file)
@@ -58,6 +58,15 @@ internal class Vala.DBusModule : GAsyncModule {
                return dbus.get_string ("name");
        }
 
+       public string get_dbus_name_for_member (Symbol symbol) {
+               var dbus = symbol.get_attribute ("DBus");
+               if (dbus != null) {
+                       return dbus.get_string ("name");
+               }
+
+               return Symbol.lower_case_to_camel_case (symbol.name);
+       }
+
        bool get_basic_type_info (string signature, out BasicTypeInfo basic_type) {
                foreach (BasicTypeInfo info in basic_types) {
                        if (info.signature == signature) {
index 54bce3f1f8cbd82351fcde85b0734ded4cd4bb07..c211ecd9b8d40487a2d70072541f7aad98d2c7b5 100644 (file)
@@ -521,7 +521,7 @@ internal class Vala.DBusServerModule : DBusClientModule {
                var msgcall = new CCodeFunctionCall (new CCodeIdentifier ("dbus_message_new_signal"));
                msgcall.add_argument (new CCodeIdentifier ("_path"));
                msgcall.add_argument (new CCodeConstant ("\"%s\"".printf (dbus_iface_name)));
-               msgcall.add_argument (new CCodeConstant ("\"%s\"".printf (Symbol.lower_case_to_camel_case (sig.name))));
+               msgcall.add_argument (new CCodeConstant ("\"%s\"".printf (get_dbus_name_for_member (sig))));
                prefragment.append (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("_message"), msgcall)));
 
                var iter_call = new CCodeFunctionCall (new CCodeIdentifier ("dbus_message_iter_init_append"));
@@ -675,7 +675,7 @@ internal class Vala.DBusServerModule : DBusClientModule {
                                continue;
                        }
 
-                       handle_method (dbus_iface_name, Symbol.lower_case_to_camel_case (m.name), generate_dbus_wrapper (m, sym), block, ref clastif);
+                       handle_method (dbus_iface_name, get_dbus_name_for_member (m), generate_dbus_wrapper (m, sym), block, ref clastif);
                }
        }
 
@@ -768,7 +768,7 @@ internal class Vala.DBusServerModule : DBusClientModule {
 
                        ccmp = new CCodeFunctionCall (new CCodeIdentifier ("strcmp"));
                        ccmp.add_argument (new CCodeIdentifier ("property_name"));
-                       ccmp.add_argument (new CCodeConstant ("\"%s\"".printf (Symbol.lower_case_to_camel_case (prop.name))));
+                       ccmp.add_argument (new CCodeConstant ("\"%s\"".printf (get_dbus_name_for_member (prop))));
                        var ccheck2 = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, ccmp, new CCodeConstant ("0"));
 
                        var ccheck = new CCodeBinaryExpression (CCodeBinaryOperator.AND, ccheck1, ccheck2);
@@ -973,7 +973,7 @@ internal class Vala.DBusServerModule : DBusClientModule {
                        iter_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("entry_iter")));
                        postfragment.append (new CCodeExpressionStatement (iter_call));
 
-                       postfragment.append (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("property_name"), new CCodeConstant ("\"%s\"".printf (Symbol.lower_case_to_camel_case (prop.name))))));
+                       postfragment.append (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("property_name"), new CCodeConstant ("\"%s\"".printf (get_dbus_name_for_member (prop))))));
 
                        iter_call = new CCodeFunctionCall (new CCodeIdentifier ("dbus_message_iter_append_basic"));
                        iter_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier ("entry_iter")));
@@ -1151,7 +1151,7 @@ internal class Vala.DBusServerModule : DBusClientModule {
 
                        ccmp = new CCodeFunctionCall (new CCodeIdentifier ("strcmp"));
                        ccmp.add_argument (new CCodeIdentifier ("property_name"));
-                       ccmp.add_argument (new CCodeConstant ("\"%s\"".printf (Symbol.lower_case_to_camel_case (prop.name))));
+                       ccmp.add_argument (new CCodeConstant ("\"%s\"".printf (get_dbus_name_for_member (prop))));
                        var ccheck2 = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, ccmp, new CCodeConstant ("0"));
 
                        var ccheck = new CCodeBinaryExpression (CCodeBinaryOperator.AND, ccheck1, ccheck2);
@@ -1260,7 +1260,7 @@ internal class Vala.DBusServerModule : DBusClientModule {
                                continue;
                        }
 
-                       result += "  <method name=\"%s\">\n".printf (Symbol.lower_case_to_camel_case (m.name));
+                       result += "  <method name=\"%s\">\n".printf (get_dbus_name_for_member (m));
 
                        foreach (var param in m.get_parameters ()) {
                                if (param.parameter_type.data_type != null
@@ -1290,7 +1290,7 @@ internal class Vala.DBusServerModule : DBusClientModule {
                        }
 
                        string access = (prop.get_accessor != null ? "read" : "") + (prop.set_accessor != null ? "write" : "");
-                       result += "  <property name=\"%s\" type=\"%s\" access=\"%s\"/>\n".printf (Symbol.lower_case_to_camel_case (prop.name), get_type_signature (prop.property_type), access);
+                       result += "  <property name=\"%s\" type=\"%s\" access=\"%s\"/>\n".printf (get_dbus_name_for_member (prop), get_type_signature (prop.property_type), access);
                }
 
                foreach (var sig in sym.get_signals ()) {
@@ -1301,7 +1301,7 @@ internal class Vala.DBusServerModule : DBusClientModule {
                                continue;
                        }
 
-                       result += "  <signal name=\"%s\">\n".printf (Symbol.lower_case_to_camel_case (sig.name));
+                       result += "  <signal name=\"%s\">\n".printf (get_dbus_name_for_member (sig));
 
                        foreach (var param in sig.get_parameters ()) {
                                result += "    <arg name=\"%s\" type=\"%s\"/>\n".printf (param.name, get_type_signature (param.parameter_type));