<?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="EBookContacts" version="1.2"/>
  <include name="EDataServer" version="1.2"/>
  <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="libebook-1.2"/>
  <c:include name="libebook/libebook.h"/>
  <namespace name="EBook"
             version="1.2"
             shared-library="libebook-contacts-1.2.so.1.0,libedata-book-1.2.so.16.0,libebook-1.2.so.19.0,libedataserver-1.2.so.18.0"
             c:identifier-prefixes="E"
             c:symbol-prefixes="e">
    <class name="BookClient"
           c:symbol-prefix="book_client"
           c:type="EBookClient"
           version="3.2"
           parent="EDataServer.Client"
           glib:type-name="EBookClient"
           glib:get-type="e_book_client_get_type"
           glib:type-struct="BookClientClass">
      <doc xml:space="preserve">Contains only private data that should be read and manipulated using the
functions below.</doc>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.Initable"/>
      <constructor name="new"
                   c:identifier="e_book_client_new"
                   version="3.2"
                   deprecated="It covertly makes synchronous D-Bus calls, with no way to cancel.  Use e_book_client_connect() instead, which combines e_book_client_new() and e_client_open() into one step."
                   deprecated-version="3.8"
                   throws="1">
        <doc xml:space="preserve">Creates a new #EBookClient corresponding to the given source.  There are
only two operations that are valid on this book at this point:
e_client_open(), and e_client_remove().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new but unopened #EBookClient.</doc>
          <type name="BookClient" c:type="EBookClient*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">An #ESource pointer</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="connect"
                c:identifier="e_book_client_connect"
                version="3.8">
        <doc xml:space="preserve">Asynchronously creates a new #EBookClient for @source.

Unlike with e_book_client_new(), there is no need to call e_client_open()
after obtaining the #EBookClient.

When the operation is finished, @callback will be called.  You can then
call e_book_client_connect_finish() to get the result of the operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">an #ESource</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">optional #GCancellable object, or %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:space="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">data to pass to the callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="connect_direct_sync"
                c:identifier="e_book_client_connect_direct_sync"
                version="3.8"
                throws="1">
        <doc xml:space="preserve">Like e_book_client_connect_sync(), except creates the book client for
direct read access to the underlying addressbook.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new but unopened #EBookClient.</doc>
          <type name="BookClient" c:type="EClient*"/>
        </return-value>
        <parameters>
          <parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve">an #ESourceRegistry</doc>
            <type name="EDataServer.SourceRegistry" c:type="ESourceRegistry*"/>
          </parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">an #ESource</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">optional #GCancellable object, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="connect_finish"
                c:identifier="e_book_client_connect_finish"
                version="3.8"
                throws="1">
        <doc xml:space="preserve">Finishes the operation started with e_book_client_connect().  If an
error occurs in connecting to the D-Bus service, the function sets
@error and returns %NULL.

For error handling convenience, any error message returned by this
function will have a descriptive prefix that includes the display
name of the #ESource passed to e_book_client_connect().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #EBookClient, or %NULL</doc>
          <type name="BookClient" c:type="EClient*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="connect_sync"
                c:identifier="e_book_client_connect_sync"
                version="3.8"
                throws="1">
        <doc xml:space="preserve">Creates a new #EBookClient for @source.  If an error occurs, the function
will set @error and return %FALSE.

Unlike with e_book_client_new(), there is no need to call
e_client_open_sync() after obtaining the #EBookClient.

For error handling convenience, any error message returned by this
function will have a descriptive prefix that includes the display
name of @source.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #EBookClient, or %NULL</doc>
          <type name="BookClient" c:type="EClient*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">an #ESource</doc>
            <type name="EDataServer.Source" c:type="ESource*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">optional #GCancellable object, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_self"
                c:identifier="e_book_client_get_self"
                version="3.2"
                throws="1">
        <doc xml:space="preserve">Get the #EContact referring to the user of the address book
and set it in @out_contact and @out_client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="registry" transfer-ownership="none">
            <doc xml:space="preserve">an #ESourceRegistry</doc>
            <type name="EDataServer.SourceRegistry" c:type="ESourceRegistry*"/>
          </parameter>
          <parameter name="out_contact"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">an #EContact pointer to set</doc>
            <type name="EBookContacts.Contact" c:type="EContact**"/>
          </parameter>
          <parameter name="out_client"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">an #EBookClient pointer to set</doc>
            <type name="BookClient" c:type="EBookClient**"/>
          </parameter>
        </parameters>
      </function>
      <function name="is_self"
                c:identifier="e_book_client_is_self"
                version="3.2">
        <doc xml:space="preserve">Check if @contact is the user of the address book.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @contact is the user, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="contact" transfer-ownership="none">
            <doc xml:space="preserve">an #EContact</doc>
            <type name="EBookContacts.Contact" c:type="EContact*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_contact"
              c:identifier="e_book_client_add_contact"
              version="3.2">
        <doc xml:space="preserve">Adds @contact to @client.
