<?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:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="libxml2" version="2.0"/>
  <package name="libedataserver-1.2"/>
  <c:include name="libedataserver/e-account.h"/>
  <c:include name="libedataserver/e-source.h"/>
  <namespace name="EDataServer"
             version="1.2"
             shared-library="libedataserver-1.2.so.16.0"
             c:identifier-prefixes="E"
             c:symbol-prefixes="e">
    <class name="Account"
           c:symbol-prefix="account"
           c:type="EAccount"
           parent="GObject.Object"
           glib:type-name="EAccount"
           glib:get-type="e_account_get_type"
           glib:type-struct="AccountClass">
      <constructor name="new" c:identifier="e_account_new">
        <doc xml:whitespace="preserve">added to an #EAccountList.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a blank new account which can be filled in and</doc>
          <type name="Account" c:type="EAccount*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_xml" c:identifier="e_account_new_from_xml">
        <doc xml:whitespace="preserve">if @xml could not be parsed as valid account data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #EAccount based on the data in @xml, or %NULL</doc>
          <type name="Account" c:type="EAccount*"/>
        </return-value>
        <parameters>
          <parameter name="xml" transfer-ownership="none">
            <doc xml:whitespace="preserve">an XML account description</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="uid_from_xml" c:identifier="e_account_uid_from_xml">
        <doc xml:whitespace="preserve">(or %NULL if @xml could not be parsed or did not contain a uid).
The caller must free this string.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the permanent UID of the account described by @xml</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="xml" transfer-ownership="none">
            <doc xml:whitespace="preserve">an XML account description</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="field" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_bool"
              c:identifier="e_account_get_bool"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type c:type="e_account_item_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_int"
              c:identifier="e_account_get_int"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type c:type="e_account_item_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="e_account_get_string"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type c:type="e_account_item_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="import" c:identifier="e_account_import">
        <doc xml:whitespace="preserve">Import the settings from @src to @dest.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src" transfer-ownership="none">
            <doc xml:whitespace="preserve">source account object</doc>
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bool"
              c:identifier="e_account_set_bool"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type c:type="e_account_item_t"/>
          </parameter>
          <parameter name="v_bool" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_from_xml" c:identifier="e_account_set_from_xml">
        <doc xml:whitespace="preserve">Changes @account to match @xml.

already matched @xml or @xml could not be parsed</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @account was changed, %FALSE if @account</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="xml" transfer-ownership="none">
            <doc xml:whitespace="preserve">an XML account description.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_int"
              c:identifier="e_account_set_int"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type c:type="e_account_item_t"/>
          </parameter>
          <parameter name="v_int" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string"
              c:identifier="e_account_set_string"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type c:type="e_account_item_t"/>
          </parameter>
          <parameter name="v_string" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_xml" c:identifier="e_account_to_xml">
        <doc xml:whitespace="preserve">must free.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">an XML representation of @account, which the caller</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="writable"
              c:identifier="e_account_writable"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type c:type="e_account_item_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="writable_option" c:identifier="e_account_writable_option">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="protocol" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="option" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="name">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uid">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="enabled">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="id" introspectable="0">
        <type c:type="EAccountIdentity*"/>
      </field>
      <field name="source" introspectable="0">
        <type c:type="EAccountService*"/>
      </field>
      <field name="transport" introspectable="0">
        <type c:type="EAccountService*"/>
      </field>
      <field name="drafts_folder_uri">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="sent_folder_uri">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="templates_folder_uri">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="always_cc">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="cc_addrs">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="always_bcc">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="bcc_addrs">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="receipt_policy">
        <type name="AccountReceiptPolicy" c:type="EAccountReceiptPolicy"/>
      </field>
      <field name="pgp_key">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="pgp_hash_algorithm">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="pgp_encrypt_to_self">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pgp_always_sign">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pgp_no_imip_sign">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pgp_always_trust">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="parent_uid">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="smime_sign_key">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="smime_encrypt_key">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="smime_hash_algorithm">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="smime_sign_default">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="smime_encrypt_to_self">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="smime_encrypt_default">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="AccountClass"
            c:type="EAccountClass"
            glib:is-gtype-struct-for="Account">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="account" transfer-ownership="none">
              <type name="Account" c:type="EAccount*"/>
            </parameter>
            <parameter name="field" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="AccountList"
           c:symbol-prefix="account_list"
           c:type="EAccountList"
           parent="List"
           glib:type-name="EAccountList"
           glib:get-type="e_account_list_get_type"
           glib:type-struct="AccountListClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <constructor name="new"
                   c:identifier="e_account_list_new"
                   introspectable="0">
        <doc xml:whitespace="preserve">Reads the list of accounts from @client and listens for changes.
Will emit %account_added, %account_changed, and %account_removed
signals according to notifications from GConf.

You can modify the list using e_list_append(), e_list_remove(), and
e_iterator_delete(). After adding, removing, or changing accounts,
you must call e_account_list_save() to push the changes back to
GConf.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the list of accounts</doc>
          <type name="AccountList" c:type="EAccountList*"/>
        </return-value>
        <parameters>
          <parameter name="client" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GConfClient</doc>
            <type c:type="GConfClient*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="account_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="account" transfer-ownership="none">
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="account_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="account" transfer-ownership="none">
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="account_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="account" transfer-ownership="none">
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="account_has_proxies"
              c:identifier="e_account_list_account_has_proxies">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="account" transfer-ownership="none">
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add" c:identifier="e_account_list_add">
        <doc xml:whitespace="preserve">Adds @account to @account_list and emits the
#EAccountList::account-added signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="account" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #EAccount</doc>
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </method>
      <method name="change" c:identifier="e_account_list_change">
        <doc xml:whitespace="preserve">Emits the #EAccountList::account-changed signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="account" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #EAccount</doc>
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </method>
      <method name="construct"
              c:identifier="e_account_list_construct"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="client" transfer-ownership="none">
            <type c:type="GConfClient*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find"
              c:identifier="e_account_list_find"
              introspectable="0">
        <doc xml:whitespace="preserve">Perform a search of @account_list on a single key.

@type must be set from one of the following search types:
E_ACCOUNT_FIND_NAME - Find an account by account name.
E_ACCOUNT_FIND_ID_NAME - Find an account by the owner's identity name.
E_ACCOUNT_FIND_ID_ADDRESS - Find an account by the owner's identity address.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The account or %NULL if it doesn't exist.</doc>
          <type name="Account" c:type="EAccount*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">type of search</doc>
            <type c:type="e_account_find_t"/>
          </parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">the search key</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default" c:identifier="e_account_list_get_default">
        <doc xml:whitespace="preserve">Get the default #EAccount.  If no default is specified, or the default
has become stale, then the first account is made the default.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the default #EAccount, or %NULL if no accounts are defined.</doc>
          <type name="Account" c:type="EAccount*"/>
        </return-value>
      </method>
      <method name="prune_proxies" c:identifier="e_account_list_prune_proxies">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="remove" c:identifier="e_account_list_remove">
        <doc xml:whitespace="preserve">Removes @account from @account list, and emits the
#EAccountList::account-removed signal.  If @account was the default
account, then the first account in @account_list becomes the new default.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="account" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #EAccount</doc>
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_account_proxies"
              c:identifier="e_account_list_remove_account_proxies">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="account" transfer-ownership="none">
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save" c:identifier="e_account_list_save">
        <doc xml:whitespace="preserve">Saves @account_list to GConf. Signals will be emitted for changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set_default" c:identifier="e_account_list_set_default">
        <doc xml:whitespace="preserve">Set the @account to be the default account in @account_list.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="account" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #EAccount</doc>
            <type name="Account" c:type="EAccount*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="List" c:type="EList"/>
      </field>
      <field name="priv">
        <type name="AccountListPrivate" c:type="EAccountListPrivate*"/>
      </field>
      <glib:signal name="account-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Account"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="account-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Account"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="account-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Account"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="AccountListClass"
            c:type="EAccountListClass"
            glib:is-gtype-struct-for="AccountList">
      <field name="parent_class">
        <type name="ListClass" c:type="EListClass"/>
      </field>
      <field name="account_added">
        <callback name="account_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="account_list" transfer-ownership="none">
              <type name="AccountList" c:type="EAccountList*"/>
            </parameter>
            <parameter name="account" transfer-ownership="none">
              <type name="Account" c:type="EAccount*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="account_changed">
        <callback name="account_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="account_list" transfer-ownership="none">
              <type name="AccountList" c:type="EAccountList*"/>
            </parameter>
            <parameter name="account" transfer-ownership="none">
              <type name="Account" c:type="EAccount*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="account_removed">
        <callback name="account_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="account_list" transfer-ownership="none">
              <type name="AccountList" c:type="EAccountList*"/>
            </parameter>
            <parameter name="account" transfer-ownership="none">
              <type name="Account" c:type="EAccount*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="AccountListPrivate"
            c:type="EAccountListPrivate"
            disguised="1">
    </record>
    <enumeration name="AccountReceiptPolicy" c:type="EAccountReceiptPolicy">
      <member name="never" value="0" c:identifier="E_ACCOUNT_RECEIPT_NEVER"/>
      <member name="ask" value="1" c:identifier="E_ACCOUNT_RECEIPT_ASK"/>
      <member name="always" value="2" c:identifier="E_ACCOUNT_RECEIPT_ALWAYS"/>
    </enumeration>
    <constant name="CREDENTIALS_KEY_AUTH_METHOD"
              value="auth-method"
              c:type="E_CREDENTIALS_KEY_AUTH_METHOD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CREDENTIALS_KEY_FOREIGN_REQUEST"
              value="foreign-request"
              c:type="E_CREDENTIALS_KEY_FOREIGN_REQUEST">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CREDENTIALS_KEY_PASSWORD"
              value="password"
              c:type="E_CREDENTIALS_KEY_PASSWORD">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CREDENTIALS_KEY_PROMPT_FLAGS"
              value="prompt-flags"
              c:type="E_CREDENTIALS_KEY_PROMPT_FLAGS">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CREDENTIALS_KEY_PROMPT_KEY"
              value="prompt-key"
              c:type="E_CREDENTIALS_KEY_PROMPT_KEY">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CREDENTIALS_KEY_PROMPT_REASON"
              value="prompt-reason"
              c:type="E_CREDENTIALS_KEY_PROMPT_REASON">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CREDENTIALS_KEY_PROMPT_TEXT"
              value="prompt-text"
              c:type="E_CREDENTIALS_KEY_PROMPT_TEXT">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CREDENTIALS_KEY_PROMPT_TITLE"
              value="prompt-title"
              c:type="E_CREDENTIALS_KEY_PROMPT_TITLE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="CREDENTIALS_KEY_USERNAME"
              value="username"
              c:type="E_CREDENTIALS_KEY_USERNAME">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Client"
           c:symbol-prefix="client"
           c:type="EClient"
           version="3.2"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="EClient"
           glib:get-type="e_client_get_type"
           glib:type-struct="ClientClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <function name="error_create"
                c:identifier="e_client_error_create"
                version="3.2">
        <doc xml:whitespace="preserve">@code. If the @custom_msg is NULL, then the error message is
the one returned from e_client_error_to_string() for the @code,
otherwise the given message is used.

Returned pointer should be freed with g_error_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GError containing an E_CLIENT_ERROR of the given</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </return-value>
        <parameters>
          <parameter name="code" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #EClientError code to create</doc>
            <type name="ClientError" c:type="EClientError"/>
          </parameter>
          <parameter name="custom_msg" transfer-ownership="none">
            <doc xml:whitespace="preserve">custom message to use for the error; can be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="error_quark" c:identifier="e_client_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <function name="error_to_string"
                c:identifier="e_client_error_to_string"
                version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="code" transfer-ownership="none">
            <type name="ClientError" c:type="EClientError"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_copy_object_slist"
                c:identifier="e_client_util_copy_object_slist"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Copies GSList of GObject-s at the end of @copy_to.

Returned pointer can be freed with e_client_util_free_object_slist().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">New head of @copy_to.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="copy_to" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to copy; can be NULL</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:whitespace="preserve">GSList of GObject-s to be copied</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="util_copy_string_slist"
                c:identifier="e_client_util_copy_string_slist"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Copies GSList of strings at the end of @copy_to.

Returned pointer can be freed with e_client_util_free_string_slist().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">New head of @copy_to.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="copy_to" transfer-ownership="none">
            <doc xml:whitespace="preserve">Where to copy; can be NULL</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
          <parameter name="strings" transfer-ownership="none">
            <doc xml:whitespace="preserve">GSList of strings to be copied</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="util_free_object_slist"
                c:identifier="e_client_util_free_object_slist"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Calls g_object_unref() on each member of @objects and then frees
also @objects itself.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="objects" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GSList of #GObject-s</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="util_free_string_slist"
                c:identifier="e_client_util_free_string_slist"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Frees memory previously allocated by e_client_util_strv_to_slist().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="strings" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GSList of strings (gchar *)</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="util_parse_comma_strings"
                c:identifier="e_client_util_parse_comma_strings"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Parses comma-separated list of values into #GSList.

corresponding to values parsed from @strings.
Free returned pointer with e_client_util_free_string_slist().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Newly allocated #GSList of newly allocated strings</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="strings" transfer-ownership="none">
            <doc xml:whitespace="preserve">string of comma-separated values</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_slist_to_strv"
                c:identifier="e_client_util_slist_to_strv"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Convert list of strings into NULL-terminates array of strings.

Returned pointer should be freed with g_strfreev().

Note: Pair function for this is e_client_util_strv_to_slist().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Newly allocated NULL-terminated array of strings.</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="strings" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GSList of strings (const gchar *)</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="util_strv_to_slist"
                c:identifier="e_client_util_strv_to_slist"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">Convert NULL-terminated array of strings to a list of strings.

Returned pointer should be freed with e_client_util_free_string_slist().

Note: Pair function for this is e_client_util_slist_to_strv().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Newly allocated #GSList of newly allocated strings.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="strv" transfer-ownership="none">
            <doc xml:whitespace="preserve">a NULL-terminated array of strings (const gchar *)</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_unwrap_dbus_error"
                c:identifier="e_client_util_unwrap_dbus_error"
                version="3.2">
        <doc xml:whitespace="preserve">The function takes a @dbus_error and tries to find a match in @known_errors
for it, if it is a G_IO_ERROR, G_IO_ERROR_DBUS_ERROR. If it is anything else
then the @dbus_error is moved to @client_error.

The @fail_when_none_matched influences behaviour. If it's %TRUE, and none of
@known_errors matches, or this is not a G_IO_ERROR_DBUS_ERROR, then %FALSE
is returned and the @client_error is left without change. Otherwise, the
@fail_when_none_matched is %FALSE, the error is always processed and will
result in E_CLIENT_ERROR, E_CLIENT_ERROR_OTHER_ERROR if none of @known_error
matches.


Note: The @dbus_error is automatically freed if returned %TRUE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Whether was @dbus_error processed into @client_error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="dbus_error" transfer-ownership="none">
            <doc xml:whitespace="preserve">DBus #GError to unwrap</doc>
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
          <parameter name="client_error"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Resulting #GError; can be %NULL</doc>
            <type name="GLib.Error" c:type="GError**"/>
          </parameter>
          <parameter name="known_errors" transfer-ownership="none">
            <doc xml:whitespace="preserve">List of known errors against which try to match</doc>
            <type name="ClientErrorsList" c:type="EClientErrorsList*"/>
          </parameter>
          <parameter name="known_errors_count" transfer-ownership="none">
            <doc xml:whitespace="preserve">How many items are stored in @known_errors</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="known_errors_domain" transfer-ownership="none">
            <doc xml:whitespace="preserve">Error domain for @known_errors</doc>
            <type name="GLib.Quark" c:type="GQuark"/>
          </parameter>
          <parameter name="fail_when_none_matched" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether to fail when none of @known_errors matches</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="authenticate">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="credentials" transfer-ownership="none">
            <type name="Credentials" c:type="ECredentials*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="backend_died">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="backend_error">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error_msg" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="backend_property_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="prop_value" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_backend_property"
                      invoker="get_backend_property"
                      version="3.2">
        <doc xml:whitespace="preserve">Queries @client's backend for a property of name @prop_name.
