### Function

# EBook BookClient connect_direct_sync

since: 3.8

#### Declaration [src]

    EClient*
    e_book_client_connect_direct_sync (
      ESourceRegistry* registry,
      ESource* source,
      guint32 wait_for_connected_seconds,
      GCancellable* cancellable,
      GError** error
    )

#### Description [src]

Like e_book_client_connect_sync(), except creates the book client for direct read access to the underlying addressbook.

Available since: 3.8

#### Parameters

`registry`

  Type: `ESourceRegistry`

  An `ESourceRegistry`.

  The data is owned by the caller of the function.

`source`

  Type: `ESource`

  An `ESource`.

  The data is owned by the caller of the function.

`wait_for_connected_seconds`

  Type: `guint32`

  Timeout, in seconds, to wait for the backend to be fully connected.

`cancellable`

  Type: `GCancellable`

  Optional `GCancellable` object, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

`error`

  Type: `GError **`

  The return location for a recoverable error.

  The argument can be `NULL`.
  If the return location is not `NULL`, then you must initialize it to a `NULL` `GError*`.
  The argument will be left initialized to `NULL` by the function if there are no errors.
  In case of error, the argument will be set to a newly allocated `GError`; the caller will take ownership of the data, and be responsible for freeing it.

#### Return value

Type: `EBookClient`

A new but unopened `EBookClient` or `NULL` on error.

The caller of the function takes ownership of the data, and is responsible for freeing it.