From: Jürg Billeter Date: Mon, 21 Sep 2009 18:44:34 +0000 (+0200) Subject: D-Bus: Support name attribute for members in clients and servers X-Git-Tag: 0.7.7~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=217a1a82d63ee8e4aedcdf3409de4f12cc38c962;p=thirdparty%2Fvala.git D-Bus: Support name attribute for members in clients and servers Fixes bug 595587. --- diff --git a/codegen/valadbusclientmodule.vala b/codegen/valadbusclientmodule.vala index 239a7922a..0de4e179d 100644 --- a/codegen/valadbusclientmodule.vala +++ b/codegen/valadbusclientmodule.vala @@ -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")); diff --git a/codegen/valadbusmodule.vala b/codegen/valadbusmodule.vala index 1e9cb1f9b..44018f927 100644 --- a/codegen/valadbusmodule.vala +++ b/codegen/valadbusmodule.vala @@ -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) { diff --git a/codegen/valadbusservermodule.vala b/codegen/valadbusservermodule.vala index 54bce3f1f..c211ecd9b 100644 --- a/codegen/valadbusservermodule.vala +++ b/codegen/valadbusservermodule.vala @@ -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 += " \n".printf (Symbol.lower_case_to_camel_case (m.name)); + result += " \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 += " \n".printf (Symbol.lower_case_to_camel_case (prop.name), get_type_signature (prop.property_type), access); + result += " \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 += " \n".printf (Symbol.lower_case_to_camel_case (sig.name)); + result += " \n".printf (get_dbus_name_for_member (sig)); foreach (var param in sig.get_parameters ()) { result += " \n".printf (param.name, get_type_signature (param.parameter_type));