The call is finished by e_client_get_backend_property_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">property name, whose value to retrieve; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_backend_property_finish"
                      invoker="get_backend_property_finish"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_get_backend_property().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="prop_value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Retrieved backend property value; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_backend_property_sync"
                      invoker="get_backend_property_sync"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Queries @client's backend for a property of name @prop_name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">property name, whose value to retrieve; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="prop_value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Retrieved backend property value; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_dbus_proxy" introspectable="0">
        <return-value>
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </return-value>
      </virtual-method>
      <virtual-method name="handle_authentication">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="credentials" transfer-ownership="none">
            <type name="Credentials" c:type="ECredentials*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="open" invoker="open" version="3.2">
        <doc xml:whitespace="preserve">Opens the @client, making it ready for queries and other operations.
The call is finished by e_client_open_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="only_if_exists" transfer-ownership="none">
            <doc xml:whitespace="preserve">if %TRUE, fail if this book doesn't already exist, otherwise create it first</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="3">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="open_finish"
                      invoker="open_finish"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_open().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="open_sync"
                      invoker="open_sync"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Opens the @client, making it ready for queries and other operations.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="only_if_exists" transfer-ownership="none">
            <doc xml:whitespace="preserve">if %TRUE, fail if this book doesn't already exist, otherwise create it first</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="refresh" invoker="refresh" version="3.2">
        <doc xml:whitespace="preserve">Initiates refresh on the @client. Finishing the method doesn't mean
that the refresh is done, backend only notifies whether it started
refreshing or not. Use e_client_check_refresh_supported() to check
whether the backend supports this method.
The call is finished by e_client_refresh_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="refresh_finish"
                      invoker="refresh_finish"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_refresh().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="refresh_sync"
                      invoker="refresh_sync"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Initiates refresh on the @client. Finishing the method doesn't mean
that the refresh is done, backend only notifies whether it started
refreshing or not. Use e_client_check_refresh_supported() to check
whether the backend supports this method.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove" invoker="remove" version="3.2">
        <doc xml:whitespace="preserve">Removes the backing data for this #EClient. For example, with the file
backend this deletes the database file. You cannot get it back!
The call is finished by e_client_remove_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_finish"
                      invoker="remove_finish"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_remove().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_sync"
                      invoker="remove_sync"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Removes the backing data for this #EClient. For example, with the file
backend this deletes the database file. You cannot get it back!</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="retrieve_capabilities"
                      invoker="retrieve_capabilities"
                      version="3.2">
        <doc xml:whitespace="preserve">Initiates retrieval of capabilities on the @client. This is usually
required only once, after the @client is opened. The returned value
is cached and any subsequent call of e_client_get_capabilities() and
e_client_check_capability() is using the cached value.
The call is finished by e_client_retrieve_capabilities_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="2">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="retrieve_capabilities_finish"
                      invoker="retrieve_capabilities_finish"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_retrieve_capabilities().
Returned value of @capabilities should be freed with g_free(),
when no longer needed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="capabilities"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Comma-separated list of capabilities of the @client</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="retrieve_capabilities_sync"
                      invoker="retrieve_capabilities_sync"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Initiates retrieval of capabilities on the @client. This is usually
required only once, after the @client is opened. The returned value
is cached and any subsequent call of e_client_get_capabilities() and
e_client_check_capability() is using the cached value. Returned value
of @capabilities should be freed with g_free(), when no longer needed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="capabilities"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Comma-separated list of capabilities of the @client</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_backend_property"
                      invoker="set_backend_property"
                      version="3.2">
        <doc xml:whitespace="preserve">Sets @client's backend property of name @prop_name
to value @prop_value. The call is finished
by e_client_set_backend_property_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">property name, whose value to change; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="prop_value" transfer-ownership="none">
            <doc xml:whitespace="preserve">property value, to set; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none" closure="4">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_backend_property_finish"
                      invoker="set_backend_property_finish"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_set_backend_property().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_backend_property_sync"
                      invoker="set_backend_property_sync"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Sets @client's backend property of name @prop_name
to value @prop_value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">property name, whose value to change; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="prop_value" transfer-ownership="none">
            <doc xml:whitespace="preserve">property value, to set; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unwrap_dbus_error"
                      invoker="unwrap_dbus_error"
                      version="3.2"
                      throws="1">
        <doc xml:whitespace="preserve">Unwraps D-Bus error to local error. @dbus_error is automatically freed.
@dbus_erorr and @out_error can point to the same variable.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dbus_error" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GError returned bu D-Bus</doc>
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="cancel_all"
              c:identifier="e_client_cancel_all"
              version="3.2">
        <doc xml:whitespace="preserve">Cancels all pending operations started on @client.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="check_capability"
              c:identifier="e_client_check_capability"
              version="3.2">
        <doc xml:whitespace="preserve">Check if backend supports particular capability.
To get all capabilities use e_client_get_capabilities().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#GSList of const strings of capabilities</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="capability" transfer-ownership="none">
            <doc xml:whitespace="preserve">a capability</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_refresh_supported"
              c:identifier="e_client_check_refresh_supported"
              version="3.2">
        <doc xml:whitespace="preserve">Checks whether a client supports explicit refreshing
(see e_client_refresh()).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the client supports refreshing, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_backend_property"
              c:identifier="e_client_get_backend_property"
              version="3.2">
        <doc xml:whitespace="preserve">Queries @client's backend for a property of name @prop_name.
The call is finished by e_client_get_backend_property_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">property name, whose value to retrieve; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_backend_property_finish"
              c:identifier="e_client_get_backend_property_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_get_backend_property().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="prop_value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Retrieved backend property value; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_backend_property_sync"
              c:identifier="e_client_get_backend_property_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Queries @client's backend for a property of name @prop_name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">property name, whose value to retrieve; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="prop_value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Retrieved backend property value; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_capabilities"
              c:identifier="e_client_get_capabilities"
              version="3.2">
        <doc xml:whitespace="preserve">Get list of strings with capabilities advertised by a backend.
This list, together with inner strings, is owned by the @client.
To check for individual capabilities use e_client_check_capability().

of capabilities</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#GSList of const strings</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </method>
      <method name="get_source"
              c:identifier="e_client_get_source"
              version="3.2">
        <doc xml:whitespace="preserve">Get the #ESource that this client has assigned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The source.</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
      </method>
      <method name="get_uri" c:identifier="e_client_get_uri" version="3.2">
        <doc xml:whitespace="preserve">Get the URI that this client has assigned. This string should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The URI.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="is_online" c:identifier="e_client_is_online" version="3.2">
        <doc xml:whitespace="preserve">Check if this @client is connected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if this @client is connected, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_opened"
              c:identifier="e_client_is_opened"
              version="3.2.">
        <doc xml:whitespace="preserve">Check if this @client is fully opened. This includes
everything from e_client_open() call up to the authentication,
if required by a backend. Client cannot do any other operation
during the opening phase except of authenticate or cancel it.
Every other operation results in an %E_CLIENT_ERROR_BUSY error.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if this @client is fully opened, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_readonly"
              c:identifier="e_client_is_readonly"
              version="3.2">
        <doc xml:whitespace="preserve">Check if this @client is read-only.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if this @client is read-only, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="open" c:identifier="e_client_open" version="3.2">
        <doc xml:whitespace="preserve">Opens the @client, making it ready for queries and other operations.
The call is finished by e_client_open_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="only_if_exists" transfer-ownership="none">
            <doc xml:whitespace="preserve">if %TRUE, fail if this book doesn't already exist, otherwise create it first</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_finish"
              c:identifier="e_client_open_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_open().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="open_sync"
              c:identifier="e_client_open_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Opens the @client, making it ready for queries and other operations.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="only_if_exists" transfer-ownership="none">
            <doc xml:whitespace="preserve">if %TRUE, fail if this book doesn't already exist, otherwise create it first</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh" c:identifier="e_client_refresh" version="3.2">
        <doc xml:whitespace="preserve">Initiates refresh on the @client. Finishing the method doesn't mean
that the refresh is done, backend only notifies whether it started
refreshing or not. Use e_client_check_refresh_supported() to check
whether the backend supports this method.
The call is finished by e_client_refresh_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh_finish"
              c:identifier="e_client_refresh_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_refresh().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="refresh_sync"
              c:identifier="e_client_refresh_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Initiates refresh on the @client. Finishing the method doesn't mean
that the refresh is done, backend only notifies whether it started
refreshing or not. Use e_client_check_refresh_supported() to check
whether the backend supports this method.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="e_client_remove" version="3.2">
        <doc xml:whitespace="preserve">Removes the backing data for this #EClient. For example, with the file
backend this deletes the database file. You cannot get it back!
The call is finished by e_client_remove_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_finish"
              c:identifier="e_client_remove_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_remove().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_sync"
              c:identifier="e_client_remove_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Removes the backing data for this #EClient. For example, with the file
backend this deletes the database file. You cannot get it back!</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="retrieve_capabilities"
              c:identifier="e_client_retrieve_capabilities"
              version="3.2">
        <doc xml:whitespace="preserve">Initiates retrieval of capabilities on the @client. This is usually
required only once, after the @client is opened. The returned value
is cached and any subsequent call of e_client_get_capabilities() and
e_client_check_capability() is using the cached value.
The call is finished by e_client_retrieve_capabilities_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="retrieve_capabilities_finish"
              c:identifier="e_client_retrieve_capabilities_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_retrieve_capabilities().
Returned value of @capabilities should be freed with g_free(),
when no longer needed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="capabilities"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Comma-separated list of capabilities of the @client</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="retrieve_capabilities_sync"
              c:identifier="e_client_retrieve_capabilities_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Initiates retrieval of capabilities on the @client. This is usually
required only once, after the @client is opened. The returned value
is cached and any subsequent call of e_client_get_capabilities() and
e_client_check_capability() is using the cached value. Returned value
of @capabilities should be freed with g_free(), when no longer needed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="capabilities"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Comma-separated list of capabilities of the @client</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_backend_property"
              c:identifier="e_client_set_backend_property"
              version="3.2">
        <doc xml:whitespace="preserve">Sets @client's backend property of name @prop_name
to value @prop_value. The call is finished
by e_client_set_backend_property_finish() from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">property name, whose value to change; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="prop_value" transfer-ownership="none">
            <doc xml:whitespace="preserve">property value, to set; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_backend_property_finish"
              c:identifier="e_client_set_backend_property_finish"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Finishes previous call of e_client_set_backend_property().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_backend_property_sync"
              c:identifier="e_client_set_backend_property_sync"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Sets @client's backend property of name @prop_name
to value @prop_value.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="prop_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">property name, whose value to change; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="prop_value" transfer-ownership="none">
            <doc xml:whitespace="preserve">property value, to set; cannot be %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unwrap_dbus_error"
              c:identifier="e_client_unwrap_dbus_error"
              version="3.2"
              throws="1">
        <doc xml:whitespace="preserve">Unwraps D-Bus error to local error. @dbus_error is automatically freed.
@dbus_erorr and @out_error can point to the same variable.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dbus_error" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GError returned bu D-Bus</doc>
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </method>
      <property name="capabilities" transfer-ownership="none">
        <type name="gpointer"/>
      </property>
      <property name="online" writable="1" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="opened" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="readonly" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="source"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Source"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ClientPrivate" c:type="EClientPrivate*"/>
      </field>
      <glib:signal name="authenticate" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="backend-died" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="backend-error" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="backend-property-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="opened" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ClientClass"
            c:type="EClientClass"
            glib:is-gtype-struct-for="Client">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="get_dbus_proxy" introspectable="0">
        <callback name="get_dbus_proxy" introspectable="0">
          <return-value>
            <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unwrap_dbus_error">
        <callback name="unwrap_dbus_error" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="dbus_error" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GError returned bu D-Bus</doc>
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="retrieve_capabilities">
        <callback name="retrieve_capabilities">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       allow-none="1"
                       scope="async"
                       closure="3">
              <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">user data for the @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="retrieve_capabilities_finish">
        <callback name="retrieve_capabilities_finish" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GAsyncResult</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
            <parameter name="capabilities"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:whitespace="preserve">Comma-separated list of capabilities of the @client</doc>
              <type name="utf8" c:type="gchar**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="retrieve_capabilities_sync">
        <callback name="retrieve_capabilities_sync" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="capabilities"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:whitespace="preserve">Comma-separated list of capabilities of the @client</doc>
              <type name="utf8" c:type="gchar**"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_backend_property">
        <callback name="get_backend_property">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="prop_name" transfer-ownership="none">
              <doc xml:whitespace="preserve">property name, whose value to retrieve; cannot be %NULL</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">user data for the @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_backend_property_finish">
        <callback name="get_backend_property_finish" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GAsyncResult</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
            <parameter name="prop_value"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:whitespace="preserve">Retrieved backend property value; cannot be %NULL</doc>
              <type name="utf8" c:type="gchar**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_backend_property_sync">
        <callback name="get_backend_property_sync" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="prop_name" transfer-ownership="none">
              <doc xml:whitespace="preserve">property name, whose value to retrieve; cannot be %NULL</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="prop_value"
                       direction="out"
                       caller-allocates="0"
                       transfer-ownership="full">
              <doc xml:whitespace="preserve">Retrieved backend property value; cannot be %NULL</doc>
              <type name="utf8" c:type="gchar**"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_backend_property">
        <callback name="set_backend_property">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="prop_name" transfer-ownership="none">
              <doc xml:whitespace="preserve">property name, whose value to change; cannot be %NULL</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="prop_value" transfer-ownership="none">
              <doc xml:whitespace="preserve">property value, to set; cannot be %NULL</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       allow-none="1"
                       scope="async"
                       closure="5">
              <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="5">
              <doc xml:whitespace="preserve">user data for the @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_backend_property_finish">
        <callback name="set_backend_property_finish" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GAsyncResult</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_backend_property_sync">
        <callback name="set_backend_property_sync" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="prop_name" transfer-ownership="none">
              <doc xml:whitespace="preserve">property name, whose value to change; cannot be %NULL</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="prop_value" transfer-ownership="none">
              <doc xml:whitespace="preserve">property value, to set; cannot be %NULL</doc>
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="open">
        <callback name="open">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="only_if_exists" transfer-ownership="none">
              <doc xml:whitespace="preserve">if %TRUE, fail if this book doesn't already exist, otherwise create it first</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="4">
              <doc xml:whitespace="preserve">user data for the @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="open_finish">
        <callback name="open_finish" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GAsyncResult</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="open_sync">
        <callback name="open_sync" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="only_if_exists" transfer-ownership="none">
              <doc xml:whitespace="preserve">if %TRUE, fail if this book doesn't already exist, otherwise create it first</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove">
        <callback name="remove">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       allow-none="1"
                       scope="async"
                       closure="3">
              <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">user data for the @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_finish">
        <callback name="remove_finish" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GAsyncResult</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_sync">
        <callback name="remove_sync" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="refresh">
        <callback name="refresh">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       allow-none="1"
                       scope="async"
                       closure="3">
              <doc xml:whitespace="preserve">callback to call when a result is ready</doc>
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data" transfer-ownership="none" closure="3">
              <doc xml:whitespace="preserve">user data for the @callback</doc>
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="refresh_finish">
        <callback name="refresh_finish" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:whitespace="preserve">a #GAsyncResult</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="refresh_sync">
        <callback name="refresh_sync" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">%TRUE if successful, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <doc xml:whitespace="preserve">a #GCancellable; can be %NULL</doc>
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="handle_authentication">
        <callback name="handle_authentication">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="credentials" transfer-ownership="none">
              <type name="Credentials" c:type="ECredentials*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="authenticate">
        <callback name="authenticate">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="credentials" transfer-ownership="none">
              <type name="Credentials" c:type="ECredentials*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="opened">
        <callback name="opened">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="backend_error">
        <callback name="backend_error">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="error_msg" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="backend_died">
        <callback name="backend_died">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="backend_property_changed">
        <callback name="backend_property_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="EClient*"/>
            </parameter>
            <parameter name="prop_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="prop_value" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="ClientError" version="3.2" c:type="EClientError">
      <doc xml:whitespace="preserve">FIXME Document each code.

