| Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
|---|---|
| License | LGPL-2.1 |
| Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
| Safe Haskell | None |
| Language | Haskell2010 |
GI.Gio.Interfaces.Volume
Contents
Description
The Volume interface represents user-visible objects that can be
mounted. Note, when porting from GnomeVFS, Volume is the moral
equivalent of GnomeVFSDrive.
Mounting a Volume instance is an asynchronous operation. For more
information about asynchronous operations, see AsyncResult and
Task. To mount a Volume, first call volumeMount with (at
least) the Volume instance, optionally a MountOperation object
and a AsyncReadyCallback.
Typically, one will only want to pass Nothing for the
MountOperation if automounting all volumes when a desktop session
starts since it's not desirable to put up a lot of dialogs asking
for credentials.
The callback will be fired when the operation has resolved (either
with success or failure), and a GAsyncReady structure will be
passed to the callback. That callback should then call
volumeMountFinish with the Volume instance and the
GAsyncReady data to see if the operation was completed
successfully. If an error is present when volumeMountFinish
is called, then it will be filled with any error information.
It is sometimes necessary to directly access the underlying
operating system object behind a volume (e.g. for passing a volume
to an application via the commandline). For this purpose, GIO
allows to obtain an 'identifier' for the volume. There can be
different kinds of identifiers, such as Hal UDIs, filesystem labels,
traditional Unix devices (e.g. /dev/sda2), UUIDs. GIO uses predefined
strings as names for the different kinds of identifiers:
VOLUME_IDENTIFIER_KIND_HAL_UDI, VOLUME_IDENTIFIER_KIND_LABEL, etc.
Use volumeGetIdentifier to obtain an identifier for a volume.
Note that VOLUME_IDENTIFIER_KIND_HAL_UDI will only be available
when the gvfs hal volume monitor is in use. Other volume monitors
will generally be able to provide the VOLUME_IDENTIFIER_KIND_UNIX_DEVICE
identifier, which can be used to obtain a hal device by means of
libhal_manager_find_device_string_match().
- newtype Volume = Volume (ManagedPtr Volume)
- noVolume :: Maybe Volume
- class GObject o => IsVolume o
- toVolume :: (MonadIO m, IsVolume o) => o -> m Volume
- volumeCanEject :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Bool
- volumeCanMount :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Bool
- volumeEject :: (HasCallStack, MonadIO m, IsVolume a, IsCancellable b) => a -> [MountUnmountFlags] -> Maybe b -> Maybe AsyncReadyCallback -> m ()
- volumeEjectFinish :: (HasCallStack, MonadIO m, IsVolume a, IsAsyncResult b) => a -> b -> m ()
- volumeEjectWithOperation :: (HasCallStack, MonadIO m, IsVolume a, IsMountOperation b, IsCancellable c) => a -> [MountUnmountFlags] -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()
- volumeEjectWithOperationFinish :: (HasCallStack, MonadIO m, IsVolume a, IsAsyncResult b) => a -> b -> m ()
- volumeEnumerateIdentifiers :: (HasCallStack, MonadIO m, IsVolume a) => a -> m [Text]
- volumeGetActivationRoot :: (HasCallStack, MonadIO m, IsVolume a) => a -> m (Maybe File)
- volumeGetDrive :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Drive
- volumeGetIcon :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Icon
- volumeGetIdentifier :: (HasCallStack, MonadIO m, IsVolume a) => a -> Text -> m Text
- volumeGetMount :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Mount
- volumeGetName :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Text
- volumeGetSortKey :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Text
- volumeGetSymbolicIcon :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Icon
- volumeGetUuid :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Text
- volumeMount :: (HasCallStack, MonadIO m, IsVolume a, IsMountOperation b, IsCancellable c) => a -> [MountMountFlags] -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()
- volumeMountFinish :: (HasCallStack, MonadIO m, IsVolume a, IsAsyncResult b) => a -> b -> m ()
- volumeShouldAutomount :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Bool
- type C_VolumeChangedCallback = Ptr () -> Ptr () -> IO ()
- type VolumeChangedCallback = IO ()
- afterVolumeChanged :: (IsVolume a, MonadIO m) => a -> VolumeChangedCallback -> m SignalHandlerId
- genClosure_VolumeChanged :: VolumeChangedCallback -> IO Closure
- mk_VolumeChangedCallback :: C_VolumeChangedCallback -> IO (FunPtr C_VolumeChangedCallback)
- noVolumeChangedCallback :: Maybe VolumeChangedCallback
- onVolumeChanged :: (IsVolume a, MonadIO m) => a -> VolumeChangedCallback -> m SignalHandlerId
- wrap_VolumeChangedCallback :: VolumeChangedCallback -> Ptr () -> Ptr () -> IO ()
- type C_VolumeRemovedCallback = Ptr () -> Ptr () -> IO ()
- type VolumeRemovedCallback = IO ()
- afterVolumeRemoved :: (IsVolume a, MonadIO m) => a -> VolumeRemovedCallback -> m SignalHandlerId
- genClosure_VolumeRemoved :: VolumeRemovedCallback -> IO Closure
- mk_VolumeRemovedCallback :: C_VolumeRemovedCallback -> IO (FunPtr C_VolumeRemovedCallback)
- noVolumeRemovedCallback :: Maybe VolumeRemovedCallback
- onVolumeRemoved :: (IsVolume a, MonadIO m) => a -> VolumeRemovedCallback -> m SignalHandlerId
- wrap_VolumeRemovedCallback :: VolumeRemovedCallback -> Ptr () -> Ptr () -> IO ()
Exported types
Constructors
| Volume (ManagedPtr Volume) |
Methods
canEject
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Bool |
Checks if a volume can be ejected.
canMount
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Bool |
Checks if a volume can be mounted.
eject
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a, IsCancellable b) | |
| => a |
|
| -> [MountUnmountFlags] |
|
| -> Maybe b |
|
| -> Maybe AsyncReadyCallback |
|
| -> m () |
Deprecated: (Since version 2.22)Use volumeEjectWithOperation instead.
Ejects a volume. This is an asynchronous operation, and is
finished by calling volumeEjectFinish with the volume
and AsyncResult returned in the callback.
ejectFinish
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a, IsAsyncResult b) | |
| => a |
|
| -> b |
|
| -> m () | (Can throw |
Deprecated: (Since version 2.22)Use volumeEjectWithOperationFinish instead.
Finishes ejecting a volume. If any errors occurred during the operation,
error will be set to contain the errors and False will be returned.
ejectWithOperation
volumeEjectWithOperation Source #
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a, IsMountOperation b, IsCancellable c) | |
| => a |
|
| -> [MountUnmountFlags] |
|
| -> Maybe b |
|
| -> Maybe c |
|
| -> Maybe AsyncReadyCallback |
|
| -> m () |
Ejects a volume. This is an asynchronous operation, and is
finished by calling volumeEjectWithOperationFinish with the volume
and AsyncResult data returned in the callback.
Since: 2.22
ejectWithOperationFinish
volumeEjectWithOperationFinish Source #
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a, IsAsyncResult b) | |
| => a |
|
| -> b |
|
| -> m () | (Can throw |
Finishes ejecting a volume. If any errors occurred during the operation,
error will be set to contain the errors and False will be returned.
Since: 2.22
enumerateIdentifiers
volumeEnumerateIdentifiers Source #
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m [Text] | Returns: a |
Gets the kinds of [identifiers][volume-identifier] that volume has.
Use volumeGetIdentifier to obtain the identifiers themselves.
getActivationRoot
volumeGetActivationRoot Source #
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m (Maybe File) | Returns: the activation root of |
Gets the activation root for a Volume if it is known ahead of
mount time. Returns Nothing otherwise. If not Nothing and if volume
is mounted, then the result of mountGetRoot on the
Mount object obtained from volumeGetMount will always
either be equal or a prefix of what this function returns. In
other words, in code
C code
GMount *mount; GFile *mount_root GFile *volume_activation_root; mount = g_volume_get_mount (volume); // mounted, so never NULL mount_root = g_mount_get_root (mount); volume_activation_root = g_volume_get_activation_root (volume); // assume not NULL
then the expression
C code
(g_file_has_prefix (volume_activation_root, mount_root) ||
g_file_equal (volume_activation_root, mount_root))will always be True.
Activation roots are typically used in VolumeMonitor
implementations to find the underlying mount to shadow, see
mountIsShadowed for more details.
Since: 2.18
getDrive
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Drive | Returns: a |
Gets the drive for the volume.
getIcon
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Icon | Returns: a |
Gets the icon for volume.
getIdentifier
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> Text |
|
| -> m Text | Returns: a newly allocated string containing the
requested identfier, or |
Gets the identifier of the given kind for volume.
See the [introduction][volume-identifier] for more
information about volume identifiers.
getMount
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Mount | Returns: a |
Gets the mount for the volume.
getName
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Text | Returns: the name for the given |
Gets the name of volume.
getSortKey
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Text | Returns: Sorting key for |
Gets the sort key for volume, if any.
Since: 2.32
getSymbolicIcon
volumeGetSymbolicIcon Source #
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Icon | Returns: a |
Gets the symbolic icon for volume.
Since: 2.34
getUuid
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Text | Returns: the UUID for |
Gets the UUID for the volume. The reference is typically based on
the file system UUID for the volume in question and should be
considered an opaque string. Returns Nothing if there is no UUID
available.
mount
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a, IsMountOperation b, IsCancellable c) | |
| => a |
|
| -> [MountMountFlags] |
|
| -> Maybe b |
|
| -> Maybe c |
|
| -> Maybe AsyncReadyCallback |
|
| -> m () |
Mounts a volume. This is an asynchronous operation, and is
finished by calling volumeMountFinish with the volume
and AsyncResult returned in the callback.
mountFinish
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a, IsAsyncResult b) | |
| => a |
|
| -> b |
|
| -> m () | (Can throw |
Finishes mounting a volume. If any errors occurred during the operation,
error will be set to contain the errors and False will be returned.
If the mount operation succeeded, volumeGetMount on volume
is guaranteed to return the mount right after calling this
function; there's no need to listen for the 'mount-added' signal on
VolumeMonitor.
shouldAutomount
volumeShouldAutomount Source #
Arguments
| :: (HasCallStack, MonadIO m, IsVolume a) | |
| => a |
|
| -> m Bool | Returns: |
Returns whether the volume should be automatically mounted.
Signals
changed
type VolumeChangedCallback = IO () Source #
afterVolumeChanged :: (IsVolume a, MonadIO m) => a -> VolumeChangedCallback -> m SignalHandlerId Source #
onVolumeChanged :: (IsVolume a, MonadIO m) => a -> VolumeChangedCallback -> m SignalHandlerId Source #
wrap_VolumeChangedCallback :: VolumeChangedCallback -> Ptr () -> Ptr () -> IO () Source #
removed
type VolumeRemovedCallback = IO () Source #
afterVolumeRemoved :: (IsVolume a, MonadIO m) => a -> VolumeRemovedCallback -> m SignalHandlerId Source #
onVolumeRemoved :: (IsVolume a, MonadIO m) => a -> VolumeRemovedCallback -> m SignalHandlerId Source #
wrap_VolumeRemovedCallback :: VolumeRemovedCallback -> Ptr () -> Ptr () -> IO () Source #