[DBus (name = "org.gnome.Foo.Dummy")]
interface DummyObj : Object {
    public abstract int ping (string msg) throws IOError;
}

public class DbusBasicTests : Object
{
  public DbusBasicTests ()
    {
      Bus.get_proxy.begin<DummyObj> (BusType.SESSION,
        "org.gnome.Foo.Dummy", "/org/gnome/Foo/Dummy", 0, null,
        this.get_proxy_cb);
    }

  public void get_proxy_cb (GLib.Object? source_object, GLib.AsyncResult res)
    {
      DummyObj dummy;

      try
        {
          dummy = Bus.get_proxy.end (res);
          /* XXX: would call dummy.ping here */
        }
      catch (IOError ioe)
        {
          warning ("%s\n", ioe.message);
        }
    }
}

public int main (string[] args)
{
  var tests = new DbusBasicTests ();

  return 0;
}
