<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
  <interface name="org.gnome.SessionManager.ClientPrivate">
    <method name="EndSessionResponse">
      <arg name="is_ok" type="b" direction="in">
        <doc:doc>
          <doc:summary>Whether or not it is OK to preceed</doc:summary>
        </doc:doc>
      </arg>
      <arg name="reason" type="s" direction="in">
        <doc:doc>
          <doc:summary>The reason string</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>This method should be used by the client in response to
            the <doc:ref type="signal" to="org.gnome.SessionManager.ClientPrivate::QueryEndSession">QueryEndSession</doc:ref>
            and <doc:ref type="signal" to="org.gnome.SessionManager.ClientPrivate::EndSession">EndSession</doc:ref> signals.
          </doc:para>
        </doc:description>
      </doc:doc>
    </method>

    <signal name="Stop">
      <doc:doc>
        <doc:summary>Stop client</doc:summary>
        <doc:description>
          <doc:para>
            The client should stop and remove itself from the session in
            response to this signal.
          </doc:para>
        </doc:description>
      </doc:doc>
    </signal>

    <signal name="QueryEndSession">
      <arg name="flags" type="u">
        <doc:doc>
          <doc:summary>Flags</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>This signal is used to inform the client that the
            session is about to end.  The client must respond by
            calling
            <doc:ref type="method" to="org.gnome.SessionManager.ClientPrivate.EndSessionResponse">EndSessionResponse</doc:ref>
            within one second of the signal emission.
          </doc:para>
          <doc:para>
            The flags may include:
            <doc:list>
              <doc:item>
                <doc:term>1</doc:term>
                <doc:definition>Logout is forced.
                  <doc:ref type="method" to="org.gnome.SessionManager.ClientPrivate.EndSessionResponse">EndSessionResponse</doc:ref>
                reason and any inhibit from client will be
                ignored.</doc:definition>
              </doc:item>
            </doc:list>
          </doc:para>
          <doc:para>
            If the client responds with an EndSessionResponse is-ok
            argument equal to FALSE and a reason then this reason may
            be displayed to the user.
          </doc:para>
          <doc:para>
            The client must not attempt to perform any actions or
            interact with the user in response to this signal.  Any
            actions required for a clean shutdown should take place in
            response to the
            <doc:ref type="signal" to="org.gnome.SessionManager.ClientPrivate::EndSession">EndSession</doc:ref> signal.
          </doc:para>
          <doc:para>
            The client should limit operations until either a
            <doc:ref type="signal" to="org.gnome.SessionManager.ClientPrivate::EndSession">EndSession</doc:ref>
            <doc:ref type="signal" to="org.gnome.SessionManager.ClientPrivate::CancelEndSession">CancelEndSession</doc:ref>
            signal is received.
          </doc:para>
        </doc:description>
      </doc:doc>
    </signal>

    <signal name="EndSession">
      <arg name="flags" type="u">
        <doc:doc>
          <doc:summary>Flags</doc:summary>
        </doc:doc>
      </arg>
      <doc:doc>
        <doc:description>
          <doc:para>This signal is used to inform the client that the
            session is about to end.  The client must respond by
            calling
            <doc:ref type="method" to="org.gnome.SessionManager.ClientPrivate.EndSessionResponse">EndSessionResponse</doc:ref>
            within ten seconds of the signal emission.
          </doc:para>
          <doc:para>
            The client must not attempt to interact with the user in
            response to this signal.  The application will be given a
            maxium of ten seconds to perform any actions required for
            a clean shutdown.
          </doc:para>
        </doc:description>
      </doc:doc>
    </signal>

    <signal name="CancelEndSession">
      <doc:doc>
        <doc:description>
          <doc:para>
            This signal indicates to the client that a previous emission of
            <doc:ref type="signal" to="org.gnome.SessionManager.ClientPrivate::QueryEndSession">QueryEndSession</doc:ref>
            has been cancelled.  The client should resume normal operations.
          </doc:para>
        </doc:description>
      </doc:doc>
    </signal>

  </interface>
</node>
