### Method

# GLib Source set_callback_indirect

#### Declaration

    void
    g_source_set_callback_indirect (
      GSource* source,
      gpointer callback_data,
      GSourceCallbackFuncs* callback_funcs
    )

#### Description

Sets the callback function storing the data as a refcounted callback “object”. This is used internally. Note that calling `g_source_set_callback_indirect()` assumes an initial reference count on `callback_data`, and thus `callback_funcs`->unref will eventually be called once more than `callback_funcs`->ref.

It is safe to call this function multiple times on a source which has already been attached to a context. The changes will take effect for the next time the source is dispatched after this call returns.

#### Parameters

`callback_data`

  Type: `gpointer`

  Pointer to callback data “object”

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

`callback_funcs`

  Type: `GSourceCallbackFuncs`

  Functions for reference counting `callback_data` and getting the callback and data.

  The data is owned by the caller of the method.