### Method

# Qmi Device allocate_client

since: 1.0

#### Declaration [src]

    void
    qmi_device_allocate_client (
      QmiDevice* self,
      QmiService service,
      guint8 cid,
      guint timeout,
      GCancellable* cancellable,
      GAsyncReadyCallback callback,
      gpointer user_data
    )

#### Description [src]

Asynchronously allocates a new `QmiClient` in `self`.

If `QMI_CID_NONE` is given in `cid`, a new client ID will be allocated; otherwise a client with the given `cid` will be generated.

When the operation is finished `callback` will be called. You can then call `qmi_device_allocate_client_finish()` to get the result of the operation.

Note: Clients for the `QMI_SERVICE_CTL` cannot be created with this method; instead get/peek the implicit one from `self`.

Available since: 1.0

This method completes asynchronously. Use `qmi_device_allocate_client_finish()` inside the `GAsyncReadyCallback` to obtain the result of the operation.

#### Parameters

`service`

  Type: `QmiService`

  A valid `QmiService`.

`cid`

  Type: `guint8`

  A valid client ID, or `QMI_CID_NONE`.

`timeout`

  Type: `guint`

  Maximum time to wait.

`cancellable`

  Type: `GCancellable`

  Optional `GCancellable` object, `NULL` to ignore.

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

`callback`

  Type: `GAsyncReadyCallback`

  A `GAsyncReadyCallback` to call when the operation is finished.

  The argument can be `NULL`.

`user_data`

  Type: `gpointer`

  The data to pass to callback function.

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