<?xml version="1.0" encoding="UTF-8" ?>

<node name="/org/openmoko/Diversity/World" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.openmoko.Diversity.World">

    <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="control_world"/>

    <method name="GetSelf">
      <tp:docstring>
        Get the special bard, Self.
      </tp:docstring>

      <arg type="o" name="self" direction="out">
        <tp:docstring>
          Object path of Self.
        </tp:docstring>
      </arg>
    </method> 

    <property name="tunnel" type="s" access="readwrite">
      <tp:docstring>
        The URI of the tunnel.
      </tp:docstring>
    </property>

    <signal name="TunneledChanged">
      <tp:docstring>
        The tunneled status changed.
      </tp:docstring>

      <arg type="b" name="tunneled">
        <tp:docstring>
          The new tunneled status.
        </tp:docstring>
      </arg>
    </signal>

    <method name="GetTunneled">
      <tp:docstring>
        Get the tunneled status.
      </tp:docstring>

      <arg type="b" name="tunneled" direction="out">
        <tp:docstring>
          Indicate the tunneled status.
        </tp:docstring>
      </arg>
    </method> 

    <method name="ConnectAp">
      <tp:docstring>
        DEPRECATED.
      </tp:docstring>

      <arg type="o" name="ap" direction="in" />
    </method> 

    <method name="ConnectWired">
      <tp:docstring>
        DEPRECATED.
      </tp:docstring>
    </method> 

    <method name="ViewportAdd">
      <tp:docstring>
        Add a viewport to the world.
      </tp:docstring>

      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>

      <arg type="d" name="lon1" direction="in">
        <tp:docstring>
          The minimal longitude of the viewport.
        </tp:docstring>
      </arg>
      <arg type="d" name="lat1" direction="in">
        <tp:docstring>
          The minimal latitude of the viewport.
        </tp:docstring>
      </arg>
      <arg type="d" name="lon2" direction="in">
        <tp:docstring>
          The maximal longitude of the viewport.
        </tp:docstring>
      </arg>
      <arg type="d" name="lat2" direction="in">
        <tp:docstring>
          The maximal latitude of the viewport.
        </tp:docstring>
      </arg>

      <arg type="o" name="viewport" direction="out">
        <tp:docstring>
          The object path of the newly added viewport.
        </tp:docstring>
      </arg>
    </method> 

    <method name="ViewportRemove">
      <tp:docstring>
        Remove a viewport from the world.
      </tp:docstring>

      <arg type="o" name="viewport" direction="in">
        <tp:docstring>
          The object path of the viewport to be removed.
        </tp:docstring>
      </arg>
    </method> 

    <method name="TagAdd">
      <tp:docstring>
        Add a tag to the world.
      </tp:docstring>

      <arg type="d" name="lon" direction="in">
        <tp:docstring>
          The longitude of the tag.
        </tp:docstring>
      </arg>
      <arg type="d" name="lat" direction="in">
        <tp:docstring>
          The latitude of the tag.
        </tp:docstring>
      </arg>
      <arg type="s" name="description" direction="in">
        <tp:docstring>
          The description of the tag.
        </tp:docstring>
      </arg>

      <arg type="o" name="tag" direction="out">
        <tp:docstring>
          The object path of the newly added tag.
        </tp:docstring>
      </arg>
    </method> 

    <method name="TagRemove">
      <tp:docstring>
        Remove a tag from the world.
      </tp:docstring>

      <arg type="o" name="tag" direction="in">
        <tp:docstring>
          The object path of the tag to be removed.
        </tp:docstring>
      </arg>
    </method> 

    <method name="Snapshot">
      <tp:docstring>
        Take a snapshot of the world.  It usually means saving current status to the filesystem.
      </tp:docstring>
    </method> 

  </interface>
</node>
