gi-gio-2.0.32: Gio bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | Safe-Inferred
Language | Haskell2010

GI.Gio.Objects.Vfs

Contents

- Exported types
- Methods
  - getDefault
  - getFileForPath
  - getFileForUri
  - getLocal
  - getSupportedUriSchemes
  - isActive
  - parseName
  - registerUriScheme
  - unregisterUriScheme

Description

Entry point for using GIO functionality.

Synopsis

- newtype Vfs = Vfs (ManagedPtr Vfs)
- class (GObject o, IsDescendantOf Vfs o) => IsVfs o
- toVfs :: (MonadIO m, IsVfs o) => o -> m Vfs
- vfsGetDefault :: (HasCallStack, MonadIO m) => m Vfs
- vfsGetFileForPath :: (HasCallStack, MonadIO m, IsVfs a) => a -> Text -> m File
- vfsGetFileForUri :: (HasCallStack, MonadIO m, IsVfs a) => a -> Text -> m File
- vfsGetLocal :: (HasCallStack, MonadIO m) => m Vfs
- vfsGetSupportedUriSchemes :: (HasCallStack, MonadIO m, IsVfs a) => a -> m [Text]
- vfsIsActive :: (HasCallStack, MonadIO m, IsVfs a) => a -> m Bool
- vfsParseName :: (HasCallStack, MonadIO m, IsVfs a) => a -> Text -> m File
- vfsRegisterUriScheme :: (HasCallStack, MonadIO m, IsVfs a) => a -> Text -> Maybe VfsFileLookupFunc -> Maybe VfsFileLookupFunc -> m Bool
- vfsUnregisterUriScheme :: (HasCallStack, MonadIO m, IsVfs a) => a -> Text -> m Bool

# Exported types

newtype Vfs Source #

Memory-managed wrapper type.

Constructors

Vfs (ManagedPtr Vfs) |

#### Instances

Instances details

Eq Vfs Source # |
Instance details Defined in GI.Gio.Objects.Vfs Methods (==) :: Vfs -> Vfs -> Bool Source # (/=) :: Vfs -> Vfs -> Bool Source #
GObject Vfs Source # |
Instance details Defined in GI.Gio.Objects.Vfs
ManagedPtrNewtype Vfs Source # |
Instance details Defined in GI.Gio.Objects.Vfs Methods toManagedPtr :: Vfs -> ManagedPtr Vfs Source #
TypedObject Vfs Source # |
Instance details Defined in GI.Gio.Objects.Vfs Methods glibType :: IO GType Source #
HasParentTypes Vfs Source # |
Instance details Defined in GI.Gio.Objects.Vfs
IsGValue (Maybe Vfs) Source # | Convert `Vfs` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.Gio.Objects.Vfs Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe Vfs -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe Vfs) Source #
type ParentTypes Vfs Source # |
Instance details Defined in GI.Gio.Objects.Vfs type ParentTypes Vfs = '[Object]

class (GObject o, IsDescendantOf Vfs o) => IsVfs o Source #

Type class for types which can be safely cast to `Vfs`, for instance with `toVfs`.

#### Instances

Instances details

(GObject o, IsDescendantOf Vfs o) => IsVfs o Source # |
Instance details Defined in GI.Gio.Objects.Vfs

toVfs :: (MonadIO m, IsVfs o) => o -> m Vfs Source #

Cast to `Vfs`, for types for which this is known to be safe. For general casts, use `castTo`.

# Methods

### Click to display all available methods, including inherited ones

Expand

#### Methods

bindProperty, bindPropertyFull, forceFloating, freezeNotify, getv, isActive, isFloating, notify, notifyByPspec, parseName, ref, refSink, registerUriScheme, runDispose, stealData, stealQdata, thawNotify, unref, unregisterUriScheme, watchClosure.

#### Getters

getData, getFileForPath, getFileForUri, getProperty, getQdata, getSupportedUriSchemes.

#### Setters

setData, setDataFull, setProperty.

## getDefault

