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

<node name="/org/chromium/peerd/Manager"
      xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.chromium.peerd.Manager">
    <tp:docstring>
      The Manager is responsible for global state of peerd.  It exposes
      functionality affecting the entire device such as monitoring and
      local service advertisements.
    </tp:docstring>
    <method name="StartMonitoring">
      <arg name="requested_technologies" type="as" direction="in"/>
      <arg name="options" type="a{sv}" direction="in"/>
      <arg name="monitoring_token" type="s" direction="out"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </method>
    <method name="StopMonitoring">
      <arg name="monitoring_token" type="s" direction="in"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </method>
    <method name="ExposeService">
      <arg name="service_id" type="s" direction="in"/>
      <arg name="service_info" type="a{ss}" direction="in"/>
      <arg name="options" type="a{sv}" direction="in"/>
      <arg name="service_token" type="s" direction="out"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="raw"/>
    </method>
    <method name="RemoveExposedService">
      <arg name="service_token" type="s" direction="in"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="normal"/>
    </method>
    <method name="Ping">
      <arg name="message" type="s" direction="out"/>
      <annotation name="org.chromium.DBus.Method.Kind" value="simple"/>
    </method>
    <property name="MonitoredTechnologies" type="as" access="read"/>
  </interface>
</node>
