Search code examples
c++dbusgdbus

Add tuple in gdbus introspection xml


How can I receive multiple int32 values, ie when I am receiving one value i need to specify it as type=i ,

<method name="foo3" >
  <annotation name="org.dsource.dbus.d.Returns" value="bar"/>
  <arg name="bar" type="i" direction="in"/>
</method>

but it is not allowing me to specify as, when I am doing so I am getting the error as expecting value is null

<method name="foo3" >
  <annotation name="org.dsource.dbus.d.Returns" value="bar"/>
  <arg name="bar" type="ii" direction="in"/>
</method>

then I have tried

<method name="foo3" >
  <annotation name="org.dsource.dbus.d.Returns" value="bar"/>
  <arg name="bar" type="(ii)" direction="in"/>
</method>

The error message is :

Error org.freedesktop.DBus.Error.InvalidArgs: Type of message, '(ii)', does not match expected type '((ii))'

It is giving the error as expected value is ((ii)), What I need to get is I need to change the expected value as (ii).. please give me answer Thanks in advance


Solution

  • You can use it as ,

     <method name='YourMethod'>"
        <arg type='i' name='name1' direction='in'/>"
         <arg type='i' name='name2' direction='in'/>"
     </method>"
    

    and you can use (ii) tuple format to call the method