Error codes for #EClient operations.</doc>
      <member name="invalid_arg"
              value="0"
              c:identifier="E_CLIENT_ERROR_INVALID_ARG"/>
      <member name="busy" value="1" c:identifier="E_CLIENT_ERROR_BUSY"/>
      <member name="source_not_loaded"
              value="2"
              c:identifier="E_CLIENT_ERROR_SOURCE_NOT_LOADED"/>
      <member name="source_already_loaded"
              value="3"
              c:identifier="E_CLIENT_ERROR_SOURCE_ALREADY_LOADED"/>
      <member name="authentication_failed"
              value="4"
              c:identifier="E_CLIENT_ERROR_AUTHENTICATION_FAILED"/>
      <member name="authentication_required"
              value="5"
              c:identifier="E_CLIENT_ERROR_AUTHENTICATION_REQUIRED"/>
      <member name="repository_offline"
              value="6"
              c:identifier="E_CLIENT_ERROR_REPOSITORY_OFFLINE"/>
      <member name="offline_unavailable"
              value="7"
              c:identifier="E_CLIENT_ERROR_OFFLINE_UNAVAILABLE"/>
      <member name="permission_denied"
              value="8"
              c:identifier="E_CLIENT_ERROR_PERMISSION_DENIED"/>
      <member name="cancelled"
              value="9"
              c:identifier="E_CLIENT_ERROR_CANCELLED"/>
      <member name="could_not_cancel"
              value="10"
              c:identifier="E_CLIENT_ERROR_COULD_NOT_CANCEL"/>
      <member name="not_supported"
              value="11"
              c:identifier="E_CLIENT_ERROR_NOT_SUPPORTED"/>
      <member name="tls_not_available"
              value="12"
              c:identifier="E_CLIENT_ERROR_TLS_NOT_AVAILABLE"/>
      <member name="unsupported_authentication_method"
              value="13"
              c:identifier="E_CLIENT_ERROR_UNSUPPORTED_AUTHENTICATION_METHOD"/>
      <member name="search_size_limit_exceeded"
              value="14"
              c:identifier="E_CLIENT_ERROR_SEARCH_SIZE_LIMIT_EXCEEDED"/>
      <member name="search_time_limit_exceeded"
              value="15"
              c:identifier="E_CLIENT_ERROR_SEARCH_TIME_LIMIT_EXCEEDED"/>
      <member name="invalid_query"
              value="16"
              c:identifier="E_CLIENT_ERROR_INVALID_QUERY"/>
      <member name="query_refused"
              value="17"
              c:identifier="E_CLIENT_ERROR_QUERY_REFUSED"/>
      <member name="dbus_error"
              value="18"
              c:identifier="E_CLIENT_ERROR_DBUS_ERROR"/>
      <member name="other_error"
              value="19"
              c:identifier="E_CLIENT_ERROR_OTHER_ERROR"/>
      <member name="not_opened"
              value="20"
              c:identifier="E_CLIENT_ERROR_NOT_OPENED"/>
    </enumeration>
    <record name="ClientErrorsList" c:type="EClientErrorsList" version="3.2">
      <field name="name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="err_code" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
    </record>
    <record name="ClientPrivate" c:type="EClientPrivate" disguised="1">
    </record>
    <record name="Credentials" c:type="ECredentials" version="3.2">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <field name="priv" writable="1">
        <type name="CredentialsPrivate" c:type="ECredentialsPrivate*"/>
      </field>
      <method name="clear" c:identifier="e_credentials_clear" version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="clear_peek"
              c:identifier="e_credentials_clear_peek"
              version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="equal" c:identifier="e_credentials_equal" version="3.2">
        <doc xml:whitespace="preserve">Returns whether two #ECredential structures contain the same keys with
same values.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if they are equal, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="credentials2" transfer-ownership="none">
            <doc xml:whitespace="preserve">another #ECredentials</doc>
            <type name="Credentials" c:type="ECredentials*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal_keys"
              c:identifier="e_credentials_equal_keys"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Returns whether two #ECredentials structures have the same keys. Key names
are NULL-terminated.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the key sets match, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="credentials2" transfer-ownership="none">
            <doc xml:whitespace="preserve">another #ECredentials</doc>
            <type name="Credentials" c:type="ECredentials*"/>
          </parameter>
          <parameter name="key1" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter transfer-ownership="none">
            <varargs>
            </varargs>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="e_credentials_free" version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get" c:identifier="e_credentials_get" version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_key"
              c:identifier="e_credentials_has_key"
              version="3.2">
        <doc xml:whitespace="preserve">Returns whether @credentials contains @key.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @credentials contains @key, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">a key string</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="keys_size"
              c:identifier="e_credentials_keys_size"
              version="3.2">
        <doc xml:whitespace="preserve">Returns the number of keys in @credentials.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the number of keys in @credentials</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="list_keys"
              c:identifier="e_credentials_list_keys"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Returns a newly-allocated #GSList of key names stored in @credentials.
The key names are internal credentials values and should not be modified
or freed.  Free the list with g_slist_free() when no longer needed.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a newly-allocated #GSList of key names</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </method>
      <method name="new_clone"
              c:identifier="e_credentials_new_clone"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value>
          <type name="Credentials" c:type="ECredentials*"/>
        </return-value>
      </method>
      <method name="peek" c:identifier="e_credentials_peek" version="3.2">
        <doc xml:whitespace="preserve">Peeks at the value for @key, in a clear form. The returned value is valid
until free of the @credentials structure or until the key value is rewritten
by e_credentials_set().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the value for @key</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">a key string</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="e_credentials_set" version="3.2">
        <doc xml:whitespace="preserve">Sets value for @key, if @value is %NULL or an empty string then @key is
removed.  The value is supposed to be in a clear form (unencoded).
@key cannot contain colon.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <doc xml:whitespace="preserve">a key string</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">a value string</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_strv"
              c:identifier="e_credentials_to_strv"
              version="3.2"
              introspectable="0">
        <doc xml:whitespace="preserve">Returns %NULL-terminated array of strings with keys and encoded values;
To read them back pass this pointer to e_credentials_new(). As it returns
newly allocated string then this should be freed with g_strfreev() when no
longer needed.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a %NULL-terminated array of key/value strings</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </method>
      <function name="new"
                c:identifier="e_credentials_new"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value>
          <type name="Credentials" c:type="ECredentials*"/>
        </return-value>
      </function>
      <function name="new_args"
                c:identifier="e_credentials_new_args"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value>
          <type name="Credentials" c:type="ECredentials*"/>
        </return-value>
        <parameters>
          <parameter name="key" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter transfer-ownership="none">
            <varargs>
            </varargs>
          </parameter>
        </parameters>
      </function>
      <function name="new_strv"
                c:identifier="e_credentials_new_strv"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value>
          <type name="Credentials" c:type="ECredentials*"/>
        </return-value>
        <parameters>
          <parameter name="strv" transfer-ownership="none">
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_prompt_flags_to_string"
                c:identifier="e_credentials_util_prompt_flags_to_string"
                version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="prompt_flags" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_safe_free_string"
                c:identifier="e_credentials_util_safe_free_string"
                version="3.2">
        <doc xml:whitespace="preserve">FIXME Document me.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="util_string_to_prompt_flags"
                c:identifier="e_credentials_util_string_to_prompt_flags"
                version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="prompt_flags_string" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="CredentialsPrivate"
            c:type="ECredentialsPrivate"
            disguised="1">
    </record>
    <bitfield name="CredentialsPromptFlags"
              version="3.2"
              c:type="ECredentialsPromptFlags">
      <doc xml:whitespace="preserve">FIXME Document me.</doc>
      <member name="remember_never"
              value="0"
              c:identifier="E_CREDENTIALS_PROMPT_FLAG_REMEMBER_NEVER"/>
      <member name="remember_session"
              value="1"
              c:identifier="E_CREDENTIALS_PROMPT_FLAG_REMEMBER_SESSION"/>
      <member name="remember_forever"
              value="2"
              c:identifier="E_CREDENTIALS_PROMPT_FLAG_REMEMBER_FOREVER"/>
      <member name="remember_mask"
              value="15"
              c:identifier="E_CREDENTIALS_PROMPT_FLAG_REMEMBER_MASK"/>
      <member name="secret"
              value="256"
              c:identifier="E_CREDENTIALS_PROMPT_FLAG_SECRET"/>
      <member name="reprompt"
              value="512"
              c:identifier="E_CREDENTIALS_PROMPT_FLAG_REPROMPT"/>
      <member name="online"
              value="1024"
              c:identifier="E_CREDENTIALS_PROMPT_FLAG_ONLINE"/>
      <member name="disable_remember"
              value="2048"
              c:identifier="E_CREDENTIALS_PROMPT_FLAG_DISABLE_REMEMBER"/>
      <member name="passphrase"
              value="4096"
              c:identifier="E_CREDENTIALS_PROMPT_FLAG_PASSPHRASE"/>
    </bitfield>
    <constant name="DEBUG_LOG_DOMAIN_CAL_QUERIES"
              value="CalQueries"
              c:type="E_DEBUG_LOG_DOMAIN_CAL_QUERIES">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEBUG_LOG_DOMAIN_GLOG"
              value="GLog"
              c:type="E_DEBUG_LOG_DOMAIN_GLOG">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="DEBUG_LOG_DOMAIN_USER"
              value="USER"
              c:type="E_DEBUG_LOG_DOMAIN_USER">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <record name="Flag" c:type="EFlag" disguised="1" version="1.12">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <method name="clear" c:identifier="e_flag_clear" version="1.12">
        <doc xml:whitespace="preserve">Unsets @flag.  Subsequent calls to e_flag_wait() or e_flag_timed_wait()
will block until @flag is set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="free" c:identifier="e_flag_free" version="1.12">
        <doc xml:whitespace="preserve">Destroys @flag.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="is_set" c:identifier="e_flag_is_set" version="1.12">
        <doc xml:whitespace="preserve">Returns the state of @flag.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @flag is set</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set" c:identifier="e_flag_set" version="1.12">
        <doc xml:whitespace="preserve">Sets @flag.  All threads waiting on @flag are woken up.  Threads that
call e_flag_wait() or e_flag_timed_wait() once @flag is set will not
block at all.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="timed_wait"
              c:identifier="e_flag_timed_wait"
              version="1.12">
        <doc xml:whitespace="preserve">Blocks until @flag is set, or until the time specified by @abs_time.
If @flag is already set, the function returns immediately.  The return
value indicates the state of @flag after waiting.

If @abs_time is %NULL, e_flag_timed_wait() acts like e_flag_wait().

To easily calculate @abs_time, a combination of g_get_current_time() and
g_time_val_add() can be used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @flag is now set</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="abs_time" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GTimeVal, determining the final time</doc>
            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
          </parameter>
        </parameters>
      </method>
      <method name="wait" c:identifier="e_flag_wait" version="1.12">
        <doc xml:whitespace="preserve">Blocks until @flag is set.  If @flag is already set, the function returns
immediately.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <function name="new"
                c:identifier="e_flag_new"
                version="1.12"
                introspectable="0">
        <doc xml:whitespace="preserve">Creates a new #EFlag object.  It is initially unset.</doc>
        <return-value>
          <doc xml:whitespace="preserve">a new #EFlag</doc>
          <type name="Flag" c:type="EFlag*"/>
        </return-value>
      </function>
    </record>
    <interface name="GdbusAsyncOpKeeper"
               c:symbol-prefix="gdbus_async_op_keeper"
               c:type="EGdbusAsyncOpKeeper"
               glib:type-name="EGdbusAsyncOpKeeper"
               glib:get-type="e_gdbus_async_op_keeper_get_type"
               glib:type-struct="GdbusAsyncOpKeeperInterface">
      <virtual-method name="cancel_op_sync"
                      invoker="cancel_op_sync"
                      throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="in_opid" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_pending_ops"
                      invoker="get_pending_ops"
                      introspectable="0">
        <return-value>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </virtual-method>
      <method name="cancel_op_sync"
              c:identifier="e_gdbus_async_op_keeper_cancel_op_sync"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="in_opid" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_pending_ops"
              c:identifier="e_gdbus_async_op_keeper_create_pending_ops"
              introspectable="0">
        <return-value>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </method>
      <method name="get_pending_ops"
              c:identifier="e_gdbus_async_op_keeper_get_pending_ops"
              introspectable="0">
        <return-value>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </method>
    </interface>
    <record name="GdbusAsyncOpKeeperInterface"
            c:type="EGdbusAsyncOpKeeperInterface"
            glib:is-gtype-struct-for="GdbusAsyncOpKeeper">
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_pending_ops" introspectable="0">
        <callback name="get_pending_ops" introspectable="0">
          <return-value>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cancel_op_sync">
        <callback name="cancel_op_sync" throws="1">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
            </parameter>
            <parameter name="in_opid" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="GdbusCallFinishBoolean"
              c:type="EGdbusCallFinishBoolean"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="GdbusCallFinishString"
              c:type="EGdbusCallFinishString"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="GdbusCallFinishStrv"
              c:type="EGdbusCallFinishStrv"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar***"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="GdbusCallFinishUint"
              c:type="EGdbusCallFinishUint"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_uint" transfer-ownership="none">
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="GdbusCallFinishVoid"
              c:type="EGdbusCallFinishVoid"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="GdbusCallStartBoolean" c:type="EGdbusCallStartBoolean">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="4">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="GdbusCallStartString" c:type="EGdbusCallStartString">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="4">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="GdbusCallStartStrv" c:type="EGdbusCallStartStrv">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="4">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="GdbusCallStartUint" c:type="EGdbusCallStartUint">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_uint" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="4">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="GdbusCallStartVoid" c:type="EGdbusCallStartVoid">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="3">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Iterator"
           c:symbol-prefix="iterator"
           c:type="EIterator"
           parent="GObject.Object"
           glib:type-name="EIterator"
           glib:get-type="e_iterator_get_type"
           glib:type-struct="IteratorClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <virtual-method name="get" invoker="get">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the iterator.</doc>
          <type name="gpointer" c:type="gconstpointer"/>
        </return-value>
      </virtual-method>
      <virtual-method name="insert" invoker="insert">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="before" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="invalidate" invoker="invalidate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="is_valid" invoker="is_valid">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="last" invoker="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="next" invoker="next">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="prev" invoker="prev">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </virtual-method>
      <virtual-method name="remove">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="reset" invoker="reset">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="set" invoker="set">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="delete" c:identifier="e_iterator_delete">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get" c:identifier="e_iterator_get">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the iterator.</doc>
          <type name="gpointer" c:type="gconstpointer"/>
        </return-value>
      </method>
      <method name="insert" c:identifier="e_iterator_insert">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
          <parameter name="before" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="invalidate" c:identifier="e_iterator_invalidate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="is_valid" c:identifier="e_iterator_is_valid">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="last" c:identifier="e_iterator_last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="next" c:identifier="e_iterator_next">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="prev" c:identifier="e_iterator_prev">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="reset" c:identifier="e_iterator_reset">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set" c:identifier="e_iterator_set">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="invalidate" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="IteratorClass"
            c:type="EIteratorClass"
            glib:is-gtype-struct-for="Iterator">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="invalidate">
        <callback name="invalidate">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get">
        <callback name="get">
          <return-value transfer-ownership="none">
            <doc xml:whitespace="preserve">the iterator.</doc>
            <type name="gpointer" c:type="gconstpointer"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="reset">
        <callback name="reset">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="last">
        <callback name="last">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="next">
        <callback name="next">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="prev">
        <callback name="prev">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove">
        <callback name="remove">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert">
        <callback name="insert">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
            <parameter name="object" transfer-ownership="none">
              <type name="gpointer" c:type="gconstpointer"/>
            </parameter>
            <parameter name="before" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set">
        <callback name="set">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
            <parameter name="object" transfer-ownership="none">
              <type name="gpointer" c:type="gconstpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_valid">
        <callback name="is_valid">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="iterator" transfer-ownership="none">
              <type name="Iterator" c:type="EIterator*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="List"
           c:symbol-prefix="list"
           c:type="EList"
           parent="GObject.Object"
           glib:type-name="EList"
           glib:get-type="e_list_get_type"
           glib:type-struct="ListClass">
      <constructor name="new" c:identifier="e_list_new" introspectable="0">
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The new #EList.</doc>
          <type name="List" c:type="EList*"/>
        </return-value>
        <parameters>
          <parameter name="copy" transfer-ownership="none" scope="call">
            <doc xml:whitespace="preserve">the copy func</doc>
            <type name="ListCopyFunc" c:type="EListCopyFunc"/>
          </parameter>
          <parameter name="free" transfer-ownership="none" scope="call">
            <doc xml:whitespace="preserve">the free func</doc>
            <type name="ListFreeFunc" c:type="EListFreeFunc"/>
          </parameter>
          <parameter name="closure" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append" c:identifier="e_list_append">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="construct"
              c:identifier="e_list_construct"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="copy" transfer-ownership="none" scope="call">
            <doc xml:whitespace="preserve">the copy func</doc>
            <type name="ListCopyFunc" c:type="EListCopyFunc"/>
          </parameter>
          <parameter name="free" transfer-ownership="none" scope="call">
            <doc xml:whitespace="preserve">the free func</doc>
            <type name="ListFreeFunc" c:type="EListFreeFunc"/>
          </parameter>
          <parameter name="closure" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="duplicate" c:identifier="e_list_duplicate">
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The duplicated #EList.</doc>
          <type name="List" c:type="EList*"/>
        </return-value>
      </method>
      <method name="get_iterator" c:identifier="e_list_get_iterator">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #EIterator.</doc>
          <type name="Iterator" c:type="EIterator*"/>
        </return-value>
      </method>
      <method name="invalidate_iterators"
              c:identifier="e_list_invalidate_iterators">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="skip" transfer-ownership="none">
            <type name="Iterator" c:type="EIterator*"/>
          </parameter>
        </parameters>
      </method>
      <method name="length" c:identifier="e_list_length">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="remove" c:identifier="e_list_remove">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="gpointer" c:type="gconstpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_iterator" c:identifier="e_list_remove_iterator">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iterator" transfer-ownership="none">
            <type name="Iterator" c:type="EIterator*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_link"
              c:identifier="e_list_remove_link"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="link" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="list">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="iterators">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="copy" introspectable="0">
        <type name="ListCopyFunc" c:type="EListCopyFunc"/>
      </field>
      <field name="free">
        <type name="ListFreeFunc" c:type="EListFreeFunc"/>
      </field>
      <field name="closure">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </class>
    <record name="ListClass"
            c:type="EListClass"
            glib:is-gtype-struct-for="List">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="ListCopyFunc" c:type="EListCopyFunc" introspectable="0">
      <return-value>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
        <parameter name="closure" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="ListFreeFunc" c:type="EListFreeFunc">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="closure" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="ListIterator"
           c:symbol-prefix="list_iterator"
           c:type="EListIterator"
           parent="Iterator"
           glib:type-name="EListIterator"
           glib:get-type="e_list_iterator_get_type"
           glib:type-struct="ListIteratorClass">
      <constructor name="new" c:identifier="e_list_iterator_new">
        <return-value transfer-ownership="full">
          <type name="Iterator" c:type="EIterator*"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="none">
            <type name="List" c:type="EList*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="Iterator" c:type="EIterator"/>
      </field>
      <field name="list">
        <type name="List" c:type="EList*"/>
      </field>
      <field name="iterator">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
    </class>
    <record name="ListIteratorClass"
            c:type="EListIteratorClass"
            glib:is-gtype-struct-for="ListIterator">
      <field name="parent_class">
        <type name="IteratorClass" c:type="EIteratorClass"/>
      </field>
    </record>
    <record name="MemChunk" c:type="EMemChunk" disguised="1">
    </record>
    <record name="OperationPool"
            c:type="EOperationPool"
            disguised="1"
            version="3.2">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <method name="free" c:identifier="e_operation_pool_free" version="3.2">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="push" c:identifier="e_operation_pool_push" version="3.2">
        <doc xml:whitespace="preserve">Pushes an operation to be processed.  @opdata is passed to the function
