Method

GioVfsregister_uri_scheme

since: 2.50

Declaration

gboolean
g_vfs_register_uri_scheme (
  GVfs* vfs,
  const char* scheme,
  GVfsFileLookupFunc uri_func,
  gpointer uri_data,
  GDestroyNotify uri_destroy,
  GVfsFileLookupFunc parse_name_func,
  gpointer parse_name_data,
  GDestroyNotify parse_name_destroy
)

Description

Registers uri_func and parse_name_func as the GFile URI and parse name lookup functions for URIs with a scheme matching scheme. Note that scheme is registered only within the running application, as opposed to desktop-wide as it happens with GVfs backends.

When a GFile is requested with an URI containing scheme (e.g. through g_file_new_for_uri()), uri_func will be called to allow a custom constructor. The implementation of uri_func should not be blocking, and must not call g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme().

When g_file_parse_name() is called with a parse name obtained from such file, parse_name_func will be called to allow the GFile to be created again. In that case, it’s responsibility of parse_name_func to make sure the parse name matches what the custom GFile implementation returned when g_file_get_parse_name() was previously called. The implementation of parse_name_func should not be blocking, and must not call g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme().

It’s an error to call this function twice with the same scheme. To unregister a custom URI scheme, use g_vfs_unregister_uri_scheme().

Available since: 2.50

Parameters

scheme

Type: const char*

An URI scheme, e.g. “http”

The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.
uri_func

Type: GVfsFileLookupFunc

A GVfsFileLookupFunc.

The argument can be NULL.
uri_data

Type: gpointer

Custom data passed to be passed to uri_func, or NULL.

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

Type: GDestroyNotify

Function to be called when unregistering the URI scheme, or when vfs is disposed, to free the resources used by the URI lookup function.

The argument can be NULL.
parse_name_func

Type: GVfsFileLookupFunc

A GVfsFileLookupFunc.

The argument can be NULL.
parse_name_data

Type: gpointer

Custom data passed to be passed to parse_name_func, or NULL.

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

Type: GDestroyNotify

Function to be called when unregistering the URI scheme, or when vfs is disposed, to free the resources used by the parse name lookup function.

The argument can be NULL.

Return value

Type: gboolean

TRUE if scheme was successfully registered, or FALSE if a handler for scheme already exists.