The call is finished by e_book_client_add_contact_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contact" transfer-ownership="none">
            <doc xml:space="preserve">an #EContact</doc>
            <type name="EBookContacts.Contact" c:type="EContact*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_contact_finish"
              c:identifier="e_book_client_add_contact_finish"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_add_contact() and
sets @out_added_uid to a UID of a newly added contact.
This string should be freed with g_free().

Note: This is not modifying original #EContact.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="out_added_uid"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">UID of a newly added contact; can be %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_contact_sync"
              c:identifier="e_book_client_add_contact_sync"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Adds @contact to @client and
sets @out_added_uid to a UID of a newly added contact.
This string should be freed with g_free().

Note: This is not modifying original @contact, thus if it's needed,
then use e_contact_set (contact, E_CONTACT_UID, new_uid).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contact" transfer-ownership="none">
            <doc xml:space="preserve">an #EContact</doc>
            <type name="EBookContacts.Contact" c:type="EContact*"/>
          </parameter>
          <parameter name="out_added_uid"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">UID of a newly added contact; can be %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_contacts"
              c:identifier="e_book_client_add_contacts"
              version="3.4">
        <doc xml:space="preserve">Adds @contacts to @client.
The call is finished by e_book_client_add_contacts_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contacts" transfer-ownership="none">
            <doc xml:space="preserve">a #GSList of #EContact objects to add</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="EBookContacts.Contact"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_contacts_finish"
              c:identifier="e_book_client_add_contacts_finish"
              version="3.4"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_add_contacts() and
sets @out_added_uids to the UIDs of newly added contacts if successful.
This #GSList should be freed with e_client_util_free_string_slist().

If any of the contacts cannot be inserted, all of the insertions will be
reverted and this method will return %FALSE.

Note: This is not modifying original #EContact objects.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="out_added_uids"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <doc xml:space="preserve">UIDs of newly added contacts; can be %NULL</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="add_contacts_sync"
              c:identifier="e_book_client_add_contacts_sync"
              version="3.4"
              throws="1">
        <doc xml:space="preserve">Adds @contacts to @client and
sets @out_added_uids to the UIDs of newly added contacts if successful.
This #GSList should be freed with e_client_util_free_string_slist().

If any of the contacts cannot be inserted, all of the insertions will be
reverted and this method will return %FALSE.

Note: This is not modifying original @contacts, thus if it's needed,
then use e_contact_set (contact, E_CONTACT_UID, new_uid).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contacts" transfer-ownership="none">
            <doc xml:space="preserve">a #GSList of #EContact objects to add</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="EBookContacts.Contact"/>
            </type>
          </parameter>
          <parameter name="out_added_uids"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <doc xml:space="preserve">UIDs of newly added contacts; can be %NULL</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contact"
              c:identifier="e_book_client_get_contact"
              version="3.2">
        <doc xml:space="preserve">Receive #EContact from the @client for the gived @uid.
The call is finished by e_book_client_get_contact_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">a unique string ID specifying the contact</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contact_finish"
              c:identifier="e_book_client_get_contact_finish"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_get_contact().
If successful, then the @out_contact is set to newly allocated
#EContact, which should be freed with g_object_unref().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="out_contact"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">an #EContact for previously given uid</doc>
            <type name="EBookContacts.Contact" c:type="EContact**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contact_sync"
              c:identifier="e_book_client_get_contact_sync"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Receive #EContact from the @client for the gived @uid.
If successful, then the @out_contact is set to newly allocated
#EContact, which should be freed with g_object_unref().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">a unique string ID specifying the contact</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="out_contact"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">an #EContact for given @uid</doc>
            <type name="EBookContacts.Contact" c:type="EContact**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contacts"
              c:identifier="e_book_client_get_contacts"
              version="3.2">
        <doc xml:space="preserve">Query @client with @sexp, receiving a list of contacts which
matched. The call is finished by e_book_client_get_contacts_finish()
from the @callback.

Note: @sexp can be obtained through #EBookQuery, by converting it
to a string with e_book_query_to_string().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:space="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contacts_finish"
              c:identifier="e_book_client_get_contacts_finish"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_get_contacts().
If successful, then the @out_contacts is set to newly allocated list of
#EContact-s, which should be freed with e_client_util_free_object_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="out_contacts"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">a #GSList of matched #EContact-s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="EBookContacts.Contact"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_contacts_sync"
              c:identifier="e_book_client_get_contacts_sync"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Query @client with @sexp, receiving a list of contacts which matched.