provided in e_operation_pool_new().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="opdata" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data for the operation</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="release_opid"
              c:identifier="e_operation_pool_release_opid"
              version="3.2">
        <doc xml:whitespace="preserve">Releases @opid previously reserved by e_operation_pool_reserve_opid().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="opid" transfer-ownership="none">
            <doc xml:whitespace="preserve">an operation ID</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="reserve_opid"
              c:identifier="e_operation_pool_reserve_opid"
              version="3.2">
        <doc xml:whitespace="preserve">Reserves new operation ID, which is returned. This operation ID may
be released by e_operation_pool_release_opid() when the operation
is finished.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new operation ID</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
      </method>
      <function name="new"
                c:identifier="e_operation_pool_new"
                version="3.2"
                introspectable="0">
        <doc xml:whitespace="preserve">FIXME: Document me.</doc>
        <return-value>
          <type name="OperationPool" c:type="EOperationPool*"/>
        </return-value>
        <parameters>
          <parameter name="max_threads" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="thread_func" transfer-ownership="none" closure="2">
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <class name="Proxy"
           c:symbol-prefix="proxy"
           c:type="EProxy"
           version="2.24"
           parent="GObject.Object"
           glib:type-name="EProxy"
           glib:get-type="e_proxy_get_type"
           glib:type-struct="ProxyClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
function below.</doc>
      <constructor name="new" c:identifier="e_proxy_new" version="2.24">
        <return-value transfer-ownership="full">
          <type name="Proxy" c:type="EProxy*"/>
        </return-value>
      </constructor>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="peek_uri_for"
              c:identifier="e_proxy_peek_uri_for"
              version="2.26"
              introspectable="0">
        <return-value>
          <type c:type="SoupURI*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="require_proxy_for_uri"
              c:identifier="e_proxy_require_proxy_for_uri"
              version="2.24">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="setup_proxy" c:identifier="e_proxy_setup_proxy">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ProxyPrivate" c:type="EProxyPrivate*"/>
      </field>
      <glib:signal name="changed" when="first">
        <doc xml:whitespace="preserve">Emitted when proxy settings changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ProxyClass"
            c:type="EProxyClass"
            glib:is-gtype-struct-for="Proxy">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="proxy" transfer-ownership="none">
              <type name="Proxy" c:type="EProxy*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="ProxyPrivate" c:type="EProxyPrivate" disguised="1">
    </record>
    <class name="Source"
           c:symbol-prefix="source"
           c:type="ESource"
           parent="GObject.Object"
           glib:type-name="ESource"
           glib:get-type="e_source_get_type"
           glib:type-struct="SourceClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <constructor name="new" c:identifier="e_source_new">
        <doc xml:whitespace="preserve">Creates a new #ESource instance, and gives it a display name specified
by @name and a relative URI specified by @relative_uri.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #ESource</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">a display name for the source</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="relative_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">a relative URI for the source</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_standalone_xml"
                   c:identifier="e_source_new_from_standalone_xml">
        <doc xml:whitespace="preserve">Constructs an #ESource instance from an XML string representation,
probably generated by e_source_to_standalone_xml().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #ESource</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
        <parameters>
          <parameter name="xml" transfer-ownership="none">
            <doc xml:whitespace="preserve">an XML representation of an #ESource</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_xml_node"
                   c:identifier="e_source_new_from_xml_node">
        <doc xml:whitespace="preserve">Creates a new #ESource instance from the XML specification in @node.
If the XML specification is invalid, the function returns %NULL.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #ESource, or %NULL</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer to the XML node to parse</doc>
            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_absolute_uri"
                   c:identifier="e_source_new_with_absolute_uri">
        <doc xml:whitespace="preserve">Creates a new #ESource instance, and gives it a display name specified
by @name and a custom absolute URI specified by @abolute_uri.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #ESource</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">a display name for the source</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="absolute_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">a custom absolute URI for the source</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="uid_from_xml_node"
                c:identifier="e_source_uid_from_xml_node">
        <doc xml:whitespace="preserve">Assuming that @node is a valid #ESource specification, retrieve the
source's unique identifier string from it.  Free the returned string
with g_free().

or %NULL if @node is not a valid specification</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the unique ID of the source specified by @node,</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer to an XML node</doc>
            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
          </parameter>
        </parameters>
      </function>
      <function name="xmlstr_equal"
                c:identifier="e_source_xmlstr_equal"
                version="2.24">
        <doc xml:whitespace="preserve">Compares if @a is equivalent to @b.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @a is equivalent to @b, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="a" transfer-ownership="none">
            <doc xml:whitespace="preserve">an XML representation of an #ESource</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:whitespace="preserve">an XML representation of another #ESource</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="build_absolute_uri"
              c:identifier="e_source_build_absolute_uri">
        <doc xml:whitespace="preserve">Builds an absolute URI string using the base URI of the #ESourceGroup
to which @source belongs, and its own relative URI.  This function
ignores any custom absolute URIs set with e_source_set_absolute_uri().
Free the returned string with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly-allocated absolute URI string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="copy" c:identifier="e_source_copy">
        <doc xml:whitespace="preserve">Creates a new #ESource instance from @source, such that passing @source
and the newly created instance to e_source_equal() would return %TRUE.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly-created #ESource</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
      </method>
      <method name="dump_to_xml_node" c:identifier="e_source_dump_to_xml_node">
        <doc xml:whitespace="preserve">Converts @source to an &lt;structname&gt;xmlNode&lt;/structname&gt; structure
and adds it as a child of @parent_node.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="parent_node" transfer-ownership="none">
            <doc xml:whitespace="preserve">location to add XML data</doc>
            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="e_source_equal" version="2.24">
        <doc xml:whitespace="preserve">Compares if @a is equivalent to @b.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @a is equivalent to @b, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="b" transfer-ownership="none">
            <doc xml:whitespace="preserve">another #ESource</doc>
            <type name="Source" c:type="ESource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_property" c:identifier="e_source_foreach_property">
        <doc xml:whitespace="preserve">Calls the given function for each property in @source.  The function
is passed the name and value of each property, and the given @user_data
argument.  The properties may not be modified while iterating over them.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:whitespace="preserve">the function to call for each property</doc>
            <type name="GLib.HFunc" c:type="GHFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">user data to pass to the function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_duped_property"
              c:identifier="e_source_get_duped_property"
              version="1.12">
        <doc xml:whitespace="preserve">Looks up the value of a custom #ESource property and returns a
newly-allocated copy of the value.  If no such property name exists
in @source, the function returns %NULL.  Free the returned value
with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly-allocated copy of the property value, or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">a custom property name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_property" c:identifier="e_source_get_property">
        <doc xml:whitespace="preserve">Looks up the value of a custom #ESource property.  If no such
property name exists in @source, the function returns %NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the property value, or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">a custom property name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_readonly" c:identifier="e_source_get_readonly">
        <doc xml:whitespace="preserve">Returns the read-only flag for @source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the source is read-only, %FALSE if it's writable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_uri" c:identifier="e_source_get_uri">
        <doc xml:whitespace="preserve">Returns a newly-allocated copy of an absolute URI for @source.  If
@source has no absolute URI of its own, the URI is constructed from
the base URI of its #ESourceGroup and its relative URI.  Free the
returned string with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly-allocated absolute URI string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="peek_absolute_uri"
              c:identifier="e_source_peek_absolute_uri">
        <doc xml:whitespace="preserve">Returns the absolute URI for @source if it has one, or else %NULL if
it has only a relative URI.  e_source_get_uri() may be more convenient.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the source's own absolute URI, or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="peek_color_spec"
              c:identifier="e_source_peek_color_spec"
              version="1.10">
        <doc xml:whitespace="preserve">Return the textual representation of the color for @source, or %NULL if it
has none.  The returned string should be parsable by #gdk_color_parse().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a string specifying the color</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="peek_group" c:identifier="e_source_peek_group">
        <doc xml:whitespace="preserve">Returns the #ESourceGroup to which @source belongs, or %NULL if it
does not belong to a group.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #ESourceGroup to which the source belongs</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </return-value>
      </method>
      <method name="peek_name" c:identifier="e_source_peek_name">
        <doc xml:whitespace="preserve">Returns the display name for @source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the source's display name</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="peek_relative_uri"
              c:identifier="e_source_peek_relative_uri">
        <doc xml:whitespace="preserve">Returns the relative URI for @source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the source's relative URI</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="peek_uid" c:identifier="e_source_peek_uid">
        <doc xml:whitespace="preserve">Returns the unique identifier string for @source.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the source's unique ID</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="set_absolute_uri" c:identifier="e_source_set_absolute_uri">
        <doc xml:whitespace="preserve">Sets a custom absolute URI for @source.  If @absolute_uri is %NULL, the
custom absolute URI is cleared and @source will fall back to its relative
URI plus the base URI of its containing #ESourceGroup.

This will emit the #ESource::changed signal if the custom absolute URI
actually changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="absolute_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">an absolute URI string, or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_spec"
              c:identifier="e_source_set_color_spec"
              version="1.10">
        <doc xml:whitespace="preserve">Store a textual representation of a color in @source.  The @color_spec
string should be parsable by #gdk_color_parse(), or %NULL to unset the
color in @source.

This will emit the #ESource::changed signal if the color representation
actually changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="color_spec" transfer-ownership="none">
            <doc xml:whitespace="preserve">a string specifying the color</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_group" c:identifier="e_source_set_group">
        <doc xml:whitespace="preserve">If the read-only flag for @source is set, the function does nothing.

Otherwise, sets the group membership for @source.

&lt;note&gt;
&lt;para&gt;
If you want to add an #ESource to an #ESourceGroup, use
e_source_group_add_source().  This function only notifies
@source of its group membership, but makes no effort to
verify that membership with @group.
&lt;/para&gt;
&lt;/note&gt;

This will emit the #ESource::changed signal if the group membership
actually changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="group" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #ESourceGroup</doc>
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="e_source_set_name">
        <doc xml:whitespace="preserve">If the read-only flag for @source is set, the function does nothing.

Otherwise, sets the display name for @source.

This will emit the #ESource::changed signal if the display name
actually changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">a display name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property" c:identifier="e_source_set_property">
        <doc xml:whitespace="preserve">Create a new custom #ESource property or replaces an existing one.  If
@property_value is %NULL, the property is removed from @source.  This
will also emit a #ESource::changed signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">a custom property name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="property_value"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a new value for the property, or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_readonly" c:identifier="e_source_set_readonly">
        <doc xml:whitespace="preserve">Sets @source as being read-only (%TRUE) or writable (%FALSE).
A read-only #ESource ignores attempts to change its display name,
#ESourceGroup, relative URI or color.

This will emit the #ESource::changed signal if the read-only state
actually changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="readonly" transfer-ownership="none">
            <doc xml:whitespace="preserve">a read-only flag</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_relative_uri" c:identifier="e_source_set_relative_uri">
        <doc xml:whitespace="preserve">If the read-only flag for @source is set, the function does nothing.

Otherwise, sets the relative URI for @source.  If @source is a member
of an #ESourceGroup and has not been given a custom absolute URI, the
function also generates a new absolute URI for @source.

This will emit the #ESource::changed signal if the relative URI
actually changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="relative_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">a relative URI string</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_standalone_xml"
              c:identifier="e_source_to_standalone_xml">
        <doc xml:whitespace="preserve">Converts @source to an XML string for permanent storage.
Free the returned string with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly-allocated XML string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="update_from_xml_node"
              c:identifier="e_source_update_from_xml_node">
        <doc xml:whitespace="preserve">Update the #ESource attributes from @node.  If @changed_return is
non-%NULL, it will be set to %TRUE if any attributes were actually
changed in the course of the update.  This will also emit the
#ESource::changed signal if any attributes were actually changed.

