<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Infinity" version="0.7"/>
  <package name="libinfinity-0.7"/>
  <doc:format name="unknown"/>
  <namespace name="Infinityc"
             version="0.7"
             shared-library="libinfinity-0.7.so.0"
             c:identifier-prefixes="Infc"
             c:symbol-prefixes="infc">
    <function-macro name="BROWSER"
                    c:identifier="INFC_BROWSER"
                    introspectable="0">
      <source-position filename="infc-browser.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BROWSER_CLASS"
                    c:identifier="INFC_BROWSER_CLASS"
                    introspectable="0">
      <source-position filename="infc-browser.h" line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BROWSER_GET_CLASS"
                    c:identifier="INFC_BROWSER_GET_CLASS"
                    introspectable="0">
      <source-position filename="infc-browser.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Browser"
           c:symbol-prefix="browser"
           c:type="InfcBrowser"
           parent="GObject.Object"
           glib:type-name="InfcBrowser"
           glib:get-type="infc_browser_get_type"
           glib:type-struct="BrowserClass">
      <doc xml:space="preserve"
           filename="infc-browser.h"
           line="55">#InfcBrowser is an opaque data type. You should only access it via the
public API functions.</doc>
      <source-position filename="infc-browser.h" line="53"/>
      <implements name="Infinity.Browser"/>
      <implements name="Infinity.CommunicationObject"/>
      <constructor name="new" c:identifier="infc_browser_new">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="6936">Creates a new #InfcBrowser.</doc>
        <source-position filename="infc-browser.h" line="70"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="6945">A new #InfcBrowser.</doc>
          <type name="Browser" c:type="InfcBrowser*"/>
        </return-value>
        <parameters>
          <parameter name="io" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="6938">A #InfIo object used to schedule timeouts.</doc>
            <type name="Infinity.Io" c:type="InfIo*"/>
          </parameter>
          <parameter name="comm_manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="6939">A #InfCommunicationManager to register the server connection
and which forwards incoming data to the browser or running sessions.</doc>
            <type name="Infinity.CommunicationManager"
                  c:type="InfCommunicationManager*"/>
          </parameter>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="6941">Connection to the server.</doc>
            <type name="Infinity.XmlConnection" c:type="InfXmlConnection*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_plugin" c:identifier="infc_browser_add_plugin">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="6999">Adds @plugin to @browser. This allows the browser to create sessions of
the plugin's type. Only one plugin of each type can be added to the
directory.</doc>
        <source-position filename="infc-browser.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="7008">Whether the plugin was added successfully.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7001">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
          <parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7002">A #InfcNotePlugin.</doc>
            <type name="NotePlugin" c:type="const InfcNotePlugin*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_chat_session"
              c:identifier="infc_browser_get_chat_session"
              glib:get-property="chat-session">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="7342">Returns the #InfcSessionProxy representing the running chat session if the
local client is subscribed to it, or %NULL otherwise.</doc>
        <source-position filename="infc-browser.h" line="115"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="7349">A #InfcSessionProxy for the chat,
or %NULL.</doc>
          <type name="SessionProxy" c:type="InfcSessionProxy*"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7344">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_communication_manager"
              c:identifier="infc_browser_get_communication_manager"
              glib:get-property="communication-manager">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="6969">Returns the communication manager of this browser.</doc>
        <source-position filename="infc-browser.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="6975">A #InfCommunicationManager.</doc>
          <type name="Infinity.CommunicationManager"
                c:type="InfCommunicationManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="6971">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_connection"
              c:identifier="infc_browser_get_connection"
              glib:get-property="connection">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="6984">Returns the connection to the server.</doc>
        <source-position filename="infc-browser.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="6990">A #InfXmlConnection.</doc>
          <type name="Infinity.XmlConnection" c:type="InfXmlConnection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="6986">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subscribe_chat_request"
              c:identifier="infc_browser_get_subscribe_chat_request">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="7306">Returns the #InfRequest that represests the request sent to the server
which attempts to subscribe to its chat. If there is no such request
running, then the function returns %NULL. After such a request finishes,
call infc_browser_get_chat_session() to get the #InfcSessionProxy for the
chat session. To initiate the request, call infc_browser_subscribe_chat().</doc>
        <source-position filename="infc-browser.h" line="112"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="7316">A #InfRequest, or %NULL.</doc>
          <type name="Infinity.Request" c:type="InfRequest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7308">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="iter_get_sync_in"
              c:identifier="infc_browser_iter_get_sync_in">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="7132">Returns the #InfcSessionProxy that is used to synchronize the note @iter