If successful, then the @out_contacts is set to newly allocated #GSList of
#EContact-s, which should be freed with e_client_util_free_object_slist().

Note: @sexp can be obtained through #EBookQuery, by converting it
to a string with e_book_query_to_string().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:space="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="out_contacts"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">a #GSList of matched #EContact-s</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="EBookContacts.Contact"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contacts_uids"
              c:identifier="e_book_client_get_contacts_uids"
              version="3.2">
        <doc xml:space="preserve">Query @client with @sexp, receiving a list of contacts UIDs which
matched. The call is finished by e_book_client_get_contacts_uids_finish()
from the @callback.

Note: @sexp can be obtained through #EBookQuery, by converting it
to a string with e_book_query_to_string().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:space="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contacts_uids_finish"
              c:identifier="e_book_client_get_contacts_uids_finish"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_get_contacts_uids().
If successful, then the @out_contact_uids is set to newly allocated list
of UID strings, which should be freed with e_client_util_free_string_slist().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="out_contact_uids"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">a #GSList of matched contact UIDs stored as strings</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_contacts_uids_sync"
              c:identifier="e_book_client_get_contacts_uids_sync"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Query @client with @sexp, receiving a list of contacts UIDs which matched.
If successful, then the @out_contact_uids is set to newly allocated list
of UID strings, which should be freed with e_client_util_free_string_slist().

Note: @sexp can be obtained through #EBookQuery, by converting it
to a string with e_book_query_to_string().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:space="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="out_contact_uids"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">a #GSList of matched contacts UIDs stored as strings</doc>
            <type name="GLib.SList" c:type="GSList**">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view"
              c:identifier="e_book_client_get_view"
              version="3.2">
        <doc xml:space="preserve">Query @client with @sexp, creating an #EBookClientView.
The call is finished by e_book_client_get_view_finish()
from the @callback.

Note: @sexp can be obtained through #EBookQuery, by converting it
to a string with e_book_query_to_string().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:space="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view_finish"
              c:identifier="e_book_client_get_view_finish"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_get_view().
If successful, then the @out_view is set to newly allocated
#EBookClientView, which should be freed with g_object_unref().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="out_view"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_view_sync"
              c:identifier="e_book_client_get_view_sync"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Query @client with @sexp, creating an #EBookClientView.
If successful, then the @out_view is set to newly allocated
#EBookClientView, which should be freed with g_object_unref().

Note: @sexp can be obtained through #EBookQuery, by converting it
to a string with e_book_query_to_string().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="sexp" transfer-ownership="none">
            <doc xml:space="preserve">an S-expression representing the query</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="out_view"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView**"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_contact"
              c:identifier="e_book_client_modify_contact"
              version="3.2">
        <doc xml:space="preserve">Applies the changes made to @contact to the stored version in @client.
The call is finished by e_book_client_modify_contact_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contact" transfer-ownership="none">
            <doc xml:space="preserve">an #EContact</doc>
            <type name="EBookContacts.Contact" c:type="EContact*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_contact_finish"
              c:identifier="e_book_client_modify_contact_finish"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_modify_contact().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_contact_sync"
              c:identifier="e_book_client_modify_contact_sync"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Applies the changes made to @contact to the stored version in @client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contact" transfer-ownership="none">
            <doc xml:space="preserve">an #EContact</doc>
            <type name="EBookContacts.Contact" c:type="EContact*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_contacts"
              c:identifier="e_book_client_modify_contacts"
              version="3.4">
        <doc xml:space="preserve">Applies the changes made to @contacts to the stored versions in @client.
The call is finished by e_book_client_modify_contacts_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contacts" transfer-ownership="none">
            <doc xml:space="preserve">a #GSList of #EContact objects</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="EBookContacts.Contact"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_contacts_finish"
              c:identifier="e_book_client_modify_contacts_finish"
              version="3.4"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_modify_contacts().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_contacts_sync"
              c:identifier="e_book_client_modify_contacts_sync"
              version="3.4"
              throws="1">
        <doc xml:space="preserve">Applies the changes made to @contacts to the stored versions in @client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contacts" transfer-ownership="none">
            <doc xml:space="preserve">a #GSList of #EContact objects</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="EBookContacts.Contact"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_contact"
              c:identifier="e_book_client_remove_contact"
              version="3.2">
        <doc xml:space="preserve">Removes @contact from the @client.
The call is finished by e_book_client_remove_contact_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contact" transfer-ownership="none">
            <doc xml:space="preserve">an #EContact</doc>
            <type name="EBookContacts.Contact" c:type="EContact*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_contact_by_uid"
              c:identifier="e_book_client_remove_contact_by_uid"
              version="3.2">
        <doc xml:space="preserve">Removes contact with @uid from the @client.
