## EDataBookView EDataBookView |

## Synopsis

    struct              EDataBookView;
    EDataBookView *     e_data_book_view_new                (EDataBook *book,
                                                             const gchar *path,
                                                             const gchar *card_query,
                                                             EBookBackendSExp *card_sexp,
                                                             gint max_results);
    void                e_data_book_view_set_thresholds     (EDataBookView *book_view,
                                                             gint minimum_grouping_threshold,
                                                             gint maximum_grouping_threshold);
    const gchar *       e_data_book_view_get_card_query     (EDataBookView *book_view);
    EBookBackendSExp*   e_data_book_view_get_card_sexp      (EDataBookView *book_view);
    gint                e_data_book_view_get_max_results    (EDataBookView *book_view);
    EBookBackend*       e_data_book_view_get_backend        (EDataBookView *book_view);
    void                e_data_book_view_notify_update      (EDataBookView *book_view,
                                                             EContact *contact);
    void                e_data_book_view_notify_update_vcard
                                                            (EDataBookView *book_view,
                                                             gchar *vcard);
    void                e_data_book_view_notify_update_prefiltered_vcard
                                                            (EDataBookView *book_view,
                                                             const gchar *id,
                                                             gchar *vcard);
    void                e_data_book_view_notify_remove      (EDataBookView *book_view,
                                                             const gchar *id);
    void                e_data_book_view_notify_complete    (EDataBookView *book_view,
                                                             EDataBookStatus status);
    void                e_data_book_view_notify_status_message
                                                            (EDataBookView *book_view,
                                                             const gchar *message);
    void                e_data_book_view_ref                (EDataBookView *book_view);
    void                e_data_book_view_unref              (EDataBookView *book_view);

## Object Hierarchy

      GObject
       +----EDataBookView

## Signals

      "complete"                                       : Run Last
      "contacts-added"                                 : Run Last
      "contacts-changed"                               : Run Last
      "contacts-removed"                               : Run Last
      "status-message"                                 : Run Last

## Description

## Details

### struct EDataBookView

    struct EDataBookView;

### e_data_book_view_new ()

    EDataBookView *     e_data_book_view_new                (EDataBook *book,
                                                             const gchar *path,
                                                             const gchar *card_query,
                                                             EBookBackendSExp *card_sexp,
                                                             gint max_results);

Create a new EDataBookView for the given EBook, filtering on card_sexp, and place it on DBus at the object path path.

`book` : | The EDataBook to search
`path` : | The object path that this book view should have
`card_query` : | The query as a string
`card_sexp` : | The query as an EBookBackendSExp
`max_results` : | The maximum number of results to return
Returns : |

### e_data_book_view_set_thresholds ()

    void                e_data_book_view_set_thresholds     (EDataBookView *book_view,
                                                             gint minimum_grouping_threshold,
                                                             gint maximum_grouping_threshold);

`book_view` : |
`minimum_grouping_threshold` : |
`maximum_grouping_threshold` : |

### e_data_book_view_get_card_query ()

    const gchar *       e_data_book_view_get_card_query     (EDataBookView *book_view);

Gets the text representation of the s-expression used for matching contacts to `book_view`.

`book_view` : | an EDataBookView
Returns : | The textual s-expression used.

### e_data_book_view_get_card_sexp ()

    EBookBackendSExp*   e_data_book_view_get_card_sexp      (EDataBookView *book_view);

Gets the s-expression used for matching contacts to `book_view`.

`book_view` : | an EDataBookView
Returns : | The EBookBackendSExp used.

### e_data_book_view_get_max_results ()

    gint                e_data_book_view_get_max_results    (EDataBookView *book_view);

Gets the maximum number of results returned by `book_view`'s query.

`book_view` : | an EDataBookView
Returns : | The maximum number of results returned.

### e_data_book_view_get_backend ()

    EBookBackend*       e_data_book_view_get_backend        (EDataBookView *book_view);

Gets the backend that `book_view` is querying.

`book_view` : | an EDataBookView
Returns : | The associated EBookBackend.