points to to the server. Such a node is created by
inf_browser_add_note() with non-%NULL @session parameter. If the client is
subscribed to this note, then this returns the same session as
inf_browser_get_session(). However, it is possible that we
synchronize this node to the server without being subscribed to it. In
this case, this function returns the session that does the synchronization,
while inf_browser_get_session() would return %NULL.</doc>
        <source-position filename="infc-browser.h" line="95"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="7146">A #InfcSessionProxy, or %NULL if we
are currently not synchronizing this node to the server.</doc>
          <type name="SessionProxy" c:type="InfcSessionProxy*"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7134">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7135">A #InfBrowserIter pointing to a note in @browser.</doc>
            <type name="Infinity.BrowserIter" c:type="const InfBrowserIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_get_sync_in_requests"
              c:identifier="infc_browser_iter_get_sync_in_requests">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="7171">Returns a list of all #InfRequest&lt;!-- --&gt;s created with
inf_browser_add_note() with the node @iter points to as
parent. Such requests begin a synchronization to the server when they
have finished.</doc>
        <source-position filename="infc-browser.h" line="99"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="7181">A list of
#InfRequest&lt;!-- --&gt;s. Free with g_slist_free() when done.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Infinity.Request"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7173">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7174">A #InfBrowserIter pointing to a subdirectory node in @browser.</doc>
            <type name="Infinity.BrowserIter" c:type="const InfBrowserIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_is_valid" c:identifier="infc_browser_iter_is_valid">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="7216">Returns whether @iter points to a valid node in @browser. This is
generally the case for any #InfBrowserIter returned by one of the
InfcBrowser functions, it gets invalid however as soon as the node it
points to is removed.</doc>
        <source-position filename="infc-browser.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="7226">Whether @iter points to a node in @browser.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7218">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7219">A #InfBrowserIter.</doc>
            <type name="Infinity.BrowserIter" c:type="const InfBrowserIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_save_session"
              c:identifier="infc_browser_iter_save_session">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="7065">Requests that the server saves the note pointed to by @iter into its
background storage. Normally, the server only does this when it is either
shut down or when the there are no more subscriptions to the note. Note that
this is merely a request and the server might decide not to save the
session for whatever reason.

The request might either finish during the call to this function, in which
case @func will be called and %NULL being returned. If the request does not
finish within the function call, a #InfRequest object is returned,
where @func has been installed for the #InfRequest::finished signal,
so that it is called as soon as the request finishes.</doc>
        <source-position filename="infc-browser.h" line="89"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="7085">A #InfRequest that may be used to
get notified when the request finishes or fails.</doc>
          <type name="Infinity.Request" c:type="InfRequest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7067">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7068">A #InfBrowserIter pointing to a note in @browser.</doc>
            <type name="Infinity.BrowserIter" c:type="const InfBrowserIter*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7069">The function to be called when the request finishes,
or %NULL.</doc>
            <type name="Infinity.RequestFunc" c:type="InfRequestFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7071">Additional data to pass to @func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_plugin" c:identifier="infc_browser_lookup_plugin">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="7042">Returns a previously registered plugin (see infc_browser_add_plugin()) for
the given note type, or %NULL if there is no such plugin.</doc>
        <source-position filename="infc-browser.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="7050">A #InfcNotePlugin, or %NULL.</doc>
          <type name="NotePlugin" c:type="const InfcNotePlugin*"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7044">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
          <parameter name="note_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7045">A note type, such as "InfText".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="subscribe_chat" c:identifier="infc_browser_subscribe_chat">
        <doc xml:space="preserve"
             filename="infc-browser.c"
             line="7243">Attempts to subscribe to the server's chat. When the operation finishes
infc_browser_get_chat_session() will return a #InfcSessionProxy
representing the chat session. It can be used to read the chat's content.
The request can fail in case the server chat is disabled.

The request might either finish during the call to this function, in which
case @func will be called and %NULL being returned. If the request does not
finish within the function call, a #InfRequest object is returned,
where @func has been installed for the #InfRequest::finished signal,
so that it is called as soon as the request finishes.</doc>
        <source-position filename="infc-browser.h" line="107"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="infc-browser.c"
               line="7261">A #InfRequest that may be used to
get notified when the request finishes or fails.</doc>
          <type name="Infinity.Request" c:type="InfRequest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="browser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7245">A #InfcBrowser.</doc>
            <type name="Browser" c:type="InfcBrowser*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="async"
                     closure="1">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7246">The function to be called when the request