acceptable values for @source, %FALSE otherwise</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the data in @node was recognized and parsed into</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="node" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer to the XML node to parse</doc>
            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
          </parameter>
          <parameter name="changed_return" transfer-ownership="none">
            <doc xml:whitespace="preserve">return location for change confirmation, or %NULL</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="SourcePrivate" c:type="ESourcePrivate*"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SourceClass"
            c:type="ESourceClass"
            glib:is-gtype-struct-for="Source">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="ESource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="SourceGroup"
           c:symbol-prefix="source_group"
           c:type="ESourceGroup"
           parent="GObject.Object"
           glib:type-name="ESourceGroup"
           glib:get-type="e_source_group_get_type"
           glib:type-struct="SourceGroupClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <constructor name="new" c:identifier="e_source_group_new">
        <return-value transfer-ownership="full">
          <type name="SourceGroup" c:type="ESourceGroup*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="base_uri" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_xml"
                   c:identifier="e_source_group_new_from_xml">
        <return-value transfer-ownership="full">
          <type name="SourceGroup" c:type="ESourceGroup*"/>
        </return-value>
        <parameters>
          <parameter name="xml" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_xmldoc"
                   c:identifier="e_source_group_new_from_xmldoc">
        <return-value transfer-ownership="full">
          <type name="SourceGroup" c:type="ESourceGroup*"/>
        </return-value>
        <parameters>
          <parameter name="doc" transfer-ownership="none">
            <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="uid_from_xmldoc"
                c:identifier="e_source_group_uid_from_xmldoc">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="doc" transfer-ownership="none">
            <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
          </parameter>
        </parameters>
      </function>
      <function name="xmlstr_equal"
                c:identifier="e_source_group_xmlstr_equal"
                version="2.24">
        <doc xml:whitespace="preserve">Compares if @a is equivalent to @b.

%FALSE otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @a is equivalent to @b,</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="a" transfer-ownership="none">
            <doc xml:whitespace="preserve">XML representation of an ESourceGroup</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:whitespace="preserve">XML representation of another ESourceGroup</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="source_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="ESource*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="source_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="ESource*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_source" c:identifier="e_source_group_add_source">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="ESource*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="e_source_group_equal" version="2.24">
        <doc xml:whitespace="preserve">Compares if @a is equivalent to @b.

%FALSE otherwise.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @a is equivalent to @b,</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="b" transfer-ownership="none">
            <doc xml:whitespace="preserve">Another ESourceGroup</doc>
            <type name="SourceGroup" c:type="ESourceGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_property"
              c:identifier="e_source_group_foreach_property"
              version="1.12">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:whitespace="preserve">the func to call on each property</doc>
            <type name="GLib.HFunc" c:type="GHFunc"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">the user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_property"
              c:identifier="e_source_group_get_property"
              version="1.12">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_readonly" c:identifier="e_source_group_get_readonly">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="peek_base_uri" c:identifier="e_source_group_peek_base_uri">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="peek_name" c:identifier="e_source_group_peek_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="peek_source_by_name"
              c:identifier="e_source_group_peek_source_by_name">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #ESource</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
        <parameters>
          <parameter name="source_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="peek_source_by_uid"
              c:identifier="e_source_group_peek_source_by_uid">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #ESource</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
        <parameters>
          <parameter name="source_uid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="peek_sources" c:identifier="e_source_group_peek_sources">
        <return-value transfer-ownership="none">
          <type name="GLib.SList" c:type="GSList*">
            <type name="Source"/>
          </type>
        </return-value>
      </method>
      <method name="peek_uid" c:identifier="e_source_group_peek_uid">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="remove_source" c:identifier="e_source_group_remove_source">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <type name="Source" c:type="ESource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_source_by_uid"
              c:identifier="e_source_group_remove_source_by_uid">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_base_uri" c:identifier="e_source_group_set_base_uri">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="base_uri" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="e_source_group_set_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_property"
              c:identifier="e_source_group_set_property"
              version="1.12">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="property" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_readonly" c:identifier="e_source_group_set_readonly">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="readonly" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_xml" c:identifier="e_source_group_to_xml">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="update_from_xml"
              c:identifier="e_source_group_update_from_xml">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="xml" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="changed_return" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_from_xmldoc"
              c:identifier="e_source_group_update_from_xmldoc">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="doc" transfer-ownership="none">
            <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
          </parameter>
          <parameter name="changed_return" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="SourceGroupPrivate" c:type="ESourceGroupPrivate*"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="source-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="source-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SourceGroupClass"
            c:type="ESourceGroupClass"
            glib:is-gtype-struct-for="SourceGroup">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="group" transfer-ownership="none">
              <type name="SourceGroup" c:type="ESourceGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="source_removed">
        <callback name="source_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source_list" transfer-ownership="none">
              <type name="SourceGroup" c:type="ESourceGroup*"/>
            </parameter>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="ESource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="source_added">
        <callback name="source_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source_list" transfer-ownership="none">
              <type name="SourceGroup" c:type="ESourceGroup*"/>
            </parameter>
            <parameter name="source" transfer-ownership="none">
              <type name="Source" c:type="ESource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="SourceGroupPrivate"
            c:type="ESourceGroupPrivate"
            disguised="1">
    </record>
    <class name="SourceList"
           c:symbol-prefix="source_list"
           c:type="ESourceList"
           parent="GObject.Object"
           glib:type-name="ESourceList"
           glib:get-type="e_source_list_get_type"
           glib:type-struct="SourceListClass">
      <doc xml:whitespace="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <constructor name="new" c:identifier="e_source_list_new">
        <return-value transfer-ownership="full">
          <type name="SourceList" c:type="ESourceList*"/>
        </return-value>
      </constructor>
      <constructor name="new_for_gconf"
                   c:identifier="e_source_list_new_for_gconf"
                   introspectable="0">
        <return-value transfer-ownership="full">
          <type name="SourceList" c:type="ESourceList*"/>
        </return-value>
        <parameters>
          <parameter name="client" transfer-ownership="none">
            <type c:type="GConfClient*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_gconf_default"
                   c:identifier="e_source_list_new_for_gconf_default">
        <return-value transfer-ownership="full">
          <type name="SourceList" c:type="ESourceList*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="group_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="group" transfer-ownership="none">
            <type name="SourceGroup" c:type="ESourceGroup*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="group_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="group" transfer-ownership="none">
            <type name="SourceGroup" c:type="ESourceGroup*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_group" c:identifier="e_source_list_add_group">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="group" transfer-ownership="none">
            <type name="SourceGroup" c:type="ESourceGroup*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_group"
              c:identifier="e_source_list_ensure_group"
              version="2.28">
        <doc xml:whitespace="preserve">Ensures an #ESourceGroup with the given base URI exists in @list, and
renames its to the given name.  If @ret_it is %TRUE, the matching group
will be returned and should be unreferenced with g_object_unref().

otherwise %NULL</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the matching #ESourceGroup if @ret_it is %TRUE,</doc>
          <type name="SourceGroup" c:type="ESourceGroup*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">a localized group name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="base_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">a group base URI</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="ret_it" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether to return the group</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_gconf_updated"
              c:identifier="e_source_list_is_gconf_updated">
        <doc xml:whitespace="preserve">Returns %TRUE if the GConf data for @list is up-to-date, %FALSE if
e_source_list_sync() should be called.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the GConf data for @list is up-to-date</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="peek_default_source"
              c:identifier="e_source_list_peek_default_source"
              version="2.32">
        <doc xml:whitespace="preserve">Attempts to find a default #ESource in @list by looking for
a source with a property named "default", or else a source with a
property named "system".  If no such #ESource exists, the function
returns %NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the default #ESource in @list, or %NULL</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
      </method>
      <method name="peek_group_by_base_uri"
              c:identifier="e_source_list_peek_group_by_base_uri"
              version="2.28">
        <doc xml:whitespace="preserve">Returns the first #ESourceGroup having the given base URI.
The base URI is usually just the URI scheme, such as "http://".
If no such group is present in @list, the function returns %NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">an #ESourceGroup with a matching base URI, or %NULL</doc>
          <type name="SourceGroup" c:type="ESourceGroup*"/>
        </return-value>
        <parameters>
          <parameter name="base_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">a group base URI</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="peek_group_by_properties"
              c:identifier="e_source_list_peek_group_by_properties"
              version="2.28"
              introspectable="0">
        <doc xml:whitespace="preserve">Peeks group by its properties. Parameters are pairs of strings
property_name, property_value, terminated by NULL! ESourceGroup
is returned only if matches all the properties. Values are compared
case insensitively.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #ESourceGroup</doc>
          <type name="SourceGroup" c:type="ESourceGroup*"/>
        </return-value>
        <parameters>
          <parameter name="property_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter transfer-ownership="none">
            <varargs>
            </varargs>
          </parameter>
        </parameters>
      </method>
      <method name="peek_group_by_uid"
              c:identifier="e_source_list_peek_group_by_uid">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #ESourceGroup</doc>
          <type name="SourceGroup" c:type="ESourceGroup*"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="peek_groups" c:identifier="e_source_list_peek_groups">
        <return-value transfer-ownership="none">
          <type name="GLib.SList" c:type="GSList*">
            <type name="SourceGroup"/>
          </type>
        </return-value>
      </method>
      <method name="peek_source_any"
              c:identifier="e_source_list_peek_source_any">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #ESource</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
      </method>
      <method name="peek_source_by_uid"
              c:identifier="e_source_list_peek_source_by_uid">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #ESource</doc>
          <type name="Source" c:type="ESource*"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_group" c:identifier="e_source_list_remove_group">
        <doc xml:whitespace="preserve">Removes the first #ESourceGroup with a unique ID matching @group
(possibly @group itself) from @list.  The function returns %TRUE if a
matching group was found, otherwise %FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if an #ESourceGroup was removed, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="group" transfer-ownership="none">
            <doc xml:whitespace="preserve">an #ESourceGroup</doc>
            <type name="SourceGroup" c:type="ESourceGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_group_by_base_uri"
              c:identifier="e_source_list_remove_group_by_base_uri"
              version="2.28">
        <doc xml:whitespace="preserve">Removes the first #ESourceGroup having the given base URI from @list.
The base URI is usually just the URI scheme, such as "http://".  The
function returns %TRUE if a matching group was found, otherwise %FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if an #ESourceGroup was removed, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="base_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">a group base URI</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_group_by_uid"
              c:identifier="e_source_list_remove_group_by_uid">
        <doc xml:whitespace="preserve">Removes the first #ESourceGroup with the given unique ID from @list.
The function returns %TRUE if a matching group was found, otherwise
%FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if an #ESourceGroup was removed, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">the unique ID of an #ESourceGroup</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_source_by_uid"
              c:identifier="e_source_list_remove_source_by_uid">
        <doc xml:whitespace="preserve">Removes the first #ESource with the given unique ID from @list.  The
function returns %TRUE if a matching source was found, otherwise %FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if an #ESource was removed, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:whitespace="preserve">the unique ID of an #ESource</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="sync" c:identifier="e_source_list_sync" throws="1">
        <doc xml:whitespace="preserve">Writes the contents of @list to GConf.  If an error occurs, such as
the GConf daemon not responding, the function sets @error and returns
%FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="SourceListPrivate" c:type="ESourceListPrivate*"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="group-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SourceGroup"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="group-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SourceGroup"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SourceListClass"
            c:type="ESourceListClass"
            glib:is-gtype-struct-for="SourceList">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source_list" transfer-ownership="none">
              <type name="SourceList" c:type="ESourceList*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="group_removed">
        <callback name="group_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source_list" transfer-ownership="none">
              <type name="SourceList" c:type="ESourceList*"/>
            </parameter>
            <parameter name="group" transfer-ownership="none">
              <type name="SourceGroup" c:type="ESourceGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="group_added">
        <callback name="group_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source_list" transfer-ownership="none">
              <type name="SourceList" c:type="ESourceList*"/>
            </parameter>
            <parameter name="group" transfer-ownership="none">
              <type name="SourceGroup" c:type="ESourceGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="SourceListPrivate" c:type="ESourceListPrivate" disguised="1">
    </record>
    <record name="SourcePrivate" c:type="ESourcePrivate" disguised="1">
    </record>
    <enumeration name="TimeParseStatus" c:type="ETimeParseStatus">
      <member name="ok" value="0" c:identifier="E_TIME_PARSE_OK"/>
      <member name="none" value="1" c:identifier="E_TIME_PARSE_NONE"/>
      <member name="invalid" value="2" c:identifier="E_TIME_PARSE_INVALID"/>
    </enumeration>
    <record name="Uri" c:type="EUri">
      <doc xml:whitespace="preserve">A structure representing a URI.</doc>
      <field name="protocol" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="user" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="authmech" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="passwd" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="host" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="port" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="path" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="params" writable="1">
        <type name="GLib.Data" c:type="GData*"/>
      </field>
      <field name="query" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="fragment" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="copy" c:identifier="e_uri_copy" introspectable="0">
        <doc xml:whitespace="preserve">Makes a copy of @uri.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The newly-allocated copy of @uri.</doc>
          <type name="Uri" c:type="EUri*"/>
        </return-value>
      </method>
      <method name="free" c:identifier="e_uri_free">
        <doc xml:whitespace="preserve">Frees the memory of an #EUri structure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_param" c:identifier="e_uri_get_param">
        <doc xml:whitespace="preserve">Retrieves the value of the parameter associated with @name in @uri.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The value of the parameter.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:whitespace="preserve">The name of the parameter to get.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="e_uri_to_string">
        <doc xml:whitespace="preserve">Creates a string representation of @uri. The password will only be
included in the string if @show_password is set to %TRUE.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The string representation of @uri.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="show_password" transfer-ownership="none">
            <doc xml:whitespace="preserve">Whether or not to show the password in the string.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <function name="new" c:identifier="e_uri_new" introspectable="0">
        <doc xml:whitespace="preserve">Creates an #EUri representation of the uri given in @uri_string.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The newly-allocated #EUri structure.</doc>
          <type name="Uri" c:type="EUri*"/>
        </return-value>
        <parameters>
          <parameter name="uri_string" transfer-ownership="none">
            <doc xml:whitespace="preserve">The uri to represent as an #EUri.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="XmlHash" c:type="EXmlHash" disguised="1">
      <doc xml:whitespace="preserve">A hash table representation of an XML file.</doc>
    </record>
    <callback name="XmlHashFunc" c:type="EXmlHashFunc">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="key" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="XmlHashRemoveFunc" c:type="EXmlHashRemoveFunc">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="key" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="XmlHashStatus" c:type="EXmlHashStatus">
      <member name="same" value="0" c:identifier="E_XMLHASH_STATUS_SAME"/>
      <member name="different"
              value="1"
              c:identifier="E_XMLHASH_STATUS_DIFFERENT"/>
      <member name="not_found"
              value="2"
              c:identifier="E_XMLHASH_STATUS_NOT_FOUND"/>
    </enumeration>
    <enumeration name="XmlHashType" c:type="EXmlHashType">
      <member name="object_uid"
              value="0"
              c:identifier="E_XML_HASH_TYPE_OBJECT_UID"/>
      <member name="property"
              value="1"
              c:identifier="E_XML_HASH_TYPE_PROPERTY"/>
    </enumeration>
    <record name="_AccountIdentity" c:type="_EAccountIdentity">
      <field name="name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="address" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="reply_to" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="organization" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="sig_uid" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="_AccountService" c:type="_EAccountService">
      <field name="url" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="keep_on_server" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="auto_check" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="auto_check_time" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="save_passwd" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="get_password_canceled" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </record>
    <function name="binding_transform_enum_nick_to_value"
              c:identifier="e_binding_transform_enum_nick_to_value"
              version="3.4">
      <doc xml:whitespace="preserve">Transforms an enumeration nickname to its corresponding value.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE if the enum nickname has a corresponding value</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="binding" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GBinding</doc>
          <type name="GObject.Binding" c:type="GBinding*"/>
        </parameter>
        <parameter name="source_value" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GValue of type #G_TYPE_STRING</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="target_value" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GValue whose type is derived from #G_TYPE_ENUM</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="not_used" transfer-ownership="none">
          <doc xml:whitespace="preserve">not used</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="binding_transform_enum_value_to_nick"
              c:identifier="e_binding_transform_enum_value_to_nick"
              version="3.4">
      <doc xml:whitespace="preserve">Transforms an enumeration value to its corresponding nickname.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE if the enum value has a corresponding nickname</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="binding" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GBinding</doc>
          <type name="GObject.Binding" c:type="GBinding*"/>
        </parameter>
        <parameter name="source_value" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GValue whose type is derived from #G_TYPE_ENUM</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="target_value" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GValue of type #G_TYPE_STRING</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="not_used" transfer-ownership="none">
          <doc xml:whitespace="preserve">not used</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="categories_add" c:identifier="e_categories_add">
      <doc xml:whitespace="preserve">Adds a new category, with its corresponding icon, to the