The call is finished by e_book_client_remove_contact_by_uid_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">a UID of a contact to remove</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_contact_by_uid_finish"
              c:identifier="e_book_client_remove_contact_by_uid_finish"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_remove_contact_by_uid().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_contact_by_uid_sync"
              c:identifier="e_book_client_remove_contact_by_uid_sync"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Removes contact with @uid from the @client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">a UID of a contact to remove</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_contact_finish"
              c:identifier="e_book_client_remove_contact_finish"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_remove_contact().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_contact_sync"
              c:identifier="e_book_client_remove_contact_sync"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Removes @contact from the @client.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contact" transfer-ownership="none">
            <doc xml:space="preserve">an #EContact</doc>
            <type name="EBookContacts.Contact" c:type="EContact*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_contacts"
              c:identifier="e_book_client_remove_contacts"
              version="3.2">
        <doc xml:space="preserve">Removes the contacts with uids from the list @uids from @client.  This is
always more efficient than calling e_book_client_remove_contact() if you
have more than one uid to remove, as some backends can implement it
as a batch request.
The call is finished by e_book_client_remove_contacts_finish()
from the @callback.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="uids" transfer-ownership="none">
            <doc xml:space="preserve">a #GSList of UIDs to remove</doc>
            <type name="GLib.SList" c:type="const GSList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="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:space="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:space="preserve">user data for the @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_contacts_finish"
              c:identifier="e_book_client_remove_contacts_finish"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Finishes previous call of e_book_client_remove_contacts().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_contacts_sync"
              c:identifier="e_book_client_remove_contacts_sync"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Removes the contacts with uids from the list @uids from @client.  This is
always more efficient than calling e_book_client_remove_contact() if you
have more than one uid to remove, as some backends can implement it
as a batch request.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="uids" transfer-ownership="none">
            <doc xml:space="preserve">a #GSList of UIDs to remove</doc>
            <type name="GLib.SList" c:type="const GSList*">
              <type name="utf8"/>
            </type>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">a #GCancellable; can be %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_self"
              c:identifier="e_book_client_set_self"
              version="3.2"
              throws="1">
        <doc xml:space="preserve">Specify that @contact residing in @client is the #EContact that
refers to the user of the address book.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </instance-parameter>
          <parameter name="contact" transfer-ownership="none">
            <doc xml:space="preserve">an #EContact</doc>
            <type name="EBookContacts.Contact" c:type="EContact*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="EDataServer.Client" c:type="EClient"/>
      </field>
      <field name="priv">
        <type name="BookClientPrivate" c:type="EBookClientPrivate*"/>
      </field>
    </class>
    <record name="BookClientClass"
            c:type="EBookClientClass"
            glib:is-gtype-struct-for="BookClient">
      <field name="parent_class">
        <type name="EDataServer.ClientClass" c:type="EClientClass"/>
      </field>
    </record>
    <record name="BookClientPrivate" c:type="EBookClientPrivate" disguised="1">
    </record>
    <class name="BookClientView"
           c:symbol-prefix="book_client_view"
           c:type="EBookClientView"
           version="3.2"
           parent="GObject.Object"
           glib:type-name="EBookClientView"
           glib:get-type="e_book_client_view_get_type"
           glib:type-struct="BookClientViewClass">
      <doc xml:space="preserve">Contains only private data the should be read and manipulated using the
functions below.</doc>
      <implements name="Gio.Initable"/>
      <virtual-method name="complete">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="const GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_added" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList" c:type="const GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_modified" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
          <parameter name="objects" transfer-ownership="none">
            <type name="GLib.SList" c:type="const GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="objects_removed" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
          <parameter name="uids" transfer-ownership="none">
            <type name="GLib.SList" c:type="const GSList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
          <parameter name="percent" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_client"
              c:identifier="e_book_client_view_get_client"
              deprecated="Use e_book_client_view_ref_client() instead."
              deprecated-version="3.10">
        <doc xml:space="preserve">Returns the #EBookClientView:client associated with @client_view.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #EBookClient</doc>
          <type name="gpointer" c:type="_EBookClient*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_connection"
              c:identifier="e_book_client_view_get_connection"
              version="3.8">
        <doc xml:space="preserve">Returns the #GDBusConnection used to create the D-Bus proxy.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GDBusConnection</doc>
          <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_object_path"
              c:identifier="e_book_client_view_get_object_path"
              version="3.8">
        <doc xml:space="preserve">Returns the object path used to create the D-Bus proxy.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the object path</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_running" c:identifier="e_book_client_view_is_running">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref_client"
              c:identifier="e_book_client_view_ref_client"
              version="3.10"
              introspectable="0">
        <doc xml:space="preserve">Returns the #EBookClientView:client associated with @client_view.