finishes, or %NULL.</doc>
            <type name="Infinity.RequestFunc" c:type="InfRequestFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="infc-browser.c"
                 line="7248">Additional data to pass to @func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <property name="chat-session"
                transfer-ownership="none"
                getter="get_chat_session">
        <type name="SessionProxy"/>
      </property>
      <property name="communication-manager"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_communication_manager">
        <type name="Infinity.CommunicationManager"/>
      </property>
      <property name="connection"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_connection">
        <type name="Infinity.XmlConnection"/>
      </property>
      <property name="io"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Infinity.Io"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="BrowserClass"
            c:type="InfcBrowserClass"
            glib:is-gtype-struct-for="Browser">
      <doc xml:space="preserve"
           filename="infc-browser.h"
           line="45">This structure does not contain any public fields.</doc>
      <source-position filename="infc-browser.h" line="53"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function-macro name="IS_BROWSER"
                    c:identifier="INFC_IS_BROWSER"
                    introspectable="0">
      <source-position filename="infc-browser.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_BROWSER_CLASS"
                    c:identifier="INFC_IS_BROWSER_CLASS"
                    introspectable="0">
      <source-position filename="infc-browser.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PROGRESS_REQUEST"
                    c:identifier="INFC_IS_PROGRESS_REQUEST"
                    introspectable="0">
      <source-position filename="infc-progress-request.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PROGRESS_REQUEST_CLASS"
                    c:identifier="INFC_IS_PROGRESS_REQUEST_CLASS"
                    introspectable="0">
      <source-position filename="infc-progress-request.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_REQUEST"
                    c:identifier="INFC_IS_REQUEST"
                    introspectable="0">
      <source-position filename="infc-request.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_REQUEST_CLASS"
                    c:identifier="INFC_IS_REQUEST_CLASS"
                    introspectable="0">
      <source-position filename="infc-request.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_REQUEST_MANAGER"
                    c:identifier="INFC_IS_REQUEST_MANAGER"
                    introspectable="0">
      <source-position filename="infc-request-manager.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_REQUEST_MANAGER_CLASS"
                    c:identifier="INFC_IS_REQUEST_MANAGER_CLASS"
                    introspectable="0">
      <source-position filename="infc-request-manager.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SESSION_PROXY"
                    c:identifier="INFC_IS_SESSION_PROXY"
                    introspectable="0">
      <source-position filename="infc-session-proxy.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_SESSION_PROXY_CLASS"
                    c:identifier="INFC_IS_SESSION_PROXY_CLASS"
                    introspectable="0">
      <source-position filename="infc-session-proxy.h" line="33"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <record name="NotePlugin" c:type="InfcNotePlugin">
      <source-position filename="infc-note-plugin.h" line="45"/>
      <field name="user_data" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="note_type" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="session_new" introspectable="0" writable="1">
        <type name="NotePluginSessionNew" c:type="InfcNotePluginSessionNew"/>
      </field>
    </record>
    <callback name="NotePluginSessionNew"
              c:type="InfcNotePluginSessionNew"
              introspectable="0">
      <source-position filename="infc-note-plugin.h" line="30"/>
      <return-value>
        <type name="Infinity.Session" c:type="InfSession*"/>
      </return-value>
      <parameters>
        <parameter name="arg0" transfer-ownership="none">
          <type name="Infinity.Io" c:type="InfIo*"/>
        </parameter>
        <parameter name="arg1" transfer-ownership="none">
          <type name="Infinity.CommunicationManager"
                c:type="InfCommunicationManager*"/>
        </parameter>
        <parameter name="arg2" transfer-ownership="none">
          <type name="Infinity.SessionStatus" c:type="InfSessionStatus"/>
        </parameter>
        <parameter name="arg3" transfer-ownership="none">
          <type name="Infinity.CommunicationGroup"
                c:type="InfCommunicationGroup*"/>
        </parameter>
        <parameter name="arg4" transfer-ownership="none">
          <type name="Infinity.XmlConnection" c:type="InfXmlConnection*"/>
        </parameter>
        <parameter name="arg5" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="arg6"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="PROGRESS_REQUEST"
                    c:identifier="INFC_PROGRESS_REQUEST"
                    introspectable="0">
      <source-position filename="infc-progress-request.h" line="29"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PROGRESS_REQUEST_CLASS"
                    c:identifier="INFC_PROGRESS_REQUEST_CLASS"
                    introspectable="0">
      <source-position filename="infc-progress-request.h" line="30"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PROGRESS_REQUEST_GET_CLASS"
                    c:identifier="INFC_PROGRESS_REQUEST_GET_CLASS"
                    introspectable="0">
      <source-position filename="infc-progress-request.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="ProgressRequest"
           c:symbol-prefix="progress_request"
           c:type="InfcProgressRequest"
           parent="Request"
           glib:type-name="InfcProgressRequest"
           glib:get-type="infc_progress_request_get_type"
           glib:type-struct="ProgressRequestClass">
      <doc xml:space="preserve"
           filename="infc-progress-request.h"
           line="48">#InfcProgressRequest is an opaque data type. You should only access it via
