<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="EBook">
<refmeta>
<refentrytitle role="top_of_page">EBook</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LIBEBOOK Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>EBook</refname>
<refpurpose>The primary Evolution addressbook client object.</refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>



            <link linkend="EBook-struct">EBook</link>;
<link linkend="EBook">EBook</link>*      <link linkend="e-book-new">e_book_new</link>                      (<link linkend="ESource">ESource</link> *source,
                                             <link linkend="GError">GError</link> **error);
<link linkend="EBook">EBook</link>*      <link linkend="e-book-new-default-addressbook">e_book_new_default_addressbook</link>  (<link linkend="GError">GError</link> **error);
<link linkend="EBook">EBook</link>*      <link linkend="e-book-new-from-uri">e_book_new_from_uri</link>             (const <link linkend="char">char</link> *uri,
                                             <link linkend="GError">GError</link> **error);
<link linkend="EBook">EBook</link>*      <link linkend="e-book-new-system-addressbook">e_book_new_system_addressbook</link>   (<link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-set-default-addressbook">e_book_set_default_addressbook</link>  (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-set-default-source">e_book_set_default_source</link>       (<link linkend="ESource">ESource</link> *source,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-remove">e_book_remove</link>                   (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-open">e_book_open</link>                     (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="gboolean">gboolean</link> only_if_exists,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-get-supported-fields">e_book_get_supported_fields</link>     (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> **fields,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-get-supported-auth-methods">e_book_get_supported_auth_methods</link>
                                            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> **auth_methods,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-get-required-fields">e_book_get_required_fields</link>      (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> **fields,
                                             <link linkend="GError">GError</link> **error);
<link linkend="ESource">ESource</link>*    <link linkend="e-book-get-source">e_book_get_source</link>               (<link linkend="EBook">EBook</link> *book);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-is-online">e_book_is_online</link>                (<link linkend="EBook">EBook</link> *book);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-is-opened">e_book_is_opened</link>                (<link linkend="EBook">EBook</link> *book);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-authenticate-user">e_book_authenticate_user</link>        (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *user,
                                             const <link linkend="char">char</link> *passwd,
                                             const <link linkend="char">char</link> *auth_method,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-get-contact">e_book_get_contact</link>              (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="EContact">EContact</link> **contact,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-remove-contact">e_book_remove_contact</link>           (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-remove-contacts">e_book_remove_contacts</link>          (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> *ids,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-add-contact">e_book_add_contact</link>              (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-commit-contact">e_book_commit_contact</link>           (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-get-book-view">e_book_get_book_view</link>            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookQuery">EBookQuery</link> *query,
                                             <link linkend="GList">GList</link> *requested_fields,
                                             <link linkend="int">int</link> max_results,
                                             <link linkend="EBookView">EBookView</link> **book_view,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-get-contacts">e_book_get_contacts</link>             (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookQuery">EBookQuery</link> *query,
                                             <link linkend="GList">GList</link> **contacts,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-get-changes">e_book_get_changes</link>              (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="char">char</link> *changeid,
                                             <link linkend="GList">GList</link> **changes,
                                             <link linkend="GError">GError</link> **error);
<link linkend="void">void</link>        <link linkend="e-book-free-change-list">e_book_free_change_list</link>         (<link linkend="GList">GList</link> *change_list);
const <link linkend="char">char</link>* <link linkend="e-book-get-uri">e_book_get_uri</link>                  (<link linkend="EBook">EBook</link> *book);
const <link linkend="char">char</link>* <link linkend="e-book-get-static-capabilities">e_book_get_static_capabilities</link>  (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-check-static-capability">e_book_check_static_capability</link>  (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *cap);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-is-writable">e_book_is_writable</link>              (<link linkend="EBook">EBook</link> *book);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-cancel">e_book_cancel</link>                   (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-get-self">e_book_get_self</link>                 (<link linkend="EContact">EContact</link> **contact,
                                             <link linkend="EBook">EBook</link> **book,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-set-self">e_book_set_self</link>                 (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-is-self">e_book_is_self</link>                  (<link linkend="EContact">EContact</link> *contact);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-get-addressbooks">e_book_get_addressbooks</link>         (<link linkend="ESourceList">ESourceList</link> **addressbook_sources,
                                             <link linkend="GError">GError</link> **error);
<link linkend="void">void</link>        (<link linkend="EBookCallback">*EBookCallback</link>)                (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="void">void</link>        (<link linkend="EBookOpenProgressCallback">*EBookOpenProgressCallback</link>)    (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *status_message,
                                             short <link linkend="percent">percent</link> ,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="void">void</link>        (<link linkend="EBookIdCallback">*EBookIdCallback</link>)              (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="void">void</link>        (<link linkend="EBookEListCallback">*EBookEListCallback</link>)           (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="EList">EList</link> *list,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="void">void</link>        (<link linkend="EBookListCallback">*EBookListCallback</link>)            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="GList">GList</link> *list,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="void">void</link>        (<link linkend="EBookContactCallback">*EBookContactCallback</link>)         (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="void">void</link>        (<link linkend="EBookBookViewCallback">*EBookBookViewCallback</link>)        (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="EBookView">EBookView</link> *book_view,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-open">e_book_async_open</link>               (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="gboolean">gboolean</link> only_if_exists,
                                             <link linkend="EBookCallback">EBookCallback</link> open_response,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-remove">e_book_async_remove</link>             (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-get-supported-fields">e_book_async_get_supported_fields</link>
                                            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookEListCallback">EBookEListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-get-supported-auth-methods">e_book_async_get_supported_auth_methods</link>
                                            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookEListCallback">EBookEListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-authenticate-user">e_book_async_authenticate_user</link>  (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *user,
                                             const <link linkend="char">char</link> *passwd,
                                             const <link linkend="char">char</link> *auth_method,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-get-contact">e_book_async_get_contact</link>        (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="EBookContactCallback">EBookContactCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-get-contacts">e_book_async_get_contacts</link>       (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookQuery">EBookQuery</link> *query,
                                             <link linkend="EBookListCallback">EBookListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-remove-contact">e_book_async_remove_contact</link>     (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-remove-contact-by-id">e_book_async_remove_contact_by_id</link>
                                            (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-remove-contacts">e_book_async_remove_contacts</link>    (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> *ids,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="gboolean">gboolean</link>    <link linkend="e-book-async-add-contact">e_book_async_add_contact</link>        (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="EBookIdCallback">EBookIdCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-commit-contact">e_book_async_commit_contact</link>     (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-get-book-view">e_book_async_get_book_view</link>      (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookQuery">EBookQuery</link> *query,
                                             <link linkend="GList">GList</link> *requested_fields,
                                             <link linkend="int">int</link> max_results,
                                             <link linkend="EBookBookViewCallback">EBookBookViewCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-get-changes">e_book_async_get_changes</link>        (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="char">char</link> *changeid,
                                             <link linkend="EBookListCallback">EBookListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);
<link linkend="guint">guint</link>       <link linkend="e-book-async-get-required-fields">e_book_async_get_required_fields</link>
                                            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookEListCallback">EBookEListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);


</synopsis>
</refsynopsisdiv>

<refsect1 role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<synopsis>

  <link linkend="GObject">GObject</link>
   +----EBook
</synopsis>

</refsect1>






<refsect1 role="signal_proto">
<title role="signal_proto.title">Signals</title>
<synopsis>

&quot;<link linkend="EBook-auth-required">auth-required</link>&quot;
            <link linkend="void">void</link>        user_function      (<link linkend="EBook">EBook</link>   *ebook,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run last
&quot;<link linkend="EBook-backend-died">backend-died</link>&quot;
            <link linkend="void">void</link>        user_function      (<link linkend="EBook">EBook</link>   *ebook,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run last
&quot;<link linkend="EBook-connection-status">connection-status</link>&quot;
            <link linkend="void">void</link>        user_function      (<link linkend="EBook">EBook</link>   *ebook,
                                            <link linkend="gboolean">gboolean</link> arg1,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run last
&quot;<link linkend="EBook-writable-status">writable-status</link>&quot;
            <link linkend="void">void</link>        user_function      (<link linkend="EBook">EBook</link>   *ebook,
                                            <link linkend="gboolean">gboolean</link> arg1,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run last
</synopsis>
</refsect1>


<refsect1 role="desc">
<title role="desc.title">Description</title>
<para>
Represents a complete addressbook. Event notifications and callbacks go to the
<link linkend="EBookListener"><type>EBookListener</type></link>. Contrast with <link linkend="EBookView"><type>EBookView</type></link>, which represents a search of the addressbook.
</para>
</refsect1>

<refsect1 role="details">
<title role="details.title">Details</title>
<refsect2>
<title><anchor id="EBook-struct" role="struct"/>EBook</title>
<indexterm><primary>EBook</primary></indexterm><programlisting>typedef struct _EBook EBook;</programlisting>
<para>
<link linkend="EBook"><type>EBook</type></link> has no publicly available members.
</para></refsect2>
<refsect2>
<title><anchor id="e-book-new" role="function"/>e_book_new ()</title>
<indexterm><primary>e_book_new</primary></indexterm><programlisting><link linkend="EBook">EBook</link>*      e_book_new                      (<link linkend="ESource">ESource</link> *source,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Creates a new <link linkend="EBook"><type>EBook</type></link> corresponding to the given source.  There are
only two operations that are valid on this book at this point:
<link linkend="e-book-open"><function>e_book_open()</function></link>, and <link linkend="e-book-remove"><function>e_book_remove()</function></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>source</parameter>&nbsp;:</term>
<listitem><simpara> An <link linkend="ESource"><type>ESource</type></link> pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="GError"><type>GError</type></link> pointer
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a new but unopened <link linkend="EBook"><type>EBook</type></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-new-default-addressbook" role="function"/>e_book_new_default_addressbook ()</title>
<indexterm><primary>e_book_new_default_addressbook</primary></indexterm><programlisting><link linkend="EBook">EBook</link>*      e_book_new_default_addressbook  (<link linkend="GError">GError</link> **error);</programlisting>
<para>
Creates a new <link linkend="EBook"><type>EBook</type></link> corresponding to the user's default
addressbook.  See the documentation for e_book_new for further
information.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="GError"><type>GError</type></link> pointer
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a new but unopened <link linkend="EBook"><type>EBook</type></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-new-from-uri" role="function"/>e_book_new_from_uri ()</title>
<indexterm><primary>e_book_new_from_uri</primary></indexterm><programlisting><link linkend="EBook">EBook</link>*      e_book_new_from_uri             (const <link linkend="char">char</link> *uri,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Creates a new <link linkend="EBook"><type>EBook</type></link> corresponding to the given uri.  See the
documentation for e_book_new for further information.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>uri</parameter>&nbsp;:</term>
<listitem><simpara> the URI to load
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="GError"><type>GError</type></link> pointer
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a new but unopened <link linkend="EBook"><type>EBook</type></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-new-system-addressbook" role="function"/>e_book_new_system_addressbook ()</title>
<indexterm><primary>e_book_new_system_addressbook</primary></indexterm><programlisting><link linkend="EBook">EBook</link>*      e_book_new_system_addressbook   (<link linkend="GError">GError</link> **error);</programlisting>
<para>
Creates a new <link linkend="EBook"><type>EBook</type></link> corresponding to the user's system
addressbook.  See the documentation for e_book_new for further
information.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="GError"><type>GError</type></link> pointer
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a new but unopened <link linkend="EBook"><type>EBook</type></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-set-default-addressbook" role="function"/>e_book_set_default_addressbook ()</title>
<indexterm><primary>e_book_set_default_addressbook</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_set_default_addressbook  (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
sets the <link linkend="ESource"><type>ESource</type></link> of the <link linkend="EBook"><type>EBook</type></link> as the "default" addressbook.  This is the source
that will be loaded in the e_book_get_default_addressbook call.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> An <link linkend="EBook"><type>EBook</type></link> pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="GError"><type>GError</type></link> pointer
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the setting was stored in libebook's ESourceList, otherwise <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-set-default-source" role="function"/>e_book_set_default_source ()</title>
<indexterm><primary>e_book_set_default_source</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_set_default_source       (<link linkend="ESource">ESource</link> *source,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
sets <parameter>source</parameter> as the "default" addressbook.  This is the source that
will be loaded in the e_book_get_default_addressbook call.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>source</parameter>&nbsp;:</term>
<listitem><simpara> An <link linkend="ESource"><type>ESource</type></link> pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="GError"><type>GError</type></link> pointer
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the setting was stored in libebook's ESourceList, otherwise <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-remove" role="function"/>e_book_remove ()</title>
<indexterm><primary>e_book_remove</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_remove                   (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Removes the backing data for this <link linkend="EBook"><type>EBook</type></link>. For example, with the file backend this
deletes the database file. You cannot get it back!</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> on failure.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-open" role="function"/>e_book_open ()</title>
<indexterm><primary>e_book_open</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_open                     (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="gboolean">gboolean</link> only_if_exists,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Opens the addressbook, making it ready for queries and other operations.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>only_if_exists</parameter>&nbsp;:</term>
<listitem><simpara> if <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, fail if this book doesn't already exist, otherwise create it first
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the book was successfully opened, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-supported-fields" role="function"/>e_book_get_supported_fields ()</title>
<indexterm><primary>e_book_get_supported_fields</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_get_supported_fields     (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> **fields,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Gets a list of fields that can be stored for contacts
in this <parameter>book</parameter>. Other fields may be discarded. The list
will contain pointers to allocated strings, and both the
<link linkend="GList"><type>GList</type></link> and the strings must be freed by the caller.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>fields</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> of fields to set on success
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-supported-auth-methods" role="function"/>e_book_get_supported_auth_methods ()</title>
<indexterm><primary>e_book_get_supported_auth_methods</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_get_supported_auth_methods
                                            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> **auth_methods,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Queries <parameter>book</parameter> for the list of authentication methods it supports.
The list will contain pointers to allocated strings, and both the
<link linkend="GList"><type>GList</type></link> and the strings must be freed by the caller.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>auth_methods</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> of auth methods to set on success
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-required-fields" role="function"/>e_book_get_required_fields ()</title>
<indexterm><primary>e_book_get_required_fields</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_get_required_fields      (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> **fields,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Gets a list of fields that are required to be filled in for
all contacts in this <parameter>book</parameter>. The list will contain pointers
to allocated strings, and both the <link linkend="GList"><type>GList</type></link> and the strings
must be freed by the caller.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>fields</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> of fields to set on success
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-source" role="function"/>e_book_get_source ()</title>
<indexterm><primary>e_book_get_source</primary></indexterm><programlisting><link linkend="ESource">ESource</link>*    e_book_get_source               (<link linkend="EBook">EBook</link> *book);</programlisting>
<para>
Get the <link linkend="ESource"><type>ESource</type></link> that this book has loaded.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> The source.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-is-online" role="function"/>e_book_is_online ()</title>
<indexterm><primary>e_book_is_online</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_is_online                (<link linkend="EBook">EBook</link> *book);</programlisting>
<para>
Check if this book is connected.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if this book is connected, otherwise <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-is-opened" role="function"/>e_book_is_opened ()</title>
<indexterm><primary>e_book_is_opened</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_is_opened                (<link linkend="EBook">EBook</link> *book);</programlisting>
<para>
Check if this book has been opened.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> and <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if this book has been opened, otherwise <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-authenticate-user" role="function"/>e_book_authenticate_user ()</title>
<indexterm><primary>e_book_authenticate_user</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_authenticate_user        (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *user,
                                             const <link linkend="char">char</link> *passwd,
                                             const <link linkend="char">char</link> *auth_method,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Authenticates <parameter>user</parameter> with <parameter>passwd</parameter>, using the auth method
<parameter>auth_method</parameter>.  <parameter>auth_method</parameter> must be one of the authentication
methods returned using e_book_get_supported_auth_methods.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user</parameter>&nbsp;:</term>
<listitem><simpara> a string
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>passwd</parameter>&nbsp;:</term>
<listitem><simpara> a string
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>auth_method</parameter>&nbsp;:</term>
<listitem><simpara> a string
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-contact" role="function"/>e_book_get_contact ()</title>
<indexterm><primary>e_book_get_contact</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_get_contact              (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="EContact">EContact</link> **contact,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Fills in <parameter>contact</parameter> with the contents of the vcard in <parameter>book</parameter>
corresponding to <parameter>id</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&nbsp;:</term>
<listitem><simpara> a unique string ID specifying the contact
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EContact"><type>EContact</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-remove-contact" role="function"/>e_book_remove_contact ()</title>
<indexterm><primary>e_book_remove_contact</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_remove_contact           (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Removes the contact with id <parameter>id</parameter> from <parameter>book</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&nbsp;:</term>
<listitem><simpara> a string
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-remove-contacts" role="function"/>e_book_remove_contacts ()</title>
<indexterm><primary>e_book_remove_contacts</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_remove_contacts          (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> *ids,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Removes the contacts with ids from the list <parameter>ids</parameter> from <parameter>book</parameter>.  This is
always more efficient than calling e_book_remove_contact_by_id if you
have more than one id to remove, as some backends can implement it
as a batch request.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ids</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="GList"><type>GList</type></link> of const char *id's
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-add-contact" role="function"/>e_book_add_contact ()</title>
<indexterm><primary>e_book_add_contact</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_add_contact              (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Adds <parameter>contact</parameter> to <parameter>book</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EContact"><type>EContact</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-commit-contact" role="function"/>e_book_commit_contact ()</title>
<indexterm><primary>e_book_commit_contact</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_commit_contact           (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Applies the changes made to <parameter>contact</parameter> to the stored version in
<parameter>book</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EContact"><type>EContact</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-book-view" role="function"/>e_book_get_book_view ()</title>
<indexterm><primary>e_book_get_book_view</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_get_book_view            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookQuery">EBookQuery</link> *query,
                                             <link linkend="GList">GList</link> *requested_fields,
                                             <link linkend="int">int</link> max_results,
                                             <link linkend="EBookView">EBookView</link> **book_view,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Query <parameter>book</parameter> with <parameter>query</parameter>, creating a <link linkend="EBookView"><type>EBookView</type></link> in <parameter>book_view</parameter> with the fields
specified by <parameter>requested_fields</parameter> and limited at <parameter>max_results</parameter> records. On an
error, <parameter>error</parameter> is set and <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> returned.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>query</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBookQuery"><type>EBookQuery</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>requested_fields</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> containing the names of fields to return, or NULL for all
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>max_results</parameter>&nbsp;:</term>
<listitem><simpara> the maximum number of contacts to show (or 0 for all)
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>book_view</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="EBookView"><type>EBookView</type></link> pointer, will be set to the view
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-contacts" role="function"/>e_book_get_contacts ()</title>
<indexterm><primary>e_book_get_contacts</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_get_contacts             (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookQuery">EBookQuery</link> *query,
                                             <link linkend="GList">GList</link> **contacts,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Query <parameter>book</parameter> with <parameter>query</parameter>, setting <parameter>contacts</parameter> to the list of contacts which
matched. On failed, <parameter>error</parameter> will be set and <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> returned.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>query</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBookQuery"><type>EBookQuery</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>contacts</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> pointer, will be set to the list of contacts
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-changes" role="function"/>e_book_get_changes ()</title>
<indexterm><primary>e_book_get_changes</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_get_changes              (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="char">char</link> *changeid,
                                             <link linkend="GList">GList</link> **changes,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Get the set of changes since the previous call to <link linkend="e-book-get-changes"><type>e_book_get_changes</type></link> for a
given change ID.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>changeid</parameter>&nbsp;:</term>
<listitem><simpara>  the change ID
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>changes</parameter>&nbsp;:</term>
<listitem><simpara> return location for a <link linkend="GList"><type>GList</type></link> of <link linkend="EBookChange"><type>EBookChange</type></link> items
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE on success, FALSE otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-free-change-list" role="function"/>e_book_free_change_list ()</title>
<indexterm><primary>e_book_free_change_list</primary></indexterm><programlisting><link linkend="void">void</link>        e_book_free_change_list         (<link linkend="GList">GList</link> *change_list);</programlisting>
<para>
Free the contents of <link linkend="change-list"><type>change_list</type></link>, and the list itself.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>change_list</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> of <link linkend="EBookChange"><type>EBookChange</type></link> items
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-uri" role="function"/>e_book_get_uri ()</title>
<indexterm><primary>e_book_get_uri</primary></indexterm><programlisting>const <link linkend="char">char</link>* e_book_get_uri                  (<link linkend="EBook">EBook</link> *book);</programlisting>
<para>
Get the URI that this book has loaded. This string should not be freed.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> The URI.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-static-capabilities" role="function"/>e_book_get_static_capabilities ()</title>
<indexterm><primary>e_book_get_static_capabilities</primary></indexterm><programlisting>const <link linkend="char">char</link>* e_book_get_static_capabilities  (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Get the list of capabilities which the backend for this address book
supports. This string should not be freed.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> The capabilities list
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-check-static-capability" role="function"/>e_book_check_static_capability ()</title>
<indexterm><primary>e_book_check_static_capability</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_check_static_capability  (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *cap);</programlisting>
<para>
Check to see if the backend for this address book supports the capability
<parameter>cap</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cap</parameter>&nbsp;:</term>
<listitem><simpara> A capability string
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the backend supports <parameter>cap</parameter>, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-is-writable" role="function"/>e_book_is_writable ()</title>
<indexterm><primary>e_book_is_writable</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_is_writable              (<link linkend="EBook">EBook</link> *book);</programlisting>
<para>
Check if this book is writable.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if this book is writable, otherwise <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-cancel" role="function"/>e_book_cancel ()</title>
<indexterm><primary>e_book_cancel</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_cancel                   (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Used to cancel an already running operation on <parameter>book</parameter>.  This
function makes a synchronous CORBA to the backend telling it to
cancel the operation.  If the operation wasn't cancellable (either
transiently or permanently) or had already comopleted on the server
side, this function will return E_BOOK_STATUS_COULD_NOT_CANCEL, and
the operation will continue uncancelled.  If the operation could be
cancelled, this function will return E_BOOK_ERROR_OK, and the
blocked e_book function corresponding to current operation will
return with a status of E_BOOK_STATUS_CANCELLED.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-self" role="function"/>e_book_get_self ()</title>
<indexterm><primary>e_book_get_self</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_get_self                 (<link linkend="EContact">EContact</link> **contact,
                                             <link linkend="EBook">EBook</link> **book,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Get the <link linkend="EContact"><type>EContact</type></link> referring to the user of the address book
and set it in <parameter>contact</parameter> and <parameter>book</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EContact"><type>EContact</type></link> pointer to set
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link> pointer to set
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, otherwise <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-set-self" role="function"/>e_book_set_self ()</title>
<indexterm><primary>e_book_set_self</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_set_self                 (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Specify that <parameter>contact</parameter> residing in <parameter>book</parameter> is the <link linkend="EContact"><type>EContact</type></link> that
refers to the user of the address book.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EContact"><type>EContact</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GError"><type>GError</type></link> to set on failure
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-is-self" role="function"/>e_book_is_self ()</title>
<indexterm><primary>e_book_is_self</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_is_self                  (<link linkend="EContact">EContact</link> *contact);</programlisting>
<para>
Check if <parameter>contact</parameter> is the user of the address book.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EContact"><type>EContact</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>contact</parameter> is the user, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-get-addressbooks" role="function"/>e_book_get_addressbooks ()</title>
<indexterm><primary>e_book_get_addressbooks</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_get_addressbooks         (<link linkend="ESourceList">ESourceList</link> **addressbook_sources,
                                             <link linkend="GError">GError</link> **error);</programlisting>
<para>
Populate *addressbook_sources with the list of all sources which have been
added to Evolution.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>addressbook_sources</parameter>&nbsp;:</term>
<listitem><simpara> A pointer to a ESourceList* to set
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&nbsp;:</term>
<listitem><simpara> A pointer to a GError* to set on error
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>addressbook_sources</parameter> was set, otherwise <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="EBookCallback" role="function"/>EBookCallback ()</title>
<indexterm><primary>EBookCallback</primary></indexterm><programlisting><link linkend="void">void</link>        (*EBookCallback)                (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>status</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="EBookOpenProgressCallback" role="function"/>EBookOpenProgressCallback ()</title>
<indexterm><primary>EBookOpenProgressCallback</primary></indexterm><programlisting><link linkend="void">void</link>        (*EBookOpenProgressCallback)    (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *status_message,
                                             short <link linkend="percent">percent</link> ,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>status_message</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>Param3</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="EBookIdCallback" role="function"/>EBookIdCallback ()</title>
<indexterm><primary>EBookIdCallback</primary></indexterm><programlisting><link linkend="void">void</link>        (*EBookIdCallback)              (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>status</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="EBookEListCallback" role="function"/>EBookEListCallback ()</title>
<indexterm><primary>EBookEListCallback</primary></indexterm><programlisting><link linkend="void">void</link>        (*EBookEListCallback)           (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="EList">EList</link> *list,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>status</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>list</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="EBookListCallback" role="function"/>EBookListCallback ()</title>
<indexterm><primary>EBookListCallback</primary></indexterm><programlisting><link linkend="void">void</link>        (*EBookListCallback)            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="GList">GList</link> *list,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>status</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>list</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="EBookContactCallback" role="function"/>EBookContactCallback ()</title>
<indexterm><primary>EBookContactCallback</primary></indexterm><programlisting><link linkend="void">void</link>        (*EBookContactCallback)         (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>status</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="EBookBookViewCallback" role="function"/>EBookBookViewCallback ()</title>
<indexterm><primary>EBookBookViewCallback</primary></indexterm><programlisting><link linkend="void">void</link>        (*EBookBookViewCallback)        (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookStatus">EBookStatus</link> status,
                                             <link linkend="EBookView">EBookView</link> *book_view,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>status</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>book_view</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-open" role="function"/>e_book_async_open ()</title>
<indexterm><primary>e_book_async_open</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_open               (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="gboolean">gboolean</link> only_if_exists,
                                             <link linkend="EBookCallback">EBookCallback</link> open_response,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Opens the addressbook, making it ready for queries and other operations.
This function does not block.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>only_if_exists</parameter>&nbsp;:</term>
<listitem><simpara> if <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, fail if this book doesn't already exist, otherwise create it first
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>open_response</parameter>&nbsp;:</term>
<listitem><simpara> a function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if successful, <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-remove" role="function"/>e_book_async_remove ()</title>
<indexterm><primary>e_book_async_remove</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_remove             (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Remove the backing data for this <link linkend="EBook"><type>EBook</type></link>. For example, with the file backend this
deletes the database file. You cannot get it back!</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> a function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if successful, <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-get-supported-fields" role="function"/>e_book_async_get_supported_fields ()</title>
<indexterm><primary>e_book_async_get_supported_fields</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_get_supported_fields
                                            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookEListCallback">EBookEListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Gets a list of fields that can be stored for contacts
in this <parameter>book</parameter>. Other fields may be discarded. This
function does not block.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-get-supported-auth-methods" role="function"/>e_book_async_get_supported_auth_methods ()</title>
<indexterm><primary>e_book_async_get_supported_auth_methods</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_get_supported_auth_methods
                                            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookEListCallback">EBookEListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Queries <parameter>book</parameter> for the list of authentication methods it supports.
This function does not block.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-authenticate-user" role="function"/>e_book_async_authenticate_user ()</title>
<indexterm><primary>e_book_async_authenticate_user</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_authenticate_user  (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *user,
                                             const <link linkend="char">char</link> *passwd,
                                             const <link linkend="char">char</link> *auth_method,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Authenticate <parameter>user</parameter> with <parameter>passwd</parameter>, using the auth method
<parameter>auth_method</parameter>. <parameter>auth_method</parameter> must be one of the authentication
methods returned using e_book_get_supported_auth_methods.
This function does not block.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user</parameter>&nbsp;:</term>
<listitem><simpara> user name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>passwd</parameter>&nbsp;:</term>
<listitem><simpara> password
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>auth_method</parameter>&nbsp;:</term>
<listitem><simpara> string indicating authentication method
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if successful, <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-get-contact" role="function"/>e_book_async_get_contact ()</title>
<indexterm><primary>e_book_async_get_contact</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_get_contact        (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="EBookContactCallback">EBookContactCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Retrieves a contact specified by <parameter>id</parameter> from <parameter>book</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&nbsp;:</term>
<listitem><simpara> a unique string ID specifying the contact
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> function to call when operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if successful, <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-get-contacts" role="function"/>e_book_async_get_contacts ()</title>
<indexterm><primary>e_book_async_get_contacts</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_get_contacts       (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookQuery">EBookQuery</link> *query,
                                             <link linkend="EBookListCallback">EBookListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Query <parameter>book</parameter> with <parameter>query</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>query</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBookQuery"><type>EBookQuery</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> a function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> on success, <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-remove-contact" role="function"/>e_book_async_remove_contact ()</title>
<indexterm><primary>e_book_async_remove_contact</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_remove_contact     (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Removes <parameter>contact</parameter> from <parameter>book</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EContact"><type>EContact</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> a function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-remove-contact-by-id" role="function"/>e_book_async_remove_contact_by_id ()</title>
<indexterm><primary>e_book_async_remove_contact_by_id</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_remove_contact_by_id
                                            (<link linkend="EBook">EBook</link> *book,
                                             const <link linkend="char">char</link> *id,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Removes the contact with id <parameter>id</parameter> from <parameter>book</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>id</parameter>&nbsp;:</term>
<listitem><simpara> a unique ID string specifying the contact
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> a function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-remove-contacts" role="function"/>e_book_async_remove_contacts ()</title>
<indexterm><primary>e_book_async_remove_contacts</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_remove_contacts    (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="GList">GList</link> *ids,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Removes the contacts with ids from the list <parameter>ids</parameter> from <parameter>book</parameter>.  This is
always more efficient than calling <link linkend="e-book-remove-contact-by-id"><function>e_book_remove_contact_by_id()</function></link> if you
have more than one id to remove, as some backends can implement it
as a batch request.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ids</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> of const char *id's
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> a function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-add-contact" role="function"/>e_book_async_add_contact ()</title>
<indexterm><primary>e_book_async_add_contact</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    e_book_async_add_contact        (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="EBookIdCallback">EBookIdCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Adds <parameter>contact</parameter> to <parameter>book</parameter> without blocking.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EContact"><type>EContact</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the operation was started, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-commit-contact" role="function"/>e_book_async_commit_contact ()</title>
<indexterm><primary>e_book_async_commit_contact</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_commit_contact     (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EContact">EContact</link> *contact,
                                             <link linkend="EBookCallback">EBookCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Applies the changes made to <parameter>contact</parameter> to the stored version in
<parameter>book</parameter> without blocking.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>contact</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EContact"><type>EContact</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the operation was started, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-get-book-view" role="function"/>e_book_async_get_book_view ()</title>
<indexterm><primary>e_book_async_get_book_view</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_get_book_view      (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookQuery">EBookQuery</link> *query,
                                             <link linkend="GList">GList</link> *requested_fields,
                                             <link linkend="int">int</link> max_results,
                                             <link linkend="EBookBookViewCallback">EBookBookViewCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Query <parameter>book</parameter> with <parameter>query</parameter>, creating a <link linkend="EBookView"><type>EBookView</type></link> with the fields
specified by <parameter>requested_fields</parameter> and limited at <parameter>max_results</parameter> records.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>query</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBookQuery"><type>EBookQuery</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>requested_fields</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> containing the names of fields to return, or NULL for all
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>max_results</parameter>&nbsp;:</term>
<listitem><simpara> the maximum number of contacts to show (or 0 for all)
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> a function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if successful, <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-get-changes" role="function"/>e_book_async_get_changes ()</title>
<indexterm><primary>e_book_async_get_changes</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_get_changes        (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="char">char</link> *changeid,
                                             <link linkend="EBookListCallback">EBookListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Get the set of changes since the previous call to <link linkend="e-book-async-get-changes"><type>e_book_async_get_changes</type></link>
for a given change ID.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>changeid</parameter>&nbsp;:</term>
<listitem><simpara>  the change ID
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> function to call when operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> TRUE on success, FALSE otherwise
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-book-async-get-required-fields" role="function"/>e_book_async_get_required_fields ()</title>
<indexterm><primary>e_book_async_get_required_fields</primary></indexterm><programlisting><link linkend="guint">guint</link>       e_book_async_get_required_fields
                                            (<link linkend="EBook">EBook</link> *book,
                                             <link linkend="EBookEListCallback">EBookEListCallback</link> cb,
                                             <link linkend="gpointer">gpointer</link> closure);</programlisting>
<para>
Gets a list of fields that are required to be filled in for
all contacts in this <parameter>book</parameter>. This function does not block.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>book</parameter>&nbsp;:</term>
<listitem><simpara> an <link linkend="EBook"><type>EBook</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cb</parameter>&nbsp;:</term>
<listitem><simpara> function to call when the operation finishes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara> data to pass to callback function
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the operation was started, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>

<refsect1 role="signals">
<title role="signals.title">Signal Details</title>
<refsect2><title><anchor id="EBook-auth-required"/>The &quot;auth-required&quot; signal</title>
<indexterm><primary>EBook::auth-required</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="EBook">EBook</link>   *ebook,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run last</programlisting>
<para>
Authentication is required to access this source.  You should call
<link linkend="e-book-authenticate-user"><type>e_book_authenticate_user</type></link> or <link linkend="e-book-async-authenticate-user"><type>e_book_async_authenticate_user</type></link>.
</para><variablelist role="params">
<varlistentry><term><parameter>ebook</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2><refsect2><title><anchor id="EBook-backend-died"/>The &quot;backend-died&quot; signal</title>
<indexterm><primary>EBook::backend-died</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="EBook">EBook</link>   *ebook,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run last</programlisting>
<para>
The backend for this address book has died.
</para><variablelist role="params">
<varlistentry><term><parameter>ebook</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2><refsect2><title><anchor id="EBook-connection-status"/>The &quot;connection-status&quot; signal</title>
<indexterm><primary>EBook::connection-status</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="EBook">EBook</link>   *ebook,
                                            <link linkend="gboolean">gboolean</link> arg1,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run last</programlisting>
<para>
The connection status for this book is being reported.
</para><variablelist role="params">
<varlistentry><term><parameter>ebook</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>arg1</parameter>&nbsp;:</term>
<listitem><simpara><link linkend="TRUE:CAPS"><type>TRUE</type></link> if the connection is online, <link linkend="FALSE:CAPS"><type>FALSE</type></link> otherwise.

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2><refsect2><title><anchor id="EBook-writable-status"/>The &quot;writable-status&quot; signal</title>
<indexterm><primary>EBook::writable-status</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="EBook">EBook</link>   *ebook,
                                            <link linkend="gboolean">gboolean</link> arg1,
                                            <link linkend="gpointer">gpointer</link> user_data)      : Run last</programlisting>
<para>
The writable status for this book is being reported.
</para><variablelist role="params">
<varlistentry><term><parameter>ebook</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>arg1</parameter>&nbsp;:</term>
<listitem><simpara><link linkend="TRUE:CAPS"><type>TRUE</type></link> if the book is writable, <link linkend="FALSE:CAPS"><type>FALSE</type></link> otherwise.

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>


<refsect1>
<title>See Also</title>
<para>
<link linkend="EBookView"><type>EBookView</type></link>
</para>
</refsect1>

</refentry>