The returned #EBookClient is referenced for thread-safety.  Unreference
the #EBookClient with g_object_unref() when finished with it.</doc>
        <return-value>
          <doc xml:space="preserve">an #EBookClient</doc>
          <type name="gpointer" c:type="_EBookClient*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_fields_of_interest"
              c:identifier="e_book_client_view_set_fields_of_interest"
              throws="1">
        <doc xml:space="preserve">Client can instruct server to which fields it is interested in only, thus
the server can return less data over the wire. The server can still return
complete objects, this is just a hint to it that the listed fields will
be used only. The UID field is returned always. Initial views has no fields
of interest and using %NULL for @fields_of_interest will unset any previous
changes.

Some backends can use summary information of its cache to create artifical
objects, which will omit stored object parsing. If this cannot be done then
it will simply return object as is stored in the cache.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
          <parameter name="fields_of_interest" transfer-ownership="none">
            <doc xml:space="preserve">List of field names in which the client is interested</doc>
            <type name="GLib.SList" c:type="const GSList*">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="e_book_client_view_set_flags"
              version="3.4"
              throws="1">
        <doc xml:space="preserve">Sets the @flags which control the behaviour of @client_view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">the #EBookClientViewFlags for @client_view</doc>
            <type name="EBookContacts.BookClientViewFlags"
                  c:type="EBookClientViewFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="e_book_client_view_start" throws="1">
        <doc xml:space="preserve">Tells @client_view to start processing events.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="e_book_client_view_stop" throws="1">
        <doc xml:space="preserve">Tells @client_view to stop processing events.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client_view" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClientView</doc>
            <type name="BookClientView" c:type="EBookClientView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="client"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="BookClient"/>
      </property>
      <property name="connection"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.DBusConnection"/>
      </property>
      <property name="direct-backend"
                introspectable="0"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="object-path"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="BookClientViewPrivate" c:type="EBookClientViewPrivate*"/>
      </field>
      <glib:signal name="complete" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-added" when="last">
        <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>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-modified" when="last">
        <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>
        </parameters>
      </glib:signal>
      <glib:signal name="objects-removed" when="last">
        <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>
        </parameters>
      </glib:signal>
      <glib:signal name="progress" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="BookClientViewClass"
            c:type="EBookClientViewClass"
            glib:is-gtype-struct-for="BookClientView">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="objects_added" introspectable="0">
        <callback name="objects_added" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client_view" transfer-ownership="none">
              <type name="BookClientView" c:type="EBookClientView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.SList" c:type="const GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_modified" introspectable="0">
        <callback name="objects_modified" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client_view" transfer-ownership="none">
              <type name="BookClientView" c:type="EBookClientView*"/>
            </parameter>
            <parameter name="objects" transfer-ownership="none">
              <type name="GLib.SList" c:type="const GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="objects_removed" introspectable="0">
        <callback name="objects_removed" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client_view" transfer-ownership="none">
              <type name="BookClientView" c:type="EBookClientView*"/>
            </parameter>
            <parameter name="uids" transfer-ownership="none">
              <type name="GLib.SList" c:type="const GSList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="progress">
        <callback name="progress">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client_view" transfer-ownership="none">
              <type name="BookClientView" c:type="EBookClientView*"/>
            </parameter>
            <parameter name="percent" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="message" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="complete">
        <callback name="complete">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="client_view" transfer-ownership="none">
              <type name="BookClientView" c:type="EBookClientView*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="const GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="BookClientViewPrivate"
            c:type="EBookClientViewPrivate"
            disguised="1">
    </record>
    <enumeration name="BookStatus"
                 glib:type-name="EBookStatus"
                 glib:get-type="e_book_status_get_type"
                 c:type="EBookStatus">
      <member name="ok"
              value="0"
              c:identifier="E_BOOK_ERROR_OK"
              glib:nick="ok">
      </member>
      <member name="invalid_arg"
              value="1"
              c:identifier="E_BOOK_ERROR_INVALID_ARG"
              glib:nick="invalid-arg">
      </member>
      <member name="busy"
              value="2"
              c:identifier="E_BOOK_ERROR_BUSY"
              glib:nick="busy">
      </member>
      <member name="repository_offline"
              value="3"
              c:identifier="E_BOOK_ERROR_REPOSITORY_OFFLINE"
              glib:nick="repository-offline">
      </member>
      <member name="no_such_book"
              value="4"
              c:identifier="E_BOOK_ERROR_NO_SUCH_BOOK"
              glib:nick="no-such-book">
      </member>
      <member name="no_self_contact"
              value="5"
              c:identifier="E_BOOK_ERROR_NO_SELF_CONTACT"
              glib:nick="no-self-contact">
      </member>
      <member name="source_not_loaded"
              value="6"
              c:identifier="E_BOOK_ERROR_SOURCE_NOT_LOADED"
              glib:nick="source-not-loaded">
      </member>
      <member name="source_already_loaded"
              value="7"
              c:identifier="E_BOOK_ERROR_SOURCE_ALREADY_LOADED"
              glib:nick="source-already-loaded">
      </member>
      <member name="permission_denied"
              value="8"
              c:identifier="E_BOOK_ERROR_PERMISSION_DENIED"
              glib:nick="permission-denied">
      </member>
      <member name="contact_not_found"
              value="9"
              c:identifier="E_BOOK_ERROR_CONTACT_NOT_FOUND"
              glib:nick="contact-not-found">
      </member>
      <member name="contact_id_already_exists"
              value="10"
              c:identifier="E_BOOK_ERROR_CONTACT_ID_ALREADY_EXISTS"
              glib:nick="contact-id-already-exists">
      </member>
      <member name="protocol_not_supported"
              value="11"
              c:identifier="E_BOOK_ERROR_PROTOCOL_NOT_SUPPORTED"
              glib:nick="protocol-not-supported">
      </member>
      <member name="cancelled"
              value="12"
              c:identifier="E_BOOK_ERROR_CANCELLED"
              glib:nick="cancelled">
      </member>
      <member name="could_not_cancel"
              value="13"
              c:identifier="E_BOOK_ERROR_COULD_NOT_CANCEL"
              glib:nick="could-not-cancel">
      </member>
      <member name="authentication_failed"
              value="14"
              c:identifier="E_BOOK_ERROR_AUTHENTICATION_FAILED"
              glib:nick="authentication-failed">
      </member>
      <member name="authentication_required"
              value="15"
              c:identifier="E_BOOK_ERROR_AUTHENTICATION_REQUIRED"
              glib:nick="authentication-required">
      </member>
      <member name="tls_not_available"
              value="16"
              c:identifier="E_BOOK_ERROR_TLS_NOT_AVAILABLE"
              glib:nick="tls-not-available">
      </member>
      <member name="dbus_exception"
              value="17"
              c:identifier="E_BOOK_ERROR_DBUS_EXCEPTION"
              glib:nick="dbus-exception">
      </member>
      <member name="no_such_source"
              value="18"
              c:identifier="E_BOOK_ERROR_NO_SUCH_SOURCE"
              glib:nick="no-such-source">
      </member>
      <member name="offline_unavailable"
              value="19"
              c:identifier="E_BOOK_ERROR_OFFLINE_UNAVAILABLE"
              glib:nick="offline-unavailable">
      </member>
      <member name="other_error"
              value="20"
              c:identifier="E_BOOK_ERROR_OTHER_ERROR"
              glib:nick="other-error">
      </member>
      <member name="invalid_server_version"
              value="21"
              c:identifier="E_BOOK_ERROR_INVALID_SERVER_VERSION"
              glib:nick="invalid-server-version">
      </member>
      <member name="unsupported_authentication_method"
              value="22"
              c:identifier="E_BOOK_ERROR_UNSUPPORTED_AUTHENTICATION_METHOD"
              glib:nick="unsupported-authentication-method">
      </member>
      <member name="no_space"
              value="23"
              c:identifier="E_BOOK_ERROR_NO_SPACE"
              glib:nick="no-space">
      </member>
      <member name="not_supported"
              value="24"
              c:identifier="E_BOOK_ERROR_NOT_SUPPORTED"
              glib:nick="not-supported">
      </member>
    </enumeration>
    <class name="Destination"
           c:symbol-prefix="destination"
           c:type="EDestination"
           parent="GObject.Object"
           glib:type-name="EDestination"
           glib:get-type="e_destination_get_type"
           glib:type-struct="DestinationClass">
      <constructor name="new" c:identifier="e_destination_new">
        <doc xml:space="preserve">Creates a new #EDestination with blank values.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly created #EDestination.</doc>
          <type name="Destination" c:type="EDestination*"/>
        </return-value>
      </constructor>
      <function name="exportv" c:identifier="e_destination_exportv">
        <doc xml:space="preserve">Exports multiple #EDestination elements to a single XML document.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An XML string, allocated with g_malloc.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="destv" transfer-ownership="none">
            <doc xml:space="preserve">a %NULL-terminated array of pointers to #EDestination</doc>
            <type name="Destination" c:type="EDestination**"/>
          </parameter>
        </parameters>
      </function>
      <function name="freev" c:identifier="e_destination_freev">
        <doc xml:space="preserve">Unrefs the elements of @destv and frees @destv itself.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="destv" transfer-ownership="none">
            <doc xml:space="preserve">a %NULL-terminated array of pointers to #EDestination</doc>
            <type name="Destination" c:type="EDestination**"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_textrepv" c:identifier="e_destination_get_textrepv">
        <doc xml:space="preserve">Generates a joint text representation of all the #EDestination
