EDataServer.WebDAVSession.sync_collection_sync

### Method

# EDataServer WebDAVSessionsync_collection_sync

unstable since: 3.62

#### Declaration [src]

    gboolean
    e_webdav_session_sync_collection_sync (
      EWebDAVSession* webdav,
      const gchar* uri,
      const gchar* sync_token,
      EWebDAVSessionModifyReportRequestFunc modify_report_request,
      EWebDAVSessionResourceModifiedFunc resource_modified,
      EWebDAVSessionResourceRemovedFunc resource_removed,
      gpointer user_data,
      gchar** out_new_sync_token,
      GCancellable* cancellable,
      GError** error
    )

#### Description [src]

Issues a DAV:sync-collection report on the collection for which the `webdav` is opened, or the one identified by `uri`. It checks only resources directly in that collection, not in the sub-collections. It traverses the complete response even when the server splits it into several chunks.

The `sync_token` is the last returned synchronization token returned by the previous call of this function, or `NULL`, when no last state is known.

The optional `modify_report_request` can be used to add more properties to be fetched from the server. The ‘etag’ is always fetched.

The `resource_modified` is calls for each resource which had been added or which had been modified since the last call. Similarly, the `resource_removed` is called for each resource which had been removed since the last call.

On success, the `out_new_sync_token` is filled with a synchronization token, which can be used as `sync_token` the next time.

The function does not check whether the DAV:sync-collection is supported on the collection, it’s up to the caller to ensure it can be called, or to deal with an error when it cannot be used.

Note: The call can return failure and error, but still populate the `out_new_sync_token`, it’s when the response is split into multiple chunks and the first or more works, but at some point the following call to fetch the next chunk fails.

Available since: 3.62

This method is not directly available to language bindings.

#### Parameters

`uri`

  Type: `const gchar*`

  URI to issue the request for, or `NULL` to read from `ESource`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`sync_token`

  Type: `const gchar*`

  The last synchronization token, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`modify_report_request`

  Type: `EWebDAVSessionModifyReportRequestFunc`

  An `EWebDAVSessionModifyReportRequestFunc`, or `NULL`.

  The argument can be `NULL`.

`resource_modified`

  Type: `EWebDAVSessionResourceModifiedFunc`

  An `EWebDAVSessionResourceModifiedFunc`.

`resource_removed`

  Type: `EWebDAVSessionResourceRemovedFunc`

  An `EWebDAVSessionResourceRemovedFunc`.

`user_data`

  Type: `gpointer`

  User data for the callbacks.

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

`out_new_sync_token`

  Type: `gchar**`

  Return location for a new sync token.

  The argument will be set by the function.
  The caller of the method takes ownership of the returned data, and is responsible for freeing it.
  The value is a NUL terminated UTF-8 string.

`cancellable`

  Type: `GCancellable`

  Optional `GCancellable` object, or `NULL`.

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

`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 method 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: `gboolean`

Whether succeeded.