configuration database.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="category" transfer-ownership="none">
          <doc xml:whitespace="preserve">name of category to add.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="unused" transfer-ownership="none">
          <doc xml:whitespace="preserve">DEPRECATED! associated color. DEPRECATED!</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="icon_file" transfer-ownership="none">
          <doc xml:whitespace="preserve">full path of the icon associated to the category.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="searchable" transfer-ownership="none">
          <doc xml:whitespace="preserve">whether the category can be used for searching in the GUI.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="categories_exist" c:identifier="e_categories_exist">
      <doc xml:whitespace="preserve">Checks whether the given category is available in the configuration.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE if the category is available, %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="category" transfer-ownership="none">
          <doc xml:whitespace="preserve">category to be searched.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="categories_get_icon_file_for"
              c:identifier="e_categories_get_icon_file_for">
      <doc xml:whitespace="preserve">Gets the icon file associated with the given category.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">icon file name.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="category" transfer-ownership="none">
          <doc xml:whitespace="preserve">category to retrieve the icon file for.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="categories_get_list"
              c:identifier="e_categories_get_list"
              introspectable="0">
      <doc xml:whitespace="preserve">Returns a sorted list of all the category names currently configured.

categories.The list should be freed using g_list_free, but the names of
the categories should not be touched at all, they are internal strings.</doc>
      <return-value transfer-ownership="container">
        <doc xml:whitespace="preserve">a sorted GList containing the names of the</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
    </function>
    <function name="categories_is_searchable"
              c:identifier="e_categories_is_searchable">
      <doc xml:whitespace="preserve">Gets whether the given calendar is to be used for searches in the GUI.

Return value; %TRUE% if the category is searchable, %FALSE% if not.</doc>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="category" transfer-ownership="none">
          <doc xml:whitespace="preserve">category name.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="categories_register_change_listener"
              c:identifier="e_categories_register_change_listener"
              version="2.24">
      <doc xml:whitespace="preserve">Registers callback to be called on change of any category.
Pair listener and user_data is used to distinguish between listeners.
Listeners can be unregistered with @e_categories_unregister_change_listener.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="listener"
                   transfer-ownership="none"
                   scope="async"
                   closure="1">
          <doc xml:whitespace="preserve">the callback to be called on any category change.</doc>
          <type name="GObject.Callback" c:type="GCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <doc xml:whitespace="preserve">used data passed to the @listener when called.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="categories_remove" c:identifier="e_categories_remove">
      <doc xml:whitespace="preserve">Removes the given category from the configuration.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="category" transfer-ownership="none">
          <doc xml:whitespace="preserve">category to be removed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="categories_set_icon_file_for"
              c:identifier="e_categories_set_icon_file_for">
      <doc xml:whitespace="preserve">Sets the icon file associated with the given category.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="category" transfer-ownership="none">
          <doc xml:whitespace="preserve">category to set the icon file for.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="icon_file" transfer-ownership="none">
          <doc xml:whitespace="preserve">icon file.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="categories_unregister_change_listener"
              c:identifier="e_categories_unregister_change_listener"
              version="2.24">
      <doc xml:whitespace="preserve">Removes previously registered callback from the list of listeners on changes.
If it was not registered, then does nothing.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="listener"
                   transfer-ownership="none"
                   scope="async"
                   closure="1">
          <doc xml:whitespace="preserve">Callback to be removed.</doc>
          <type name="GObject.Callback" c:type="GCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <doc xml:whitespace="preserve">User data as passed with call to @e_categories_register_change_listener.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="credentials_util_prompt_flags_to_string"
              c:identifier="e_credentials_util_prompt_flags_to_string"
              moved-to="Credentials.util_prompt_flags_to_string"
              version="3.2">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="prompt_flags" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="credentials_util_safe_free_string"
              c:identifier="e_credentials_util_safe_free_string"
              moved-to="Credentials.util_safe_free_string"
              version="3.2">
      <doc xml:whitespace="preserve">FIXME Document me.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="credentials_util_string_to_prompt_flags"
              c:identifier="e_credentials_util_string_to_prompt_flags"
              moved-to="Credentials.util_string_to_prompt_flags"
              version="3.2">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="prompt_flags_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="data_server_util_get_dbus_call_timeout"
              c:identifier="e_data_server_util_get_dbus_call_timeout"
              version="3.0">
      <doc xml:whitespace="preserve">Returns the value set by e_data_server_util_set_dbus_call_timeout().</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">the D-Bus call timeout in milliseconds</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
    </function>
    <function name="data_server_util_set_dbus_call_timeout"
              c:identifier="e_data_server_util_set_dbus_call_timeout"
              version="3.0">
      <doc xml:whitespace="preserve">Sets default timeout, in milliseconds, for calls of g_dbus_proxy_call()
family functions.

-1 means the default value as set by D-Bus itself.
G_MAXINT means no timeout at all.

Default value is set also by configure option --with-dbus-call-timeout=ms
and -1 is used when not set.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="timeout_msec" transfer-ownership="none">
          <doc xml:whitespace="preserve">default timeout for D-Bus calls in miliseconds</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="debug_log"
              c:identifier="e_debug_log"
              version="2.32"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="is_milestone" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="domain" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="format" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter transfer-ownership="none">
          <varargs>
          </varargs>
        </parameter>
      </parameters>
    </function>
    <function name="debug_log_clear"
              c:identifier="e_debug_log_clear"
              version="2.32">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="debug_log_disable_domains"
              c:identifier="e_debug_log_disable_domains"
              version="2.32">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="domains" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="n_domains" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="debug_log_dump"
              c:identifier="e_debug_log_dump"
              version="2.32"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="debug_log_dump_to_dated_file"
              c:identifier="e_debug_log_dump_to_dated_file"
              version="2.32"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="debug_log_enable_domains"
              c:identifier="e_debug_log_enable_domains"
              version="2.32">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="domains" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="n_domains" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="debug_log_get_max_lines"
              c:identifier="e_debug_log_get_max_lines"
              version="2.32">
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
    </function>
    <function name="debug_log_is_domain_enabled"
              c:identifier="e_debug_log_is_domain_enabled"
              version="2.32">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="domain" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="debug_log_load_configuration"
              c:identifier="e_debug_log_load_configuration"
              version="2.32"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="debug_log_set_max_lines"
              c:identifier="e_debug_log_set_max_lines"
              version="2.32">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="num_lines" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="debug_logv"
              c:identifier="e_debug_logv"
              version="2.32"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="is_milestone" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="domain" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="format" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="args" transfer-ownership="none">
          <type name="va_list" c:type="va_list"/>
        </parameter>
      </parameters>
    </function>
    <function name="filename_make_safe" c:identifier="e_filename_make_safe">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="filename_mkdir_encoded"
              c:identifier="e_filename_mkdir_encoded"
              version="3.4">
      <doc xml:whitespace="preserve">Creates a local path constructed from @basepath / @fileprefix + "-" + @filename,
and makes sure the path @basepath exists. If creation of
the path fails, then NULL is returned.

and @filename are encoded to create a proper file elements for
a file system. Free returned pointer with g_free().</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">Full local path like g_build_filename() except that @fileprefix</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="basepath" transfer-ownership="none">
          <doc xml:whitespace="preserve">base path of a file name; this is left unchanged</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="fileprefix" transfer-ownership="none">
          <doc xml:whitespace="preserve">prefix for the filename; this is encoded</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:whitespace="preserve">file name to use; this is encoded; can be %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="fileindex" transfer-ownership="none">
          <doc xml:whitespace="preserve">used when @filename is NULL, then the filename is generated as "file" + fileindex</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_complete_async_method"
              c:identifier="e_gdbus_complete_async_method">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="invocation" transfer-ownership="none">
          <type name="Gio.DBusMethodInvocation"
                c:type="GDBusMethodInvocation*"/>
        </parameter>
        <parameter name="opid" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_complete_sync_method_boolean"
              c:identifier="e_gdbus_complete_sync_method_boolean">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="invocation" transfer-ownership="none">
          <type name="Gio.DBusMethodInvocation"
                c:type="GDBusMethodInvocation*"/>
        </parameter>
        <parameter name="out_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_complete_sync_method_string"
              c:identifier="e_gdbus_complete_sync_method_string">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="invocation" transfer-ownership="none">
          <type name="Gio.DBusMethodInvocation"
                c:type="GDBusMethodInvocation*"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_complete_sync_method_strv"
              c:identifier="e_gdbus_complete_sync_method_strv">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="invocation" transfer-ownership="none">
          <type name="Gio.DBusMethodInvocation"
                c:type="GDBusMethodInvocation*"/>
        </parameter>
        <parameter name="out_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_complete_sync_method_uint"
              c:identifier="e_gdbus_complete_sync_method_uint">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="invocation" transfer-ownership="none">
          <type name="Gio.DBusMethodInvocation"
                c:type="GDBusMethodInvocation*"/>
        </parameter>
        <parameter name="out_uint" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_complete_sync_method_void"
              c:identifier="e_gdbus_complete_sync_method_void">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="invocation" transfer-ownership="none">
          <type name="Gio.DBusMethodInvocation"
                c:type="GDBusMethodInvocation*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_BOOLEAN__OBJECT"
              c:identifier="e_gdbus_marshallers_BOOLEAN__OBJECT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_BOOLEAN__OBJECT_BOOLEAN"
              c:identifier="e_gdbus_marshallers_BOOLEAN__OBJECT_BOOLEAN">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_BOOLEAN__OBJECT_BOXED"
              c:identifier="e_gdbus_marshallers_BOOLEAN__OBJECT_BOXED">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_BOOLEAN__OBJECT_STRING"
              c:identifier="e_gdbus_marshallers_BOOLEAN__OBJECT_STRING">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_BOOLEAN__OBJECT_UINT"
              c:identifier="e_gdbus_marshallers_BOOLEAN__OBJECT_UINT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_BOOLEAN__POINTER"
              c:identifier="e_gdbus_marshallers_BOOLEAN__POINTER">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_VOID__STRING_STRING"
              c:identifier="e_gdbus_marshallers_VOID__STRING_STRING">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_VOID__UINT_BOXED"
              c:identifier="e_gdbus_marshallers_VOID__UINT_BOXED">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_VOID__UINT_BOXED_BOXED"
              c:identifier="e_gdbus_marshallers_VOID__UINT_BOXED_BOXED">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_VOID__UINT_BOXED_STRING"
              c:identifier="e_gdbus_marshallers_VOID__UINT_BOXED_STRING">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_marshallers_VOID__UINT_STRING"
              c:identifier="e_gdbus_marshallers_VOID__UINT_STRING">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_async_method_done_boolean"
              c:identifier="e_gdbus_proxy_async_method_done_boolean">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="arg_opid" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
        <parameter name="out_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_async_method_done_string"
              c:identifier="e_gdbus_proxy_async_method_done_string">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="arg_opid" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_async_method_done_strv"
              c:identifier="e_gdbus_proxy_async_method_done_strv">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="arg_opid" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
        <parameter name="out_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_async_method_done_uint"
              c:identifier="e_gdbus_proxy_async_method_done_uint">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="arg_opid" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
        <parameter name="out_uint" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_async_method_done_void"
              c:identifier="e_gdbus_proxy_async_method_done_void">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="arg_opid" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_boolean"
              c:identifier="e_gdbus_proxy_call_boolean">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="in_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="6">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_string"
              c:identifier="e_gdbus_proxy_call_string">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="in_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="6">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_strv"
              c:identifier="e_gdbus_proxy_call_strv">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="6">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_boolean__void"
              c:identifier="e_gdbus_proxy_call_sync_boolean__void"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartBoolean" c:type="EGdbusCallStartBoolean"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishVoid" c:type="EGdbusCallFinishVoid"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_string__string"
              c:identifier="e_gdbus_proxy_call_sync_string__string"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartString" c:type="EGdbusCallStartString"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishString" c:type="EGdbusCallFinishString"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_string__strv"
              c:identifier="e_gdbus_proxy_call_sync_string__strv"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="out_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar***"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartString" c:type="EGdbusCallStartString"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishStrv" c:type="EGdbusCallFinishStrv"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_string__void"
              c:identifier="e_gdbus_proxy_call_sync_string__void"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartString" c:type="EGdbusCallStartString"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishVoid" c:type="EGdbusCallFinishVoid"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_strv__string"
              c:identifier="e_gdbus_proxy_call_sync_strv__string"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartStrv" c:type="EGdbusCallStartStrv"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishString" c:type="EGdbusCallFinishString"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_strv__strv"
              c:identifier="e_gdbus_proxy_call_sync_strv__strv"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="out_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar***"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartStrv" c:type="EGdbusCallStartStrv"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishStrv" c:type="EGdbusCallFinishStrv"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_strv__void"
              c:identifier="e_gdbus_proxy_call_sync_strv__void"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartStrv" c:type="EGdbusCallStartStrv"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishVoid" c:type="EGdbusCallFinishVoid"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_uint__void"
              c:identifier="e_gdbus_proxy_call_sync_uint__void"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_uint" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartUint" c:type="EGdbusCallStartUint"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishVoid" c:type="EGdbusCallFinishVoid"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_void__boolean"
              c:identifier="e_gdbus_proxy_call_sync_void__boolean"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="out_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartVoid" c:type="EGdbusCallStartVoid"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishBoolean"
                c:type="EGdbusCallFinishBoolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_void__string"
              c:identifier="e_gdbus_proxy_call_sync_void__string"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartVoid" c:type="EGdbusCallStartVoid"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishString" c:type="EGdbusCallFinishString"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_void__strv"
              c:identifier="e_gdbus_proxy_call_sync_void__strv"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="out_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar***"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartVoid" c:type="EGdbusCallStartVoid"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishStrv" c:type="EGdbusCallFinishStrv"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_void__uint"
              c:identifier="e_gdbus_proxy_call_sync_void__uint"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="out_uint" transfer-ownership="none">
          <type name="guint" c:type="guint*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartVoid" c:type="EGdbusCallStartVoid"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishUint" c:type="EGdbusCallFinishUint"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_sync_void__void"
              c:identifier="e_gdbus_proxy_call_sync_void__void"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="start_func" transfer-ownership="none">
          <type name="GdbusCallStartVoid" c:type="EGdbusCallStartVoid"/>
        </parameter>
        <parameter name="finish_func" transfer-ownership="none">
          <type name="GdbusCallFinishVoid" c:type="EGdbusCallFinishVoid"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_uint"
              c:identifier="e_gdbus_proxy_call_uint">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="in_uint" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="6">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_call_void"
              c:identifier="e_gdbus_proxy_call_void">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="5">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_emit_signal"
              c:identifier="e_gdbus_proxy_emit_signal">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="parameters" transfer-ownership="none">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </parameter>
        <parameter name="signal_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="signal_type" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_finish_call_boolean"
              c:identifier="e_gdbus_proxy_finish_call_boolean">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_finish_call_string"
              c:identifier="e_gdbus_proxy_finish_call_string">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_finish_call_strv"
              c:identifier="e_gdbus_proxy_finish_call_strv">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar***"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_finish_call_uint"
              c:identifier="e_gdbus_proxy_finish_call_uint">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_uint" transfer-ownership="none">
          <type name="guint" c:type="guint*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_finish_call_void"
              c:identifier="e_gdbus_proxy_finish_call_void">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="GdbusAsyncOpKeeper" c:type="EGdbusAsyncOpKeeper*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError**"/>
        </parameter>
        <parameter name="source_tag" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_boolean"
              c:identifier="e_gdbus_proxy_method_call_boolean">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="5">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_finish_boolean"
              c:identifier="e_gdbus_proxy_method_call_finish_boolean"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_finish_string"
              c:identifier="e_gdbus_proxy_method_call_finish_string"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_finish_strv"
              c:identifier="e_gdbus_proxy_method_call_finish_strv"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar***"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_finish_uint"
              c:identifier="e_gdbus_proxy_method_call_finish_uint"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="out_uint" transfer-ownership="none">
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_finish_void"
              c:identifier="e_gdbus_proxy_method_call_finish_void"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_string"
              c:identifier="e_gdbus_proxy_method_call_string">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="5">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_strv"
              c:identifier="e_gdbus_proxy_method_call_strv">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="5">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_sync_boolean__void"
              c:identifier="e_gdbus_proxy_method_call_sync_boolean__void"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_boolean" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_sync_string__string"
              c:identifier="e_gdbus_proxy_method_call_sync_string__string"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_sync_string__void"
              c:identifier="e_gdbus_proxy_method_call_sync_string__void"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_sync_strv__string"
              c:identifier="e_gdbus_proxy_method_call_sync_strv__string"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="out_string" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_sync_strv__void"
              c:identifier="e_gdbus_proxy_method_call_sync_strv__void"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_sync_uint__void"
              c:identifier="e_gdbus_proxy_method_call_sync_uint__void"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_uint" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_sync_void__void"
              c:identifier="e_gdbus_proxy_method_call_sync_void__void"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_uint"
              c:identifier="e_gdbus_proxy_method_call_uint">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="in_uint" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="5">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_proxy_method_call_void"
              c:identifier="e_gdbus_proxy_method_call_void">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="proxy" transfer-ownership="none">
          <type name="Gio.DBusProxy" c:type="GDBusProxy*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_async_boolean"
              c:identifier="e_gdbus_signal_emission_hook_async_boolean">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_async_string"
              c:identifier="e_gdbus_signal_emission_hook_async_string">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_async_strv"
              c:identifier="e_gdbus_signal_emission_hook_async_strv">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_async_uint"
              c:identifier="e_gdbus_signal_emission_hook_async_uint">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_async_void"
              c:identifier="e_gdbus_signal_emission_hook_async_void">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_boolean"
              c:identifier="e_gdbus_signal_emission_hook_boolean">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_string"
              c:identifier="e_gdbus_signal_emission_hook_string">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_strv"
              c:identifier="e_gdbus_signal_emission_hook_strv">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_uint"
              c:identifier="e_gdbus_signal_emission_hook_uint">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_uint_string"
              c:identifier="e_gdbus_signal_emission_hook_uint_string">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_signal_emission_hook_void"
              c:identifier="e_gdbus_signal_emission_hook_void">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ihint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="iface_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_stub_handle_method_call"
              c:identifier="e_gdbus_stub_handle_method_call">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="stub_object" transfer-ownership="none">
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
        <parameter name="invocation" transfer-ownership="none">
          <type name="Gio.DBusMethodInvocation"
                c:type="GDBusMethodInvocation*"/>
        </parameter>
        <parameter name="parameters" transfer-ownership="none">
          <type name="GLib.Variant" c:type="GVariant*"/>
        </parameter>
        <parameter name="method_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="method_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="method_type" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_templates_decode_error"
              c:identifier="e_gdbus_templates_decode_error"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_templates_decode_two_strings"
              c:identifier="e_gdbus_templates_decode_two_strings">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="in_strv" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="out_str1" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="out_str2" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_templates_encode_error"
              c:identifier="e_gdbus_templates_encode_error"
              introspectable="0">
      <return-value>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="in_error" transfer-ownership="none">
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_templates_encode_two_strings"
              c:identifier="e_gdbus_templates_encode_two_strings"
              introspectable="0">
      <return-value>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="in_str1" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="in_str2" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gdbus_templates_init_main_thread"
              c:identifier="e_gdbus_templates_init_main_thread">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="get_user_cache_dir"
              c:identifier="e_get_user_cache_dir"
              version="2.32">
      <doc xml:whitespace="preserve">Returns a base directory in which to store user-specific,