elements in @destv.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The text representation of @destv.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="destv" transfer-ownership="none">
            <doc xml:space="preserve">%NULL-terminated array of pointers to #EDestination</doc>
            <type name="Destination" c:type="EDestination**"/>
          </parameter>
        </parameters>
      </function>
      <function name="import" c:identifier="e_destination_import">
        <doc xml:space="preserve">Creates an #EDestination from an XML document.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An #EDestination, or %NULL if the document was not well-formed.</doc>
          <type name="Destination" c:type="EDestination*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve">an XML string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="importv" c:identifier="e_destination_importv">
        <doc xml:space="preserve">Creates an array of pointers to #EDestination elements
from an XML document.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A %NULL-terminated array of pointers to #EDestination elements.</doc>
          <type name="Destination" c:type="EDestination**"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve">an XML string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="destination" transfer-ownership="none">
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="copy" c:identifier="e_destination_copy">
        <doc xml:space="preserve">Creates a new #EDestination identical to @dest.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly created #EDestination, identical to @dest.</doc>
          <type name="Destination" c:type="EDestination*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="empty" c:identifier="e_destination_empty">
        <doc xml:space="preserve">Checks if @dest is blank.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @dest is empty, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="e_destination_equal">
        <doc xml:space="preserve">Checks if @a and @b are equal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the destinations are equal, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </parameter>
        </parameters>
      </method>
      <method name="export" c:identifier="e_destination_export">
        <doc xml:space="preserve">Exports a destination to an XML document.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">An XML string, allocated with g_malloc.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="export_to_vcard_attribute"
              c:identifier="e_destination_export_to_vcard_attribute">
        <doc xml:space="preserve">Exports the contact information from @dest to parameters