the public API functions.</doc>
      <source-position filename="infc-progress-request.h" line="46"/>
      <implements name="Infinity.Request"/>
      <method name="get_initiated"
              c:identifier="infc_progress_request_get_initiated">
        <doc xml:space="preserve"
             filename="infc-progress-request.c"
             line="205">Returns whether the request was initiated, i.e. the total number of items
is known.</doc>
        <source-position filename="infc-progress-request.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-progress-request.c"
               line="212">Whether the request was initiated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="request" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-progress-request.c"
                 line="207">A #InfcProgressRequest.</doc>
            <type name="ProgressRequest" c:type="InfcProgressRequest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="initiated" c:identifier="infc_progress_request_initiated">
        <doc xml:space="preserve"
             filename="infc-progress-request.c"
             line="179">Initiates the request. A progress request is considered initiated as soon
as the total number of items is known.</doc>
        <source-position filename="infc-progress-request.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="request" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-progress-request.c"
                 line="181">An #InfcProgressRequest.</doc>
            <type name="ProgressRequest" c:type="InfcProgressRequest*"/>
          </instance-parameter>
          <parameter name="total" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-progress-request.c"
                 line="182">The total number of items.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="progress" c:identifier="infc_progress_request_progress">
        <doc xml:space="preserve"
             filename="infc-progress-request.c"
             line="221">Indicates that one more operation has been performed and changes the
#InfcProgressRequest:current property accordingly. The request must be
initiated before this function can be called.</doc>
        <source-position filename="infc-progress-request.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="request" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-progress-request.c"
                 line="223">A #InfcProgressRequest.</doc>
            <type name="ProgressRequest" c:type="InfcProgressRequest*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="current" transfer-ownership="none" default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="total" transfer-ownership="none" default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Request" c:type="InfcRequest"/>
      </field>
    </class>
    <record name="ProgressRequestClass"
            c:type="InfcProgressRequestClass"
            glib:is-gtype-struct-for="ProgressRequest">
      <doc xml:space="preserve"
           filename="infc-progress-request.h"
           line="38">This structure does not contain any public fields.</doc>
      <source-position filename="infc-progress-request.h" line="46"/>
      <field name="parent_class" readable="0" private="1">
        <type name="RequestClass" c:type="InfcRequestClass"/>
      </field>
    </record>
    <function-macro name="REQUEST"
                    c:identifier="INFC_REQUEST"
                    introspectable="0">
      <source-position filename="infc-request.h" line="28"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REQUEST_CLASS"
                    c:identifier="INFC_REQUEST_CLASS"
                    introspectable="0">
      <source-position filename="infc-request.h" line="29"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REQUEST_GET_CLASS"
                    c:identifier="INFC_REQUEST_GET_CLASS"
                    introspectable="0">
      <source-position filename="infc-request.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REQUEST_MANAGER"
                    c:identifier="INFC_REQUEST_MANAGER"
                    introspectable="0">
      <source-position filename="infc-request-manager.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REQUEST_MANAGER_CLASS"
                    c:identifier="INFC_REQUEST_MANAGER_CLASS"
                    introspectable="0">
      <source-position filename="infc-request-manager.h" line="32"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="REQUEST_MANAGER_GET_CLASS"
                    c:identifier="INFC_REQUEST_MANAGER_GET_CLASS"
                    introspectable="0">
      <source-position filename="infc-request-manager.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Request"
           c:symbol-prefix="request"
           c:type="InfcRequest"
           parent="GObject.Object"
           glib:type-name="InfcRequest"
           glib:get-type="infc_request_get_type"
           glib:type-struct="RequestClass">
      <doc xml:space="preserve"
           filename="infc-request.h"
           line="34">#InfcRequest is an opaque data type. You should only access it
via the public API functions.</doc>
      <source-position filename="infc-request.h" line="53"/>
      <implements name="Infinity.Request"/>
      <property name="node-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="4294967295">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="seq"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="RequestClass"
            c:type="InfcRequestClass"
            glib:is-gtype-struct-for="Request">
      <doc xml:space="preserve"
           filename="infc-request.h"
           line="43">This structure does not contain any public fields.</doc>
      <source-position filename="infc-request.h" line="53"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="RequestManager"
           c:symbol-prefix="request_manager"
           c:type="InfcRequestManager"
           parent="GObject.Object"
           glib:type-name="InfcRequestManager"
           glib:get-type="infc_request_manager_get_type"
           glib:type-struct="RequestManagerClass">
      <doc xml:space="preserve"
           filename="infc-request-manager.h"
           line="61">#InfcRequestManager is an opaque data type. You should only access it via