vfsGetDefault Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> m Vfs | Returns: a `Vfs`, which will be the local file system `Vfs` if no other implementation is available.

Gets the default `Vfs` for the system.

## getFileForPath

vfsGetFileForPath Source #

Arguments

:: (HasCallStack, MonadIO m, IsVfs a) |
=> a | `vfs`: a `Vfs`.
-> Text | `path`: a string containing a VFS path.
-> m File | Returns: a `File`. Free the returned object with `objectUnref`.

Gets a `File` for `path`.

## getFileForUri

vfsGetFileForUri Source #

Arguments

:: (HasCallStack, MonadIO m, IsVfs a) |
=> a | `vfs`: at`Vfs`.
-> Text | `uri`: a string containing a URI
-> m File | Returns: a `File`. Free the returned object with `objectUnref`.

Gets a `File` 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.

## getLocal

vfsGetLocal Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> m Vfs | Returns: a `Vfs`.

Gets the local `Vfs` for the system.

## getSupportedUriSchemes

vfsGetSupportedUriSchemes Source #

Arguments

:: (HasCallStack, MonadIO m, IsVfs a) |
=> a | `vfs`: a `Vfs`.
-> m [Text] | Returns: a `Nothing`-terminated array of strings. The returned array belongs to GIO and must not be freed or modified.

Gets a list of URI schemes supported by `vfs`.

## isActive

vfsIsActive Source #

Arguments

:: (HasCallStack, MonadIO m, IsVfs a) |
=> a | `vfs`: a `Vfs`.
-> m Bool | Returns: `True` if construction of the `vfs` was successful and it is now active.

Checks if the VFS is active.

## parseName

vfsParseName Source #

Arguments

:: (HasCallStack, MonadIO m, IsVfs a) |
=> a | `vfs`: a `Vfs`.
-> Text | `parseName`: a string to be parsed by the VFS module.
-> m File | Returns: a `File` for the given `parseName`. Free the returned object with `objectUnref`.

This operation never fails, but the returned object might not support any I/O operations if the `parseName` cannot be parsed by the `Vfs` module.

## registerUriScheme

vfsRegisterUriScheme Source #

Arguments

:: (HasCallStack, MonadIO m, IsVfs a) |
=> a | `vfs`: a `Vfs`
-> Text | `scheme`: an URI scheme, e.g. "http"
-> Maybe VfsFileLookupFunc | `uriFunc`: a `VfsFileLookupFunc`
-> Maybe VfsFileLookupFunc | `parseNameFunc`: a `VfsFileLookupFunc`
-> m Bool | Returns: `True` if `scheme` was successfully registered, or `False` if a handler for `scheme` already exists.

Registers `uriFunc` and `parseNameFunc` as the `File` 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 `File` is requested with an URI containing `scheme` (e.g. through `fileNewForUri`), `uriFunc` will be called to allow a custom constructor. The implementation of `uriFunc` should not be blocking, and must not call `vfsRegisterUriScheme` or `vfsUnregisterUriScheme`.

When `fileParseName` is called with a parse name obtained from such file, `parseNameFunc` will be called to allow the `File` to be created again. In that case, it's responsibility of `parseNameFunc` to make sure the parse name matches what the custom `File` implementation returned when `fileGetParseName` was previously called. The implementation of `parseNameFunc` should not be blocking, and must not call `vfsRegisterUriScheme` or `vfsUnregisterUriScheme`.

It's an error to call this function twice with the same scheme. To unregister a custom URI scheme, use `vfsUnregisterUriScheme`.

Since: 2.50

## unregisterUriScheme

vfsUnregisterUriScheme Source #

Arguments

:: (HasCallStack, MonadIO m, IsVfs a) |
=> a | `vfs`: a `Vfs`
-> Text | `scheme`: an URI scheme, e.g. "http"
-> m Bool | Returns: `True` if `scheme` was successfully unregistered, or `False` if a handler for `scheme` does not exist.

Unregisters the URI handler for `scheme` previously registered with `vfsRegisterUriScheme`.

Since: 2.50