and values in @attr, suitable for an address book.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="attr" transfer-ownership="none">
            <doc xml:space="preserve">an #EVCardAttribute</doc>
            <type name="EBookContacts.VCardAttribute"
                  c:type="EVCardAttribute*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_address" c:identifier="e_destination_get_address">
        <doc xml:space="preserve">Gets the encoded name and email address, or in the case of lists, the
encoded list of email addresses, from @dest.  The returned string is
suitable for use in an email header, but not for displaying to users.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an encoded destination string suitable for use in an email header, or %NULL if the destination was empty</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_contact" c:identifier="e_destination_get_contact">
        <doc xml:space="preserve">Gets the contact @dest is pointing to, if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An #EContact, or %NULL if none was set.</doc>
          <type name="EBookContacts.Contact" c:type="EContact*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_contact_uid"
              c:identifier="e_destination_get_contact_uid">
        <doc xml:space="preserve">Gets the unique contact ID @dest is pointing to, if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A unique contact ID, or %NULL if none was set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_email" c:identifier="e_destination_get_email">
        <doc xml:space="preserve">Gets the e-mail address of @dest's addressee.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">An e-mail address, or an empty string if none was set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_email_num" c:identifier="e_destination_get_email_num">
        <doc xml:space="preserve">Gets the index of the e-mail address of the contact that
@dest is pointing to, if any.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The e-mail index, or -1 if none was set.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_html_mail_pref"
              c:identifier="e_destination_get_html_mail_pref">
        <doc xml:space="preserve">Check if @dest wants to get mail formatted as HTML.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if destination wants HTML, %FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="e_destination_get_name">
        <doc xml:space="preserve">Gets the full name of @dest's addressee, or if the addressee is
a contact list, the name the list was filed under.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The full name of the addressee, or %NULL if none was set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source_uid"
              c:identifier="e_destination_get_source_uid">
        <doc xml:space="preserve">Gets the unique source ID @dest is pointing to, if any. The source
ID specifies which address book @dest's contact came from.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A unique source ID, or %NULL if none was set.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_textrep" c:identifier="e_destination_get_textrep">
        <doc xml:space="preserve">Generates a textual representation of @dest, suitable for referring
to the destination during user interaction.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A textual representation of the destination.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
          <parameter name="include_email" transfer-ownership="none">
            <doc xml:space="preserve">whether to include the e-mail address</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_auto_recipient"
              c:identifier="e_destination_is_auto_recipient">
        <doc xml:space="preserve">Checks if @dest is flagged as an automatic recipient, meaning