the public API functions.</doc>
      <source-position filename="infc-request-manager.h" line="59"/>
      <constructor name="new" c:identifier="infc_request_manager_new">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="358">Creates a new #InfcRequestManager.</doc>
        <source-position filename="infc-request-manager.h" line="89"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="infc-request-manager.c"
               line="364">A newly allocated #InfcRequestManager.</doc>
          <type name="RequestManager" c:type="InfcRequestManager*"/>
        </return-value>
        <parameters>
          <parameter name="seq_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="360">The local sequence ID.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="request_add">
        <doc xml:space="preserve"
             filename="infc-request-manager.h"
             line="42">Default signal handler for the
#InfcRequestManager::request-add signal.</doc>
        <source-position filename="infc-request-manager.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="request" transfer-ownership="none">
            <type name="Request" c:type="InfcRequest*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="request_remove">
        <doc xml:space="preserve"
             filename="infc-request-manager.h"
             line="44">Default signal handler for the
#InfcRequestManager::request-remove signal.</doc>
        <source-position filename="infc-request-manager.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="request" transfer-ownership="none">
            <type name="Request" c:type="InfcRequest*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_request"
              c:identifier="infc_request_manager_add_request"
              introspectable="0">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="375">Adds a request to the request manager. A new signal handler for the
request's "finished" signal will be installed and made to invoke the given
callback.</doc>
        <source-position filename="infc-request-manager.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-request-manager.c"
               line="393">The generated #InfcRequest (actually of type
@request_type).</doc>
          <type name="Request" c:type="InfcRequest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="377">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="request_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="378">The type of request to add, such as #InfcProgressRequest.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="request_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="379">The name of the request, such as "explore-node" or
"subscribe-session".</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="381">A #GCallback that will be called when the request
has completed, or %NULL.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="383">Additional data passed to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="384">The first property name apart from name and seq to
set for the new request.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="386">The value of the first property, followed optionally by more
name/value pairs, followed by %NULL.</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_request_valist"
              c:identifier="infc_request_manager_add_request_valist"
              introspectable="0">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="424">Adds a request to the request manager. A new signal handler for the
request's "finished" signal will be installed and made to invoke the given
callback.</doc>
        <source-position filename="infc-request-manager.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-request-manager.c"
               line="442">The generated #InfcRequest (actually of type
@request_type).</doc>
          <type name="Request" c:type="InfcRequest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="426">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="request_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="427">The type of request to add, such as #InfcProgressRequest.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="request_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="428">The name of the request, such as &amp;quot;explore-node&amp;quot; or
&amp;quot;subscribe-session&amp;quot;</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="430">A #GCallback that will be called when the request
has completed, or %NULL.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="432">Additional data passed to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="433">The first property name apart from name and seq to
set for the new request.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="arglist" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="435">The value of the first property, followed optionally by more
name/value pairs, followed by %NULL.</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="infc_request_manager_clear">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="638">Removes all the requests in @manager.</doc>
        <source-position filename="infc-request-manager.h" line="124"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="640">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fail_request"
              c:identifier="infc_request_manager_fail_request">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="614">Marks @request as failed using inf_request_fail() and then removes the
request from the manager.</doc>
        <source-position filename="infc-request-manager.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="616">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="request" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="617">A #InfcRequest that has previously been added to @manager.</doc>
            <type name="Request" c:type="InfcRequest*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="618">Error information why the request failed.</doc>
            <type name="GLib.Error" c:type="const GError*"/>
          </parameter>
        </parameters>
      </method>
      <method name="finish_request"
              c:identifier="infc_request_manager_finish_request">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="590">Marks @request as finished using inf_request_finish() and then removes the
request from the manager. The function takes ownership of @result.</doc>
        <source-position filename="infc-request-manager.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="592">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="request" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="593">A #InfcRequest that has previously been added to @manager.</doc>
            <type name="Request" c:type="InfcRequest*"/>
          </parameter>
          <parameter name="result" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="594">The request result.</doc>
            <type name="Infinity.RequestResult" c:type="InfRequestResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_named_request"
              c:identifier="infc_request_manager_foreach_named_request">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="849">Calls the given function for each request that has been added to the
request manager that has the name @name.</doc>
        <source-position filename="infc-request-manager.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="851">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="852">The name of the request to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="2">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="853">The function to be called.</doc>
            <type name="RequestManagerForeachFunc"
                  c:type="InfcRequestManagerForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="854">Arbitrary data to be passed to @func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_request"
              c:identifier="infc_request_manager_foreach_request">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="816">Calls the given function for each request that has been added to the