non-essential cached data for Evolution or Evolution-Data-Server.

The returned string is owned by libedataserver and must not be
modified or freed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">base directory for user-specific, non-essential data</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="get_user_config_dir"
              c:identifier="e_get_user_config_dir"
              version="2.32">
      <doc xml:whitespace="preserve">Returns a base directory in which to store user-specific configuration
information for Evolution or Evolution-Data-Server.

The returned string is owned by libedataserver and must not be
modified or freed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">base directory for user-specific configuration information</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="get_user_data_dir"
              c:identifier="e_get_user_data_dir"
              version="2.32">
      <doc xml:whitespace="preserve">Returns a base directory in which to store user-specific data for
Evolution or Evolution-Data-Server.

The returned string is owned by libedataserver and must not be
modified or freed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">base directory for user-specific data</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="localtime_with_offset"
              c:identifier="e_localtime_with_offset">
      <doc xml:whitespace="preserve">Converts the calendar time time representation @tt to a broken-down
time representation, store in @tm, and provides the offset in
seconds from UTC time, stored in @offset.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="tt" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #time_t to convert.</doc>
          <type name="glong" c:type="time_t"/>
        </parameter>
        <parameter name="tm" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #tm to store the result in.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
        <parameter name="offset" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #int to store the offset in.</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="memchunk_alloc"
              c:identifier="e_memchunk_alloc"
              introspectable="0">
      <doc xml:whitespace="preserve">Allocate a new atom size block of memory from an #EMemChunk.
Free the returned atom with e_memchunk_free().</doc>
      <return-value>
        <doc xml:whitespace="preserve">an allocated block of memory</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="memchunk" transfer-ownership="none">
          <doc xml:whitespace="preserve">an #EMemChunk</doc>
          <type name="MemChunk" c:type="EMemChunk*"/>
        </parameter>
      </parameters>
    </function>
    <function name="memchunk_alloc0"
              c:identifier="e_memchunk_alloc0"
              introspectable="0">
      <doc xml:whitespace="preserve">Allocate a new atom size block of memory from an #EMemChunk,
and fill the memory with zeros.  Free the returned atom with
e_memchunk_free().</doc>
      <return-value>
        <doc xml:whitespace="preserve">an allocated block of memory</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="memchunk" transfer-ownership="none">
          <doc xml:whitespace="preserve">an #EMemChunk</doc>
          <type name="MemChunk" c:type="EMemChunk*"/>
        </parameter>
      </parameters>
    </function>
    <function name="memchunk_clean" c:identifier="e_memchunk_clean">
      <doc xml:whitespace="preserve">Scan all empty blocks and check for blocks which can be free'd
back to the system.

This routine may take a while to run if there are many allocated
memory blocks (if the total number of allocations is many times
greater than atomcount).</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="memchunk" transfer-ownership="none">
          <doc xml:whitespace="preserve">an #EMemChunk</doc>
          <type name="MemChunk" c:type="EMemChunk*"/>
        </parameter>
      </parameters>
    </function>
    <function name="memchunk_destroy" c:identifier="e_memchunk_destroy">
      <doc xml:whitespace="preserve">Free the memchunk header, and all associated memory.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="memchunk" transfer-ownership="none">
          <doc xml:whitespace="preserve">an #EMemChunk</doc>
          <type name="MemChunk" c:type="EMemChunk*"/>
        </parameter>
      </parameters>
    </function>
    <function name="memchunk_empty" c:identifier="e_memchunk_empty">
      <doc xml:whitespace="preserve">Clean out the memchunk buffers.  Marks all allocated memory as free blocks,
but does not give it back to the system.  Can be used if the memchunk
is to be used repeatedly.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="memchunk" transfer-ownership="none">
          <doc xml:whitespace="preserve">an #EMemChunk</doc>
          <type name="MemChunk" c:type="EMemChunk*"/>
        </parameter>
      </parameters>
    </function>
    <function name="memchunk_free" c:identifier="e_memchunk_free">
      <doc xml:whitespace="preserve">Free a single atom back to the free pool of atoms in the given
memchunk.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="memchunk" transfer-ownership="none">
          <doc xml:whitespace="preserve">an #EMemChunk</doc>
          <type name="MemChunk" c:type="EMemChunk*"/>
        </parameter>
        <parameter name="mem" transfer-ownership="none">
          <doc xml:whitespace="preserve">address of atom to free</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="memchunk_new"
              c:identifier="e_memchunk_new"
              introspectable="0">
      <doc xml:whitespace="preserve">Create a new #EMemChunk header.  Memchunks are an efficient way to
allocate and deallocate identical sized blocks of memory quickly, and
space efficiently.

e_memchunks are effectively the same as gmemchunks, only faster (much),
and they use less memory overhead for housekeeping.</doc>
      <return-value>
        <doc xml:whitespace="preserve">a new #EMemChunk</doc>
        <type name="MemChunk" c:type="EMemChunk*"/>
      </return-value>
      <parameters>
        <parameter name="atomcount" transfer-ownership="none">
          <doc xml:whitespace="preserve">the number of atoms stored in a single malloc'd block of memory</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="atomsize" transfer-ownership="none">
          <doc xml:whitespace="preserve">the size of each allocation</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="mktime_utc" c:identifier="e_mktime_utc">
      <doc xml:whitespace="preserve">Like mktime(3), but assumes UTC instead of local timezone.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The calendar time representation of @tm.</doc>
        <type name="glong" c:type="time_t"/>
      </return-value>
      <parameters>
        <parameter name="tm" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #tm to convert to a calendar time representation.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pointer_tracker_dump"
              c:identifier="e_pointer_tracker_dump"
              version="3.2">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="pointer_tracker_track_with_info"
              c:identifier="e_pointer_tracker_track_with_info"
              version="3.2">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ptr" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pointer_tracker_untrack"
              c:identifier="e_pointer_tracker_untrack"
              version="3.2">
      <doc xml:whitespace="preserve">FIXME: Document me.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ptr" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="strftime" c:identifier="e_strftime">
      <doc xml:whitespace="preserve">This function is a wrapper around the strftime (3) function, which
converts the &amp;percnt;l and &amp;percnt;k (12h and 24h) format variables
if necessary.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The number of characters placed in @s.</doc>
        <type name="gsize" c:type="gsize"/>
      </return-value>
      <parameters>
        <parameter name="string" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string array to store the result in.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="max" transfer-ownership="none">
          <doc xml:whitespace="preserve">The size of array @s.</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="fmt" transfer-ownership="none">
          <doc xml:whitespace="preserve">The formatting to use on @tm.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="tm" transfer-ownership="none">
          <doc xml:whitespace="preserve">The time value to format.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="time_format_date_and_time"
              c:identifier="e_time_format_date_and_time">
      <doc xml:whitespace="preserve">Creates a string representation of the time value @date_tm and
stores it in @buffer.  @buffer_size should be at least 64 to be
safe. If @show_midnight is #FALSE, and the time is midnight, then
only the date is stored in @buffer. If @show_zero_seconds is
#FALSE, then if the time has zero seconds only the hour and minute
of the time are stored in @buffer.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="date_tm" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #tm to convert to a string.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
        <parameter name="use_24_hour_format" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #gboolean.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="show_midnight" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #gboolean.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="show_zero_seconds" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #gboolean.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="buffer" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #char buffer to store the time string in.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="buffer_size" transfer-ownership="none">
          <doc xml:whitespace="preserve">The length of @buffer.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="time_format_time" c:identifier="e_time_format_time">
      <doc xml:whitespace="preserve">Creates a string representation of a time value in @date_tm and
stores it in @buffer. @buffer_size should be at least 64.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="date_tm" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #tm to convert to a string.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
        <parameter name="use_24_hour_format" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #gboolean.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="show_zero_seconds" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #gboolean.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="buffer" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #char buffer to store the result in.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="buffer_size" transfer-ownership="none">
          <doc xml:whitespace="preserve">The length of @buffer.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="time_get_d_fmt_with_4digit_year"
              c:identifier="e_time_get_d_fmt_with_4digit_year"
              version="2.22">
      <doc xml:whitespace="preserve">Retrieves a date format string with a 4-digit year (D_FMT on systems with
nl_langinfo() available).  Free the returned string with g_free().</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">a newly-allocated date format string</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="time_parse_date" c:identifier="e_time_parse_date">
      <doc xml:whitespace="preserve">Takes in a date string entered by the user and tries to convert it to
a struct #tm.

@value was an empty string, a valid date, or an invalid date.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">An #ETimeParseStatus result code indicating whether</doc>
        <type name="TimeParseStatus" c:type="ETimeParseStatus"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:whitespace="preserve">A date string.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <doc xml:whitespace="preserve">Return value for the parsed date.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="time_parse_date_and_time"
              c:identifier="e_time_parse_date_and_time">
      <doc xml:whitespace="preserve">Parses a string @value containing a date and a time and stores the
result in @result. The date in @value is expected to be in a format
like "Wed 3/13/00 14:20:00", though gettext() is used to support the
appropriate local formats. There is also some leniency on the
format of the string, e.g. the weekday can be skipped or 12-hour
formats with am/pm can be used.

E_TIME_PARSE_NONE if the string was empty, or
E_TIME_PARSE_INVALID if the string could not be parsed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">E_TIME_PARSE_OK if the string was successfully parsed,</doc>
        <type name="TimeParseStatus" c:type="ETimeParseStatus"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:whitespace="preserve">the string to parse a date and time from</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #tm to store the result in</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="time_parse_date_and_time_ex"
              c:identifier="e_time_parse_date_and_time_ex"
              version="2.22">
      <doc xml:whitespace="preserve">Parses a string @value containing a date and a time and stores the
result in @result. The date in @value is expected to be in a format
like "Wed 3/13/00 14:20:00", though gettext() is used to support the
appropriate local formats. There is also some leniency on the
format of the string, e.g. the weekday can be skipped or 12-hour
formats with am/pm can be used.

E_TIME_PARSE_NONE if the string was empty, or
E_TIME_PARSE_INVALID if the string could not be parsed.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">E_TIME_PARSE_OK if the string was successfully parsed,</doc>
        <type name="TimeParseStatus" c:type="ETimeParseStatus"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string to parse a date and time from.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #tm to store the result in.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
        <parameter name="two_digit_year" transfer-ownership="none">
          <doc xml:whitespace="preserve">set to TRUE, is parsing with two-digit year, else FALSE, but only when not NULL.</doc>
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="time_parse_date_ex"
              c:identifier="e_time_parse_date_ex"
              version="2.22">
      <doc xml:whitespace="preserve">Takes in a date string entered by the user and tries to convert it to
a struct #tm.

@value was an empty string, a valid date, or an invalid date.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">An #ETimeParseStatus result code indicating whether</doc>
        <type name="TimeParseStatus" c:type="ETimeParseStatus"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:whitespace="preserve">A date string.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <doc xml:whitespace="preserve">Return value for the parsed date.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
        <parameter name="two_digit_year" transfer-ownership="none">
          <doc xml:whitespace="preserve">set to TRUE, is parsing with two-digit year, else FALSE, but only when not NULL.</doc>
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="time_parse_time" c:identifier="e_time_parse_time">
      <doc xml:whitespace="preserve">Parses @value, a string containing a time. @value is expected to be
in a format like "14:20:00". gettext() is used to
support the appropriate local formats and slightly
different formats, such as 12-hour formats with am/pm,
are accepted as well.

@value was an empty string, a valid date, or an invalid date.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">An #ETimeParseStatus result code indicating whether</doc>
        <type name="TimeParseStatus" c:type="ETimeParseStatus"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string to parse a time from.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #tm to store the result in.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="uid_new" c:identifier="e_uid_new">
      <doc xml:whitespace="preserve">Generate a new unique string for use e.g. in account lists.