### e_data_book_view_notify_update ()

    void                e_data_book_view_notify_update      (EDataBookView *book_view,
                                                             EContact *contact);

Notify listeners that `contact` has changed. This can trigger an add, change or removal event depending on whether the change causes the contact to start matching, no longer match, or stay matching the query specified by `book_view`.

`book_view` : | an EDataBookView
`contact` : | an EContact

### e_data_book_view_notify_update_vcard ()

    void                e_data_book_view_notify_update_vcard
                                                            (EDataBookView *book_view,
                                                             gchar *vcard);

Notify listeners that `vcard` has changed. This can trigger an add, change or removal event depending on whether the change causes the contact to start matching, no longer match, or stay matching the query specified by `book_view`. This method should be preferred over e_data_book_view_notify_update when the native representation of a contact is a vCard.

`book_view` : | an EDataBookView
`vcard` : | a plain vCard

### e_data_book_view_notify_update_prefiltered_vcard ()

    void                e_data_book_view_notify_update_prefiltered_vcard
                                                            (EDataBookView *book_view,
                                                             const gchar *id,
                                                             gchar *vcard);

Notify listeners that `vcard` has changed. This can trigger an add, change or removal event depending on whether the change causes the contact to start matching, no longer match, or stay matching the query specified by `book_view`. This method should be preferred over e_data_book_view_notify_update when the native representation of a contact is a vCard.

The important difference between this method and e_data_book_view_notify_update and e_data_book_view_notify_update_vcard is that it doesn't match the contact against the book view query to see if it should be included, it assumes that this has been done and the contact is known to exist in the view.

`book_view` : | an EDataBookView
`id` : | the UID of this contact
`vcard` : | a plain vCard

### e_data_book_view_notify_remove ()

    void                e_data_book_view_notify_remove      (EDataBookView *book_view,
                                                             const gchar *id);

Notify listeners that a contact specified by `id` was removed from `book_view`.

`book_view` : | an EDataBookView
`id` : | a unique contact ID

### e_data_book_view_notify_complete ()

    void                e_data_book_view_notify_complete    (EDataBookView *book_view,
                                                             EDataBookStatus status);

Notifies listeners that all pending updates on `book_view` have been sent. The listener's information should now be in sync with the backend's.

`book_view` : | an EDataBookView
`status` : | the status of the query

### e_data_book_view_notify_status_message ()

    void                e_data_book_view_notify_status_message
                                                            (EDataBookView *book_view,
                                                             const gchar *message);

Provides listeners with a human-readable text describing the current backend operation. This can be used for progress reporting.

`book_view` : | an EDataBookView
`message` : | a text message

### e_data_book_view_ref ()

    void                e_data_book_view_ref                (EDataBookView *book_view);

Increase the reference count of the book view. This is a function to aid the transition from Bonobo to DBUS.

`book_view` : | an EBookView

Since 2.26

### e_data_book_view_unref ()

    void                e_data_book_view_unref              (EDataBookView *book_view);

Decrease the reference count of the book view. This is a function to aid the transition from Bonobo to DBUS.

`book_view` : | an EBookView

Since 2.26

## Signal Details

### The `"complete"` signal

    void                user_function                      (EDataBookView *edatabookview,
                                                            guint          arg1,
                                                            gpointer       user_data)          : Run Last

`edatabookview` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"contacts-added"` signal

    void                user_function                      (EDataBookView *edatabookview,
                                                            GStrv         *arg1,
                                                            gpointer       user_data)          : Run Last

`edatabookview` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"contacts-changed"` signal

    void                user_function                      (EDataBookView *edatabookview,
                                                            GStrv         *arg1,
                                                            gpointer       user_data)          : Run Last

`edatabookview` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"contacts-removed"` signal

    void                user_function                      (EDataBookView *edatabookview,
                                                            GStrv         *arg1,
                                                            gpointer       user_data)          : Run Last

`edatabookview` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"status-message"` signal

    void                user_function                      (EDataBookView *edatabookview,
                                                            gchar         *arg1,
                                                            gpointer       user_data)          : Run Last

`edatabookview` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.