request manager.</doc>
        <source-position filename="infc-request-manager.h" line="143"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="818">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="819">The function to be called.</doc>
            <type name="RequestManagerForeachFunc"
                  c:type="InfcRequestManagerForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="820">Arbitrary data to be passed to @func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_request_by_seq"
              c:identifier="infc_request_manager_get_request_by_seq">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="651">Returns a previously-added request that has the given seq.</doc>
        <source-position filename="infc-request-manager.h" line="127"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="infc-request-manager.c"
               line="658">The request with the given seq,
or %NULL if there is no such request.</doc>
          <type name="Request" c:type="InfcRequest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="653">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="seq" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="654">The sequence number to which the request should be retrieved.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_request_by_xml"
              c:identifier="infc_request_manager_get_request_by_xml"
              throws="1">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="676">Looks whether there is a "seq" attribute in @xml. If not, the function
returns %NULL (without setting @error). Otherwise, it returns the request
with the given seq and name, if the sequence ID matches. If the "seq"
attribute is set but the actual request is not present (or has another
name), the function returns %NULL and @error is set.</doc>
        <source-position filename="infc-request-manager.h" line="131"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="infc-request-manager.c"
               line="689">The resulting request, or %NULL
if the "seq" attribute was not present or an error occurred.</doc>
          <type name="Request" c:type="InfcRequest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="678">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="679">Name of the expected request. May be %NULL to allow all requests.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="xml" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="680">XML node that is supposed to contain a "seq" attribute.</doc>
            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_request_by_xml_required"
              c:identifier="infc_request_manager_get_request_by_xml_required"
              throws="1">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="763">Looks whether there is a "seq" attribute in @xml. If so, it returns the
request with the given seq and name, if the sequence ID matches. If the
"seq" attribute is not set or the actual request is not present (or has
another name), the function returns %NULL and @error is set.</doc>
        <source-position filename="infc-request-manager.h" line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-request-manager.c"
               line="775">The resulting request, or %NULL if an error
occurred.</doc>
          <type name="Request" c:type="InfcRequest*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="765">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="766">Name of the expected request. May be %NULL to allow all requests.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="xml" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="767">XML node that is supposed to contain a "seq" attribute.</doc>
            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_request"
              c:identifier="infc_request_manager_remove_request">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="564">Removes a request from the request manager.</doc>
        <source-position filename="infc-request-manager.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="566">A #InfcRequestManager.</doc>
            <type name="RequestManager" c:type="InfcRequestManager*"/>
          </instance-parameter>
          <parameter name="request" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="567">A #InfcRequest that has previously been added to @manager.</doc>
            <type name="Request" c:type="InfcRequest*"/>
          </parameter>
        </parameters>
      </method>
      <property name="sequence-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="request-add" when="last">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="315">This signal is emitted whenever a request was added to the request
manager.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="request" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="318">The #InfcRequest that was added.</doc>
            <type name="Request"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="request-remove" when="last">
        <doc xml:space="preserve"
             filename="infc-request-manager.c"
             line="335">This signal is emitted whenever a request was removed from the request
manager. Typically this happens when the request has finished (either
successfully or unsuccessfully). It can also happen when the client is
disconnected from the server while a request was still pending.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="request" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-request-manager.c"
                 line="338">The #InfcRequest that was removed.</doc>
            <type name="Request"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RequestManagerClass"
            c:type="InfcRequestManagerClass"
            glib:is-gtype-struct-for="RequestManager">
      <doc xml:space="preserve"
           filename="infc-request-manager.h"
           line="40">This structure contains the default signal handlers of the
#InfcRequestManager class.</doc>
      <source-position filename="infc-request-manager.h" line="59"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="request_add">
        <doc xml:space="preserve"
             filename="infc-request-manager.h"
             line="42">Default signal handler for the
#InfcRequestManager::request-add signal.</doc>
        <callback name="request_add">
          <source-position filename="infc-request-manager.h" line="55"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="RequestManager" c:type="InfcRequestManager*"/>
            </parameter>
            <parameter name="request" transfer-ownership="none">
              <type name="Request" c:type="InfcRequest*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="request_remove">
        <doc xml:space="preserve"
             filename="infc-request-manager.h"
             line="44">Default signal handler for the
#InfcRequestManager::request-remove signal.</doc>
        <callback name="request_remove">
          <source-position filename="infc-request-manager.h" line="57"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="RequestManager" c:type="InfcRequestManager*"/>
            </parameter>
            <parameter name="request" transfer-ownership="none">
              <type name="Request" c:type="InfcRequest*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="RequestManagerForeachFunc"
              c:type="InfcRequestManagerForeachFunc">
      <doc xml:space="preserve"
           filename="infc-request-manager.h"
           line="72">This signature specifies the callback type when iterating over all
