## e-book-contacts-types e-book-contacts-types |

## Synopsis

    #define             E_BOOK_CLIENT_ERROR
    enum                EBookClientViewFlags;
    enum                EBookClientError;
    enum                EDataBookStatus;
    enum                EBookViewStatus;
    enum                EBookChangeType;
                        EBookChange;
    enum                EBookIndexType;
    GQuark              e_book_client_error_quark           (void);
    const gchar *       e_book_client_error_to_string       (EBookClientError code);
    GError *            e_book_client_error_create          (EBookClientError code,
                                                             const gchar *custom_msg);

## Description

## Details

### E_BOOK_CLIENT_ERROR

    #define E_BOOK_CLIENT_ERROR e_book_client_error_quark ()

FIXME: Document me.

Since 3.2

### enum EBookClientViewFlags

    typedef enum {
    	E_BOOK_CLIENT_VIEW_FLAGS_NONE = 0,
    	E_BOOK_CLIENT_VIEW_FLAGS_NOTIFY_INITIAL = (1 << 0),
    } EBookClientViewFlags;

Flags that control the behaviour of an EBookClientView.

`E_BOOK_CLIENT_VIEW_FLAGS_NONE` | Symbolic value for no flags
`E_BOOK_CLIENT_VIEW_FLAGS_NOTIFY_INITIAL` | If this flag is set then all contacts matching the view's query will be sent as notifications when starting the view, otherwise only future changes will be reported. The default for a EBookClientView is `TRUE`.

Since 3.4

### enum EBookClientError

    typedef enum {
    	E_BOOK_CLIENT_ERROR_NO_SUCH_BOOK,
    	E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND,
    	E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS,
    	E_BOOK_CLIENT_ERROR_NO_SUCH_SOURCE,
    	E_BOOK_CLIENT_ERROR_NO_SPACE
    } EBookClientError;

FIXME: Document me.

`E_BOOK_CLIENT_ERROR_NO_SUCH_BOOK` |
`E_BOOK_CLIENT_ERROR_CONTACT_NOT_FOUND` |
`E_BOOK_CLIENT_ERROR_CONTACT_ID_ALREADY_EXISTS` |
`E_BOOK_CLIENT_ERROR_NO_SUCH_SOURCE` |
`E_BOOK_CLIENT_ERROR_NO_SPACE` |

Since 3.2

### enum EDataBookStatus

    typedef enum {
    	E_DATA_BOOK_STATUS_SUCCESS,
    	E_DATA_BOOK_STATUS_BUSY,
    	E_DATA_BOOK_STATUS_REPOSITORY_OFFLINE,
    	E_DATA_BOOK_STATUS_PERMISSION_DENIED,
    	E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND,
    	E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS,
    	E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED,
    	E_DATA_BOOK_STATUS_AUTHENTICATION_REQUIRED,
    	E_DATA_BOOK_STATUS_UNSUPPORTED_FIELD,
    	E_DATA_BOOK_STATUS_UNSUPPORTED_AUTHENTICATION_METHOD,
    	E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE,
    	E_DATA_BOOK_STATUS_NO_SUCH_BOOK,
    	E_DATA_BOOK_STATUS_BOOK_REMOVED,
    	E_DATA_BOOK_STATUS_OFFLINE_UNAVAILABLE,
    	E_DATA_BOOK_STATUS_SEARCH_SIZE_LIMIT_EXCEEDED,
    	E_DATA_BOOK_STATUS_SEARCH_TIME_LIMIT_EXCEEDED,
    	E_DATA_BOOK_STATUS_INVALID_QUERY,
    	E_DATA_BOOK_STATUS_QUERY_REFUSED,
    	E_DATA_BOOK_STATUS_COULD_NOT_CANCEL,
    	E_DATA_BOOK_STATUS_OTHER_ERROR,
    	E_DATA_BOOK_STATUS_INVALID_SERVER_VERSION,
    	E_DATA_BOOK_STATUS_NO_SPACE,
    	E_DATA_BOOK_STATUS_INVALID_ARG,
    	E_DATA_BOOK_STATUS_NOT_SUPPORTED,
    	E_DATA_BOOK_STATUS_NOT_OPENED,
    	E_DATA_BOOK_STATUS_OUT_OF_SYNC
    } EDataBookStatus;

XXX Document me!