it was not explicitly specified by the user. This can be used
to hide it from some UI elements.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if destination is an auto recipient, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_evolution_list"
              c:identifier="e_destination_is_evolution_list">
        <doc xml:space="preserve">Checks if @dest is a list of addresses.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if destination is a list, %FALSE if it is an individual.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_ignored" c:identifier="e_destination_is_ignored">
        <doc xml:space="preserve">Check if @dest is to be ignored.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if this destination should be ignored, else %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_get_dests"
              c:identifier="e_destination_list_get_dests"
              version="3.2">
        <doc xml:space="preserve">If @dest is a list, gets recursively list of all destinations.
Everything returned from this function belongs to @dest and
thus should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A list of elements of type #EDestination, or %NULL.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="Destination"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_get_root_dests"
              c:identifier="e_destination_list_get_root_dests"
              version="3.2">
        <doc xml:space="preserve">If @dest is a list, gets the list of EDestinations assigned directly
to @dest.
The list and its elements belong to @dest, and should not be freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A list of elements of type #EDestination, or %NULL.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="Destination"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_show_addresses"
              c:identifier="e_destination_list_show_addresses">
        <doc xml:space="preserve">If @dest is a list, checks if the addresses in the list
should be presented to the user during interaction.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if addresses should be shown, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="const EDestination*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_auto_recipient"
              c:identifier="e_destination_set_auto_recipient">
        <doc xml:space="preserve">Sets the flag indicating if @dest is an automatic recipient, meaning
it was not explicitly specified by the user. This can be used
to hide it from some UI elements.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the auto recipient flag</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_client"
              c:identifier="e_destination_set_client"
              version="3.2">
        <doc xml:space="preserve">Specify the source @dest's contact comes from. This is useful
if you need to update the contact later.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve">an #EBookClient</doc>
            <type name="BookClient" c:type="EBookClient*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contact" c:identifier="e_destination_set_contact">
        <doc xml:space="preserve">Sets @dest to point to one of @contact's e-mail addresses
indicated by @email_num.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="contact" transfer-ownership="none">
            <doc xml:space="preserve">an #EContact</doc>
            <type name="EBookContacts.Contact" c:type="EContact*"/>
          </parameter>
          <parameter name="email_num" transfer-ownership="none">
            <doc xml:space="preserve">an email index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contact_uid"
              c:identifier="e_destination_set_contact_uid">
        <doc xml:space="preserve">Sets @dest to point to one of the contact specified by @uid's e-mail
addresses indicated by @email_num.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="uid" transfer-ownership="none">
            <doc xml:space="preserve">a unique contact ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="email_num" transfer-ownership="none">
            <doc xml:space="preserve">an email index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_email" c:identifier="e_destination_set_email">
        <doc xml:space="preserve">Sets the e-mail address of @dest's addressee.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="email" transfer-ownership="none">
            <doc xml:space="preserve">the destination's e-mail address</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_html_mail_pref"
              c:identifier="e_destination_set_html_mail_pref">
        <doc xml:space="preserve">Specifies whether @dest wants to get mail formatted as HTML.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="flag" transfer-ownership="none">
            <doc xml:space="preserve">whether the destination wants HTML mail</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ignored" c:identifier="e_destination_set_ignored">
        <doc xml:space="preserve">Set the ignore flag on a #EDestination.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="ignored" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if this #EDestination should be ignored.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="e_destination_set_name">
        <doc xml:space="preserve">Sets the full name of @dest's addressee.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the destination's full name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_raw" c:identifier="e_destination_set_raw">
        <doc xml:space="preserve">Sets @dest to point to the name and e-mail address resulting from
parsing the supplied string. Useful for user input.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve">an #EDestination</doc>
            <type name="Destination" c:type="EDestination*"/>
          </instance-parameter>
          <parameter name="raw" transfer-ownership="none">
            <doc xml:space="preserve">an unparsed string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DestinationPrivate" c:type="EDestinationPrivate*"/>
      </field>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="DestinationClass"
            c:type="EDestinationClass"
            glib:is-gtype-struct-for="Destination">
      <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="destination" transfer-ownership="none">
              <type name="Destination" c:type="EDestination*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_ebook_reserved1" introspectable="0">
        <callback name="_ebook_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_ebook_reserved2" introspectable="0">
        <callback name="_ebook_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_ebook_reserved3" introspectable="0">
        <callback name="_ebook_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_ebook_reserved4" introspectable="0">
        <callback name="_ebook_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="DestinationPrivate"
            c:type="EDestinationPrivate"
            disguised="1">
    </record>
    <function name="book_error_quark" c:identifier="e_book_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