requests of the request manager.</doc>
      <source-position filename="infc-request-manager.h" line="82"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="request" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-request-manager.h"
               line="74">The current request.</doc>
          <type name="Request" c:type="InfcRequest*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <doc xml:space="preserve"
               filename="infc-request-manager.h"
               line="75">Additional data passed to
infc_request_manager_foreach_request() or
infc_request_manager_foreach_named_request().</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="SESSION_PROXY"
                    c:identifier="INFC_SESSION_PROXY"
                    introspectable="0">
      <source-position filename="infc-session-proxy.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SESSION_PROXY_CLASS"
                    c:identifier="INFC_SESSION_PROXY_CLASS"
                    introspectable="0">
      <source-position filename="infc-session-proxy.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="SESSION_PROXY_GET_CLASS"
                    c:identifier="INFC_SESSION_PROXY_GET_CLASS"
                    introspectable="0">
      <source-position filename="infc-session-proxy.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="SessionProxy"
           c:symbol-prefix="session_proxy"
           c:type="InfcSessionProxy"
           parent="GObject.Object"
           glib:type-name="InfcSessionProxy"
           glib:get-type="infc_session_proxy_get_type"
           glib:type-struct="SessionProxyClass">
      <doc xml:space="preserve"
           filename="infc-session-proxy.h"
           line="60">#InfcSessionProxy is an opaque data type. You should only access it via the
public API functions.</doc>
      <source-position filename="infc-session-proxy.h" line="58"/>
      <implements name="Infinity.CommunicationObject"/>
      <implements name="Infinity.SessionProxy"/>
      <virtual-method name="translate_error">
        <doc xml:space="preserve"
             filename="infc-session-proxy.h"
             line="41">Virtual function to transform an error domain and code
into a #GError object. If the domain and code are known, this allows to
show a localized error message to the user, independent from the language
the server uses in the error message that went over the wire.</doc>
        <source-position filename="infc-session-proxy.h" line="55"/>
        <return-value transfer-ownership="full">
          <type name="GLib.Error" c:type="GError*"/>
        </return-value>
        <parameters>
          <instance-parameter name="session" transfer-ownership="none">
            <type name="SessionProxy" c:type="InfcSessionProxy*"/>
          </instance-parameter>
          <parameter name="domain" transfer-ownership="none">
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
          <parameter name="code" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_connection"
              c:identifier="infc_session_proxy_get_connection"
              glib:get-property="connection">
        <doc xml:space="preserve"
             filename="infc-session-proxy.c"
             line="1231">Returns the connection that is used to transmit requests to the publisher
of the session, or %NULL if the session is not subscribed.</doc>
        <source-position filename="infc-session-proxy.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-session-proxy.c"
               line="1238">A #InfXmlConnection, or %NULL.</doc>
          <type name="Infinity.XmlConnection" c:type="InfXmlConnection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-session-proxy.c"
                 line="1233">A #InfcSessionProxy.</doc>
            <type name="SessionProxy" c:type="InfcSessionProxy*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subscription_group"
              c:identifier="infc_session_proxy_get_subscription_group"
              glib:get-property="subscription-group">
        <doc xml:space="preserve"
             filename="infc-session-proxy.c"
             line="1247">Returns the group with all subscribed connections to the session, or %NULL
if the session is not subscribed.</doc>
        <source-position filename="infc-session-proxy.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="infc-session-proxy.c"
               line="1254">A #InfCommunicationJoinedGroup, or %NULL.</doc>
          <type name="Infinity.CommunicationJoinedGroup"
                c:type="InfCommunicationJoinedGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-session-proxy.c"
                 line="1249">A #InfcSessionProxy.</doc>
            <type name="SessionProxy" c:type="InfcSessionProxy*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_connection"
              c:identifier="infc_session_proxy_set_connection">
        <doc xml:space="preserve"
             filename="infc-session-proxy.c"
             line="1126">Sets the subscription connection for the given session. The subscription
connection is the connection through which session requests are transmitted
during subscription.

The subscription connection might be set even if the session is in
SYNCHRONIZING state in which case the session is immediately subscribed
after synchronization. Note that no attempt is made to tell the other end
about the subscription.

@seq_id should be a sequence identifier obtained from the server side. It
must be the same number that is used on the corresponding #InfdSessionProxy
on the remote side, see infd_session_proxy_subscribe_to(). Normally
#InfdDirectory or #InfcBrowser, respectively, take care of passing the
correct sequence identifier.