`E_DATA_BOOK_STATUS_SUCCESS` |
`E_DATA_BOOK_STATUS_BUSY` |
`E_DATA_BOOK_STATUS_REPOSITORY_OFFLINE` |
`E_DATA_BOOK_STATUS_PERMISSION_DENIED` |
`E_DATA_BOOK_STATUS_CONTACT_NOT_FOUND` |
`E_DATA_BOOK_STATUS_CONTACTID_ALREADY_EXISTS` |
`E_DATA_BOOK_STATUS_AUTHENTICATION_FAILED` |
`E_DATA_BOOK_STATUS_AUTHENTICATION_REQUIRED` |
`E_DATA_BOOK_STATUS_UNSUPPORTED_FIELD` |
`E_DATA_BOOK_STATUS_UNSUPPORTED_AUTHENTICATION_METHOD` |
`E_DATA_BOOK_STATUS_TLS_NOT_AVAILABLE` |
`E_DATA_BOOK_STATUS_NO_SUCH_BOOK` |
`E_DATA_BOOK_STATUS_BOOK_REMOVED` |
`E_DATA_BOOK_STATUS_OFFLINE_UNAVAILABLE` |
`E_DATA_BOOK_STATUS_SEARCH_SIZE_LIMIT_EXCEEDED` |
`E_DATA_BOOK_STATUS_SEARCH_TIME_LIMIT_EXCEEDED` |
`E_DATA_BOOK_STATUS_INVALID_QUERY` |
`E_DATA_BOOK_STATUS_QUERY_REFUSED` |
`E_DATA_BOOK_STATUS_COULD_NOT_CANCEL` |
`E_DATA_BOOK_STATUS_OTHER_ERROR` |
`E_DATA_BOOK_STATUS_INVALID_SERVER_VERSION` |
`E_DATA_BOOK_STATUS_NO_SPACE` |
`E_DATA_BOOK_STATUS_INVALID_ARG` |
`E_DATA_BOOK_STATUS_NOT_SUPPORTED` |
`E_DATA_BOOK_STATUS_NOT_OPENED` |
`E_DATA_BOOK_STATUS_OUT_OF_SYNC` |

Since 3.6

### enum EBookViewStatus

    typedef enum {
    	E_BOOK_VIEW_STATUS_OK,
    	E_BOOK_VIEW_STATUS_TIME_LIMIT_EXCEEDED,
    	E_BOOK_VIEW_STATUS_SIZE_LIMIT_EXCEEDED,
    	E_BOOK_VIEW_ERROR_INVALID_QUERY,
    	E_BOOK_VIEW_ERROR_QUERY_REFUSED,
    	E_BOOK_VIEW_ERROR_OTHER_ERROR
    } EBookViewStatus;

`E_BOOK_VIEW_STATUS_OK` |
`E_BOOK_VIEW_STATUS_TIME_LIMIT_EXCEEDED` |
`E_BOOK_VIEW_STATUS_SIZE_LIMIT_EXCEEDED` |
`E_BOOK_VIEW_ERROR_INVALID_QUERY` |
`E_BOOK_VIEW_ERROR_QUERY_REFUSED` |
`E_BOOK_VIEW_ERROR_OTHER_ERROR` |

### enum EBookChangeType

    typedef enum {
    	E_BOOK_CHANGE_CARD_ADDED,
    	E_BOOK_CHANGE_CARD_DELETED,
    	E_BOOK_CHANGE_CARD_MODIFIED
    } EBookChangeType;

`E_BOOK_CHANGE_CARD_ADDED` |
`E_BOOK_CHANGE_CARD_DELETED` |
`E_BOOK_CHANGE_CARD_MODIFIED` |

### EBookChange

    typedef struct {
    	EBookChangeType  change_type;
    	EContact        *contact;
    } EBookChange;

### enum EBookIndexType

    typedef enum {
    	E_BOOK_INDEX_PREFIX = 0,
    	E_BOOK_INDEX_SUFFIX,
    	E_BOOK_INDEX_PHONE
    } EBookIndexType;

The type of index defined by `e_source_backend_summary_setup_set_indexed_fields()`

`E_BOOK_INDEX_PREFIX` | An index suitable for searching contacts with a prefix pattern
`E_BOOK_INDEX_SUFFIX` | An index suitable for searching contacts with a suffix pattern
`E_BOOK_INDEX_PHONE` | An index suitable for searching contacts for phone numbers. ### Note that phone numbers must be convertible into FQTN according to E.164 to be stored in this index. The number "+9999999" for instance won't be stored because the country calling code "+999" currently is not assigned.

### e_book_client_error_quark ()

    GQuark              e_book_client_error_quark           (void);

### e_book_client_error_to_string ()

    const gchar *       e_book_client_error_to_string       (EBookClientError code);

FIXME: Document me.

`code` : | an EBookClientError code

Since 3.2

### e_book_client_error_create ()

    GError *            e_book_client_error_create          (EBookClientError code,
                                                             const gchar *custom_msg);

### Warning

`e_book_client_error_create` has been deprecated since version 3.8 and should not be used in newly-written code. Just use the GError API directly.

`code` : | an EBookClientError code to create
`custom_msg` : | custom message to use for the error; can be `NULL`
Returns : | a new GError containing an E_BOOK_CLIENT_ERROR of the given `code`. If the `custom_msg` is NULL, then the error message is the one returned from `e_book_client_error_to_string()` for the `code`, otherwise the given message is used. Returned pointer should be freed with `g_error_free()`.

Since 3.2