when it's done with it.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">The newly generated UID.  The caller should free the string</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="url_equal" c:identifier="e_url_equal">
      <doc xml:whitespace="preserve">Checks two urls for equality, after first removing any monikers on
the urls.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE if the urls are equal, %FALSE if they are not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="url1" transfer-ownership="none">
          <doc xml:whitespace="preserve">The first url to compare.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="url2" transfer-ownership="none">
          <doc xml:whitespace="preserve">The second url to compare.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="url_shroud" c:identifier="e_url_shroud">
      <doc xml:whitespace="preserve">Removes the moniker (i.e. mailto:) from a url.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">The newly-allocated shrouded url.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="url" transfer-ownership="none">
          <doc xml:whitespace="preserve">The url to shroud.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utf8_strftime" c:identifier="e_utf8_strftime">
      <doc xml:whitespace="preserve">The UTF-8 equivalent of e_strftime ().</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The number of characters placed in @s.</doc>
        <type name="gsize" c:type="gsize"/>
      </return-value>
      <parameters>
        <parameter name="string" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string array to store the result in.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="max" transfer-ownership="none">
          <doc xml:whitespace="preserve">The size of array @s.</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="fmt" transfer-ownership="none">
          <doc xml:whitespace="preserve">The formatting to use on @tm.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="tm" transfer-ownership="none">
          <doc xml:whitespace="preserve">The time value to format.</doc>
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_copy_object_slist"
              c:identifier="e_util_copy_object_slist"
              version="3.4"
              introspectable="0">
      <doc xml:whitespace="preserve">Copies GSList of GObject-s at the end of @copy_to.

Returned pointer can be freed with e_util_free_object_slist().</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">New head of @copy_to.</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="copy_to" transfer-ownership="none">
          <doc xml:whitespace="preserve">Where to copy; can be NULL</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
        <parameter name="objects" transfer-ownership="none">
          <doc xml:whitespace="preserve">GSList of GObject-s to be copied</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="util_copy_string_slist"
              c:identifier="e_util_copy_string_slist"
              version="3.4"
              introspectable="0">
      <doc xml:whitespace="preserve">Copies GSList of strings at the end of @copy_to.

Returned pointer can be freed with e_util_free_string_slist().</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">New head of @copy_to.</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="copy_to" transfer-ownership="none">
          <doc xml:whitespace="preserve">Where to copy; can be NULL</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
        <parameter name="strings" transfer-ownership="none">
          <doc xml:whitespace="preserve">GSList of strings to be copied</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="util_ensure_gdbus_string"
              c:identifier="e_util_ensure_gdbus_string"
              version="3.0">
      <doc xml:whitespace="preserve">If @str is a valid UTF-8 string, the function returns @str and does
not set @gdbus_str.

If @str is an invalid UTF-8 string, the function calls
e_util_utf8_make_valid() and points @gdbus_str to the newly-allocated,
valid UTF-8 string, and also returns it.  The caller should free the
string pointed to by @gdbus_str with g_free().

If @str is %NULL, the function returns an empty string and does not
set @gdbus_str.

Admittedly, the function semantics are a little awkward.  The example
below illustrates the easiest way to cope with the @gdbus_str argument:

&lt;informalexample&gt;
&lt;programlisting&gt;
const gchar *trusted_utf8;
gchar *allocated = NULL;

trusted_utf8 = e_util_ensure_gdbus_string (untrusted_utf8, &amp;allocated);

Do stuff with trusted_utf8, then clear it.

trusted_utf8 = NULL;

g_free (allocated);
allocated = NULL;
&lt;/programlisting&gt;
&lt;/informalexample&gt;</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">a valid UTF-8 string</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:whitespace="preserve">a possibly invalid UTF-8 string, or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="gdbus_str" transfer-ownership="none">
          <doc xml:whitespace="preserve">return location for the corrected string</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_free_object_slist"
              c:identifier="e_util_free_object_slist"
              version="3.4"
              introspectable="0">
      <doc xml:whitespace="preserve">Calls g_object_unref() on each member of @objects and then frees
also @objects itself.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="objects" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GSList of #GObject-s</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="util_free_string_slist"
              c:identifier="e_util_free_string_slist"
              version="3.4"
              introspectable="0">
      <doc xml:whitespace="preserve">Frees memory previously allocated by e_util_strv_to_slist().</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="strings" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GSList of strings (gchar *)</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="util_gthread_id"
              c:identifier="e_util_gthread_id"
              version="2.32">
      <doc xml:whitespace="preserve">Returns a 64-bit integer hopefully uniquely identifying the
thread. To be used in debugging output and logging only.
The returned value is just a cast of a pointer to the 64-bit integer.

There is no guarantee that calling e_util_gthread_id () on one
thread first and later after that thread has dies on another won't
return the same integer.

On Linux and Win32, known to really return a unique id for each
thread existing at a certain time. No guarantee that ids won't be
reused after a thread has terminated, though.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">A 64-bit integer.</doc>
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="thread" transfer-ownership="none">
          <doc xml:whitespace="preserve">A #GThread pointer</doc>
          <type name="GLib.Thread" c:type="GThread*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_slist_to_strv"
              c:identifier="e_util_slist_to_strv"
              version="3.4"
              introspectable="0">
      <doc xml:whitespace="preserve">Convert list of strings into NULL-terminates array of strings.

Returned pointer should be freed with g_strfreev().

Note: Pair function for this is e_util_strv_to_slist().</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">Newly allocated NULL-terminated array of strings.</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="strings" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GSList of strings (const gchar *)</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="util_strstrcase" c:identifier="e_util_strstrcase">
      <doc xml:whitespace="preserve">Find the first instance of @needle in @haystack, ignoring case for
bytes that are ASCII characters.

@needle is not found.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">A pointer to the start of @needle in @haystack, or NULL if</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="haystack" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string to search in.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="needle" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string to search for.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_strv_to_slist"
              c:identifier="e_util_strv_to_slist"
              version="3.4"
              introspectable="0">
      <doc xml:whitespace="preserve">Convert NULL-terminated array of strings to a list of strings.

Returned pointer should be freed with e_util_free_string_slist().

Note: Pair function for this is e_util_slist_to_strv().</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">Newly allocated #GSList of newly allocated strings.</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="strv" transfer-ownership="none">
          <doc xml:whitespace="preserve">a NULL-terminated array of strings (const gchar *)</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_unicode_get_utf8"
              c:identifier="e_util_unicode_get_utf8">
      <doc xml:whitespace="preserve">Get a UTF-8 character from the beginning of @text.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">A pointer to the next character in @text after @out.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="text" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string to take the UTF-8 character from.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="out" transfer-ownership="none">
          <doc xml:whitespace="preserve">The location to store the UTF-8 character in.</doc>
          <type name="gunichar" c:type="gunichar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_utf8_make_valid"
              c:identifier="e_util_utf8_make_valid"
              version="3.0">
      <doc xml:whitespace="preserve">Returns a newly-allocated copy of @str, with invalid characters
replaced by Unicode replacement characters (U+FFFD).</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">a newly-allocated string</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:whitespace="preserve">a UTF-8 string</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_utf8_remove_accents"
              c:identifier="e_util_utf8_remove_accents"
              version="2.28">
      <doc xml:whitespace="preserve">Returns a newly-allocated copy of @str with accents removed.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">a newly-allocated string</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:whitespace="preserve">a UTF-8 string, or %NULL</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_utf8_strcasecmp"
              c:identifier="e_util_utf8_strcasecmp">
      <doc xml:whitespace="preserve">Compares two UTF-8 strings using approximate case-insensitive ordering.

&gt; 0 if @s1 compares after @s2</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">&lt; 0 if @s1 compares before @s2, 0 if they compare equal,</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="s1" transfer-ownership="none">
          <doc xml:whitespace="preserve">a UTF-8 string</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="s2" transfer-ownership="none">
          <doc xml:whitespace="preserve">another UTF-8 string</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_utf8_strstrcase"
              c:identifier="e_util_utf8_strstrcase">
      <doc xml:whitespace="preserve">Find the first instance of @needle in @haystack, ignoring case. (No
proper case folding or decomposing is done.) Both @needle and
@haystack are UTF-8 strings.

%NULL if no match is found, or if either of the strings are
not legal UTF-8 strings.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">A pointer to the first instance of @needle in @haystack, or</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="haystack" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string to search in.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="needle" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string to search for.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="util_utf8_strstrcasedecomp"
              c:identifier="e_util_utf8_strstrcasedecomp">
      <doc xml:whitespace="preserve">Find the first instance of @needle in @haystack, where both @needle
and @haystack are UTF-8 strings. Both strings are stripped and
decomposed for comparison, and case is ignored.

%NULL if either of the strings are not legal UTF-8 strings.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">A pointer to the first instance of @needle in @haystack, or</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="haystack" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string to search in.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="needle" transfer-ownership="none">
          <doc xml:whitespace="preserve">The string to search for.</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_destroy_hash" c:identifier="e_xml_destroy_hash">
      <doc xml:whitespace="preserve">Frees the memory used by @hash and its contents.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GHashTable to destroy</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="xml_from_hash"
              c:identifier="e_xml_from_hash"
              introspectable="0">
      <doc xml:whitespace="preserve">Uses the key/value pair representation of an XML structure in @hash
to build an equivalent #xmlDoc. This is the reverse of e_xml_to_hash().</doc>
      <return-value>
        <doc xml:whitespace="preserve">the #xmlDoc created from the data in @hash</doc>
        <type name="libxml2.Doc" c:type="xmlDoc*"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #GHashTable to extract the XML from</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #EXmlHashType used to store the XML</doc>
          <type name="XmlHashType" c:type="EXmlHashType"/>
        </parameter>
        <parameter name="root_name" transfer-ownership="none">
          <doc xml:whitespace="preserve">The name to call the new #xmlDoc</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_get_child_by_name"
              c:identifier="e_xml_get_child_by_name"
              introspectable="0">
      <doc xml:whitespace="preserve">Attempts to find a child element of @parent named @child_name.
If no such child exists, the function returns %NULL.</doc>
      <return-value>
        <doc xml:whitespace="preserve">a child XML node structure, or %NULL</doc>
        <type name="libxml2.Node" c:type="xmlNode*"/>
      </return-value>
      <parameters>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:whitespace="preserve">an XML node structure</doc>
          <type name="libxml2.Node" c:type="xmlNode*"/>
        </parameter>
        <parameter name="child_name" transfer-ownership="none">
          <doc xml:whitespace="preserve">element name of a child node</doc>
          <type name="libxml2.Char" c:type="xmlChar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_parse_file"
              c:identifier="e_xml_parse_file"
              introspectable="0">
      <doc xml:whitespace="preserve">Reads a local XML file and parses the contents into an XML document
structure.  If the XML file cannot be read or its contents are malformed,
the function returns %NULL.</doc>
      <return-value>
        <doc xml:whitespace="preserve">an XML document structure, or %NULL</doc>
        <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:whitespace="preserve">path to an XML file</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_save_file" c:identifier="e_xml_save_file">
      <doc xml:whitespace="preserve">Writes the given XML document structure to the file given by @filename.
If an error occurs while saving, the function returns -1 and sets errno.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">0 on success, -1 on failure</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:whitespace="preserve">path to a file to save to</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="doc" transfer-ownership="none">
          <doc xml:whitespace="preserve">an XML document structure</doc>
          <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
        </parameter>
      </parameters>
    </function>
    <function name="xml_to_hash" c:identifier="e_xml_to_hash">
      <doc xml:whitespace="preserve">Creates a #GHashTable representation of the #xmlDoc @doc.
If @type is * @E_XML_HASH_TYPE_PROPERTY, all XML nodes will be
indexed in the #GHashTable by name. If @type is
%E_XML_HASH_TYPE_OBJECT_UID, then XML objects will be indexed in
the hash by their UID (other nodes will still be indexed by name).

of @doc.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">The newly-created #GHashTable representation</doc>
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="doc" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #xmlDoc to store in a hash table.</doc>
          <type name="libxml2.Doc" c:type="xmlDoc*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:whitespace="preserve">The value type to use as a key in the hash table.</doc>
          <type name="XmlHashType" c:type="EXmlHashType"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmlhash_add" c:identifier="e_xmlhash_add">
      <doc xml:whitespace="preserve">Adds a new key/value pair to the #EXmlHash @hash.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:whitespace="preserve">the #EXmlHash to add an entry to</doc>
          <type name="XmlHash" c:type="EXmlHash*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:whitespace="preserve">the key to use for the entry</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <doc xml:whitespace="preserve">the value of the new entry</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmlhash_compare" c:identifier="e_xmlhash_compare">
      <doc xml:whitespace="preserve">Compares the value with key equal to @key in @hash against
@compare_data.

equal,E_XMLHASH_STATUS_DIFFERENT if they are different, or
E_XMLHASH_STATUS_NOT_FOUND if there is no entry in @hash with
its key equal to @key.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">E_XMLHASH_STATUS_SAME if the value and @compare_data are</doc>
        <type name="XmlHashStatus" c:type="EXmlHashStatus"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:whitespace="preserve">the #EXmlHash to compare against</doc>
          <type name="XmlHash" c:type="EXmlHash*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:whitespace="preserve">the key of the hash entry to compare with</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="compare_data" transfer-ownership="none">
          <doc xml:whitespace="preserve">the data to compare against the hash entry</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmlhash_destroy" c:identifier="e_xmlhash_destroy">
      <doc xml:whitespace="preserve">Frees the memory associated with @hash.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #EXmlHash to destroy.</doc>
          <type name="XmlHash" c:type="EXmlHash*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmlhash_foreach_key" c:identifier="e_xmlhash_foreach_key">
      <doc xml:whitespace="preserve">Executes @func against each key/value pair in @hash.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:whitespace="preserve">an #EXmlHash</doc>
          <type name="XmlHash" c:type="EXmlHash*"/>
        </parameter>
        <parameter name="func"
                   transfer-ownership="none"
                   scope="async"
                   closure="2">
          <doc xml:whitespace="preserve">the #EXmlHashFunc to execute on the data in @hash</doc>
          <type name="XmlHashFunc" c:type="EXmlHashFunc"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <doc xml:whitespace="preserve">the data to pass to @func</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmlhash_foreach_key_remove"
              c:identifier="e_xmlhash_foreach_key_remove">
      <doc xml:whitespace="preserve">Calls g_hash_table_foreach_remove() on @hash&lt;!-- --&gt;'s internal hash
table.  See g_hash_table_foreach_remove() for details.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:whitespace="preserve">an #EXmlHash</doc>
          <type name="XmlHash" c:type="EXmlHash*"/>
        </parameter>
        <parameter name="func"
                   transfer-ownership="none"
                   scope="async"
                   closure="2">
          <doc xml:whitespace="preserve">the #EXmlHashFunc to execute on the data in @hash</doc>
          <type name="XmlHashRemoveFunc" c:type="EXmlHashRemoveFunc"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <doc xml:whitespace="preserve">the data to pass to @func</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmlhash_new"
              c:identifier="e_xmlhash_new"
              introspectable="0">
      <doc xml:whitespace="preserve">Creates a new #EXmlHash from the file @filename. If @filename does
not already exist, an empty #EXmlHash will be created.

@filename.</doc>
      <return-value>
        <doc xml:whitespace="preserve">The new #EXmlHash structure, or %NULL if unable to parse</doc>
        <type name="XmlHash" c:type="EXmlHash*"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:whitespace="preserve">the name of an XML file</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmlhash_remove" c:identifier="e_xmlhash_remove">
      <doc xml:whitespace="preserve">Remove the entry in @hash with key equal to @key, if it exists.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:whitespace="preserve">the #EXmlHash to remove an entry from</doc>
          <type name="XmlHash" c:type="EXmlHash*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:whitespace="preserve">the key of the entry to remove</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="xmlhash_write" c:identifier="e_xmlhash_write">
      <doc xml:whitespace="preserve">Writes the XML represented by @hash to the file originally passed
to e_xmlhash_new().</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:whitespace="preserve">The #EXmlHash to write.</doc>
          <type name="XmlHash" c:type="EXmlHash*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