When the subscription connection is being closed or replaced (by a
subsequent call to this function), all pending requests are dropped and
all users are set to be unavailable, but the session will not be closed,
so it may be reused by setting another subscription connection. However,
the session might not be synchronized again, but it is fully okay to close
the session by hand (using inf_session_close) and create a new session
that is synchronized.</doc>
        <source-position filename="infc-session-proxy.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-session-proxy.c"
                 line="1128">A #InfcSessionProxy.</doc>
            <type name="SessionProxy" c:type="InfcSessionProxy*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-session-proxy.c"
                 line="1129">A #InfCommunicationJoinedGroup of subscribed connections. Ignored
if @connection is %NULL.</doc>
            <type name="Infinity.CommunicationJoinedGroup"
                  c:type="InfCommunicationJoinedGroup*"/>
          </parameter>
          <parameter name="connection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-session-proxy.c"
                 line="1131">A #InfXmlConnection.</doc>
            <type name="Infinity.XmlConnection" c:type="InfXmlConnection*"/>
          </parameter>
          <parameter name="seq_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="infc-session-proxy.c"
                 line="1132">A sequence identifier for @connection. Ignored if @connection
is %NULL.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="connection"
                transfer-ownership="none"
                getter="get_connection">
        <type name="Infinity.XmlConnection"/>
      </property>
      <property name="subscription-group"
                transfer-ownership="none"
                getter="get_subscription_group">
        <type name="Infinity.CommunicationJoinedGroup"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="SessionProxyClass"
            c:type="InfcSessionProxyClass"
            glib:is-gtype-struct-for="SessionProxy">
      <doc xml:space="preserve"
           filename="infc-session-proxy.h"
           line="39">This structure contains virtual functions of the #InfcSessionProxy class.</doc>
      <source-position filename="infc-session-proxy.h" line="58"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="translate_error">
        <doc xml:space="preserve"
             filename="infc-session-proxy.h"
             line="41">Virtual function to transform an error domain and code
into a #GError object. If the domain and code are known, this allows to
show a localized error message to the user, independent from the language
the server uses in the error message that went over the wire.</doc>
        <callback name="translate_error">
          <source-position filename="infc-session-proxy.h" line="55"/>
          <return-value transfer-ownership="full">
            <type name="GLib.Error" c:type="GError*"/>
          </return-value>
          <parameters>
            <parameter name="session" transfer-ownership="none">
              <type name="SessionProxy" c:type="InfcSessionProxy*"/>
            </parameter>
            <parameter name="domain" transfer-ownership="none">
              <type name="GLib.Quark" c:type="GQuark"/>
            </parameter>
            <parameter name="code" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <docsection name="infc-browser">
      <doc xml:space="preserve"
           filename="infc-browser.c"
           line="20">The #InfcBrowser is used to browse a remote directory and can be used
to subscribe to sessions. #InfcBrowser implements the #InfBrowser
interface, through which most operations are performed.</doc>
    </docsection>
    <docsection name="infc-progress-request">
      <doc xml:space="preserve"
           filename="infc-progress-request.c"
           line="20">This class represents a request which consists of multiple steps and
for which progress on the overall operation is reported.</doc>
    </docsection>
    <docsection name="infc-request">
      <doc xml:space="preserve"
           filename="infc-request.c"
           line="20">#InfcRequest represents an asynchronous operation on the client side,
waiting for a reply from the server.</doc>
    </docsection>
    <docsection name="infc-request-manager">
      <doc xml:space="preserve"
           filename="infc-request-manager.c"
           line="20">This class keeps track of requests sent by #InfcBrowser and
#InfcSessionProxy (typically via the #InfBrowser and #InfSessionProxy
APIs). It is used internally by #InfcBrowser and #InfcSessionProxy, and
usually end-users of the libinfinity API do not need to use this class
directly.

Requests can be added with the infc_request_manager_add_request() and
infc_request_manager_add_request_valist() methods and retrieved back via
their unique seq number with infc_request_manager_get_request_by_seq(). In
addition to this basic API, there are various convenience functions
available as well.</doc>
    </docsection>
    <docsection name="infc-session-proxy">
      <doc xml:space="preserve"
           filename="infc-session-proxy.c"
           line="20">#InfcSessionProxy is a manager for #InfSession that is specific for the
client side. The #InfcSessionProxy manages exactly one #InfSession. It is
usually created by #InfcBrowser when a subscription to a node is made.

#InfcSessionProxy allows to perform client-specific operations for the
session it manages, such as joining a user. In addition it handles requests
made by its counterpart, #InfdSessionProxy, for the server side, such as
remote user joins and forced session closure.

#InfcSessionProxy implements the #InfSessionProxy interface, which can be
used to access the underlying #InfSession or to join a user.</doc>
    </docsection>
  </namespace>
</repository>
