<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">

  <!--
    com.google.code.AccountsSSO.Accounts.Manager
    @short_description: Account Manager interface

    This interface is unstable, subject to change and should not be
    used by client applications, which should use libaccounts-glib
    instead.

    When libaccounts-glib finds that the accounts DB is read-only (this can
    happen in Ubuntu because of the application confinement setup with
    AppArmor) any call to the ag_account_store* family of functions will result
    in a D-Bus call being posted for the object
    /com/google/code/AccountsSSO/Accounts/Manager in the D-Bus service
    com.google.code.AccountsSSO.Accounts.Manager.

    By implementing this interface, a service can capture the write requests to
    the accounts DB and execute them (if it itself has read-write access to the
    DB). If such a service doesn't exist, or calling it results in some error,
    the client will receive an error message indicating that the DB is
    read-only.

    Again, note that this functionality is experimental.
  -->
  <interface name="com.google.code.AccountsSSO.Accounts.Manager">
    <!--
      store:
      @short_description: Request to write account changes to the DB
      @id: the ID of the account (0 if it's a new account)
      @created: whether the account is being created
      @deleted: whether the account is being deleted
      @provider: ID of the account provider

      Request performing these changes on the given account.
    -->
    <method name="store">
      <annotation name="org.qtproject.QtDBus.QtTypeName.In4" value="QList&lt;ServiceChanges>"/>
      <arg name="id" type="u" direction="in"/>
      <arg name="created" type="b" direction="in"/>
      <arg name="deleted" type="b" direction="in"/>
      <arg name="provider" type="s" direction="in"/>
      <arg name="settings" type="a(ssua{sv}as)" direction="in"/>
      <arg name="accountId" type="u" direction="out"/>
    </method>
  </interface>
</node>
