Top |
GFile * | (*GVfsFileLookupFunc) () |
GFile * | g_vfs_get_file_for_path () |
GFile * | g_vfs_get_file_for_uri () |
GFile * | g_vfs_parse_name () |
GVfs * | g_vfs_get_default () |
GVfs * | g_vfs_get_local () |
gboolean | g_vfs_is_active () |
const gchar * const * | g_vfs_get_supported_uri_schemes () |
gboolean | g_vfs_register_uri_scheme () |
gboolean | g_vfs_unregister_uri_scheme () |
GFile * (*GVfsFileLookupFunc) (GVfs *vfs
,const char *identifier
,gpointer user_data
);
This function type is used by g_vfs_register_uri_scheme()
to make it
possible for a client to associate an URI scheme to a different GFile
implementation.
The client should return a reference to the new file that has been
created for uri
, or NULL
to continue with the default implementation.
vfs |
a GVfs |
|
identifier |
the identifier to lookup a GFile for. This can either
be an URI or a parse name as returned by |
|
user_data |
user data passed to the function |
Since: 2.50
GFile * g_vfs_get_file_for_path (GVfs *vfs
,const char *path
);
Gets a GFile for path
.
GFile * g_vfs_get_file_for_uri (GVfs *vfs
,const char *uri
);
Gets a GFile for uri
.
This operation never fails, but the returned object might not support any I/O operation if the URI is malformed or if the URI scheme is not supported.
GFile * g_vfs_parse_name (GVfs *vfs
,const char *parse_name
);
This operation never fails, but the returned object might
not support any I/O operations if the parse_name
cannot
be parsed by the GVfs module.
a GFile for the given parse_name
.
Free the returned object with g_object_unref()
.
[transfer full]
const gchar * const *
g_vfs_get_supported_uri_schemes (GVfs *vfs
);
Gets a list of URI schemes supported by vfs
.
a NULL
-terminated array of strings.
The returned array belongs to GIO and must
not be freed or modified.
[transfer none]
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
);
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()
.
vfs |
a GVfs |
|
scheme |
an URI scheme, e.g. "http" |
|
uri_func |
[scope notified][nullable] | |
uri_data |
custom data passed to be passed to |
[nullable] |
uri_destroy |
function to be called when unregistering the
URI scheme, or when |
[nullable] |
parse_name_func |
[scope notified][nullable] | |
parse_name_data |
custom data passed to be passed to
|
[nullable] |
parse_name_destroy |
function to be called when unregistering the
URI scheme, or when |
[nullable] |
TRUE
if scheme
was successfully registered, or FALSE
if a handler
for scheme
already exists.
Since: 2.50
gboolean g_vfs_unregister_uri_scheme (GVfs *vfs
,const char *scheme
);
Unregisters the URI handler for scheme
previously registered with
g_vfs_register_uri_scheme()
.
TRUE
if scheme
was successfully unregistered, or FALSE
if a
handler for scheme
does not exist.
Since: 2.50
#define G_VFS_EXTENSION_POINT_NAME "gio-vfs"
Extension point for GVfs functionality. See Extending GIO.