EDataServer.Source.refresh_add_timeout

### Method

# EDataServer Sourcerefresh_add_timeout

since: 3.6

#### Declaration [src]

    guint
    e_source_refresh_add_timeout (
      ESource* source,
      GMainContext* context,
      ESourceRefreshFunc callback,
      gpointer user_data,
      GDestroyNotify notify
    )

#### Description [src]

This is a simple way to schedule a periodic data source refresh.

Adds a timeout `GSource` to `context` and handles all the bookkeeping if `source`‘s refresh `ESourceRefresh:enabled` state or its refresh `ESourceRefresh:interval-minutes` value changes. The `callback` is expected to dispatch an asynchronous job to connect to and fetch updates from a remote server.

The returned ID can be passed to `e_source_refresh_remove_timeout()` to remove the timeout from `context`. Note the ID is a private handle and cannot be passed to g_source_remove().

Available since: 3.6

#### Parameters

`context`

  Type: `GMainContext`

  A `GMainContext`, or `NULL` (if `NULL`, the default context will be used).

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

`callback`

  Type: `ESourceRefreshFunc`

  Function to call on each timeout.

`user_data`

  Type: `gpointer`

  Data to pass to `callback`.

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

`notify`

  Type: `GDestroyNotify`

  Function to call when the timeout is removed, or `NULL`.

  The argument can be `NULL`.

#### Return value

Type: `guint`

A refresh timeout ID.