Java DBus Multiple returns?

Arigead captain.deadly at gmail.com
Fri Mar 19 05:56:53 PDT 2010


Hello all,
    sorry I looked into the example given in [1] (section 7.8 of that page)

So I have a method I'm trying to call from the navit application defined
from navit source code:

{  "",
   "get_attr",
   "s",
   "attrname",
   "sv",
   "attrname,value",
   request_config_get_attr},

so it the method get_attr() takes a String as a single argument and
returns a String and a Vairant. So multiple returns so as per the
example I extend the Tuple:


    public final class TestTuple<A, B> extends Tuple
    {
       public final A a;
       public final B b;
       public TestTuple(A a, B b)
       {
          this.a = a;
          this.b = b;
       }
    }

Then in my Java Interface define the method as:

public TestTuple<String, Variant<?>> get_attr(String attrname);


In python I'd just call the get_attr() method with:

nav = object.get_attr("navit")

as you don't have to worry about the type of the return "nav", Python
will sort if out.

Anyhow when I try to call the get_attr() method in Java I get an error
indicating that I've got the wrong number of arguments from a call:

TestTuple<String, Variant<?>> tup = nav.get_attr("navit");

I'm sort of confused as there is only one argument a string, in this
case "navit" which works in Python. I assume that maybe I've got the
wrong end of the stick with the multiple returns in DBus Java. Could
anybody comment on that?

Thanks a million for any advice from any source.



[1]
http://dbus.freedesktop.org/doc/dbus-java/dbus-java/dbus-javase7.html#x24-310011


More information about the dbus mailing list