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 |
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 :: IsVolume o => o -> IO Volume
- data VolumeCanEjectMethodInfo
- volumeCanEject :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Bool
- data VolumeCanMountMethodInfo
- volumeCanMount :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Bool
- data VolumeEjectMethodInfo
- volumeEject :: (HasCallStack, MonadIO m, IsVolume a, IsCancellable b) => a -> [MountUnmountFlags] -> Maybe b -> Maybe AsyncReadyCallback -> m ()
- data VolumeEjectFinishMethodInfo
- volumeEjectFinish :: (HasCallStack, MonadIO m, IsVolume a, IsAsyncResult b) => a -> b -> m ()
- data VolumeEjectWithOperationMethodInfo
- volumeEjectWithOperation :: (HasCallStack, MonadIO m, IsVolume a, IsMountOperation b, IsCancellable c) => a -> [MountUnmountFlags] -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()
- data VolumeEjectWithOperationFinishMethodInfo
- volumeEjectWithOperationFinish :: (HasCallStack, MonadIO m, IsVolume a, IsAsyncResult b) => a -> b -> m ()
- data VolumeEnumerateIdentifiersMethodInfo
- volumeEnumerateIdentifiers :: (HasCallStack, MonadIO m, IsVolume a) => a -> m [Text]
- data VolumeGetActivationRootMethodInfo
- volumeGetActivationRoot :: (HasCallStack, MonadIO m, IsVolume a) => a -> m (Maybe File)
- data VolumeGetDriveMethodInfo
- volumeGetDrive :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Drive
- data VolumeGetIconMethodInfo
- volumeGetIcon :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Icon
- data VolumeGetIdentifierMethodInfo
- volumeGetIdentifier :: (HasCallStack, MonadIO m, IsVolume a) => a -> Text -> m Text
- data VolumeGetMountMethodInfo
- volumeGetMount :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Mount
- data VolumeGetNameMethodInfo
- volumeGetName :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Text
- data VolumeGetSortKeyMethodInfo
- volumeGetSortKey :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Text
- data VolumeGetSymbolicIconMethodInfo
- volumeGetSymbolicIcon :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Icon
- data VolumeGetUuidMethodInfo
- volumeGetUuid :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Text
- data VolumeMountMethodInfo
- volumeMount :: (HasCallStack, MonadIO m, IsVolume a, IsMountOperation b, IsCancellable c) => a -> [MountMountFlags] -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()
- data VolumeMountFinishMethodInfo
- volumeMountFinish :: (HasCallStack, MonadIO m, IsVolume a, IsAsyncResult b) => a -> b -> m ()
- data VolumeShouldAutomountMethodInfo
- volumeShouldAutomount :: (HasCallStack, MonadIO m, IsVolume a) => a -> m Bool
- type C_VolumeChangedCallback = Ptr () -> Ptr () -> IO ()
- type VolumeChangedCallback = IO ()
- data VolumeChangedSignalInfo
- 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 ()
- data VolumeRemovedSignalInfo
- 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
GObject Volume Source # | |
IsObject Volume Source # | |
IsVolume Volume Source # | |
((~) * info (ResolveVolumeMethod t Volume), MethodInfo * info Volume p) => IsLabel t (Volume -> p) Source # | |
((~) * info (ResolveVolumeMethod t Volume), MethodInfo * info Volume p) => IsLabelProxy t (Volume -> p) Source # | |
HasAttributeList * Volume Source # | |
type AttributeList Volume Source # | |
type SignalList Volume Source # | |
Methods
canEject
data VolumeCanEjectMethodInfo Source #
((~) * signature (m Bool), MonadIO m, IsVolume a) => MethodInfo * VolumeCanEjectMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsVolume a) | |
=> a |
|
-> m Bool |
Checks if a volume can be ejected.
canMount
data VolumeCanMountMethodInfo Source #
((~) * signature (m Bool), MonadIO m, IsVolume a) => MethodInfo * VolumeCanMountMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsVolume a) | |
=> a |
|
-> m Bool |
Checks if a volume can be mounted.
eject
data VolumeEjectMethodInfo Source #
((~) * signature ([MountUnmountFlags] -> Maybe b -> Maybe AsyncReadyCallback -> m ()), MonadIO m, IsVolume a, IsCancellable b) => MethodInfo * VolumeEjectMethodInfo a signature Source # | |
:: (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
data VolumeEjectFinishMethodInfo Source #
((~) * signature (b -> m ()), MonadIO m, IsVolume a, IsAsyncResult b) => MethodInfo * VolumeEjectFinishMethodInfo a signature Source # | |
:: (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
data VolumeEjectWithOperationMethodInfo Source #
((~) * signature ([MountUnmountFlags] -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()), MonadIO m, IsVolume a, IsMountOperation b, IsCancellable c) => MethodInfo * VolumeEjectWithOperationMethodInfo a signature Source # | |
volumeEjectWithOperation Source #
:: (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
data VolumeEjectWithOperationFinishMethodInfo Source #
((~) * signature (b -> m ()), MonadIO m, IsVolume a, IsAsyncResult b) => MethodInfo * VolumeEjectWithOperationFinishMethodInfo a signature Source # | |
volumeEjectWithOperationFinish Source #
:: (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
data VolumeEnumerateIdentifiersMethodInfo Source #
((~) * signature (m [Text]), MonadIO m, IsVolume a) => MethodInfo * VolumeEnumerateIdentifiersMethodInfo a signature Source # | |
volumeEnumerateIdentifiers Source #
:: (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
data VolumeGetActivationRootMethodInfo Source #
((~) * signature (m (Maybe File)), MonadIO m, IsVolume a) => MethodInfo * VolumeGetActivationRootMethodInfo a signature Source # | |
volumeGetActivationRoot Source #
:: (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
data VolumeGetDriveMethodInfo Source #
((~) * signature (m Drive), MonadIO m, IsVolume a) => MethodInfo * VolumeGetDriveMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsVolume a) | |
=> a |
|
-> m Drive | Returns: a |
Gets the drive for the volume
.
getIcon
data VolumeGetIconMethodInfo Source #
((~) * signature (m Icon), MonadIO m, IsVolume a) => MethodInfo * VolumeGetIconMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsVolume a) | |
=> a |
|
-> m Icon | Returns: a |
Gets the icon for volume
.
getIdentifier
data VolumeGetIdentifierMethodInfo Source #
((~) * signature (Text -> m Text), MonadIO m, IsVolume a) => MethodInfo * VolumeGetIdentifierMethodInfo a signature Source # | |
:: (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
data VolumeGetMountMethodInfo Source #
((~) * signature (m Mount), MonadIO m, IsVolume a) => MethodInfo * VolumeGetMountMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsVolume a) | |
=> a |
|
-> m Mount | Returns: a |
Gets the mount for the volume
.
getName
data VolumeGetNameMethodInfo Source #
((~) * signature (m Text), MonadIO m, IsVolume a) => MethodInfo * VolumeGetNameMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsVolume a) | |
=> a |
|
-> m Text | Returns: the name for the given |
Gets the name of volume
.
getSortKey
data VolumeGetSortKeyMethodInfo Source #
((~) * signature (m Text), MonadIO m, IsVolume a) => MethodInfo * VolumeGetSortKeyMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsVolume a) | |
=> a |
|
-> m Text | Returns: Sorting key for |
Gets the sort key for volume
, if any.
Since: 2.32
getSymbolicIcon
data VolumeGetSymbolicIconMethodInfo Source #
((~) * signature (m Icon), MonadIO m, IsVolume a) => MethodInfo * VolumeGetSymbolicIconMethodInfo a signature Source # | |
volumeGetSymbolicIcon Source #
:: (HasCallStack, MonadIO m, IsVolume a) | |
=> a |
|
-> m Icon | Returns: a |
Gets the symbolic icon for volume
.
Since: 2.34
getUuid
data VolumeGetUuidMethodInfo Source #
((~) * signature (m Text), MonadIO m, IsVolume a) => MethodInfo * VolumeGetUuidMethodInfo a signature Source # | |
:: (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
data VolumeMountMethodInfo Source #
((~) * signature ([MountMountFlags] -> Maybe b -> Maybe c -> Maybe AsyncReadyCallback -> m ()), MonadIO m, IsVolume a, IsMountOperation b, IsCancellable c) => MethodInfo * VolumeMountMethodInfo a signature Source # | |
:: (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
data VolumeMountFinishMethodInfo Source #
((~) * signature (b -> m ()), MonadIO m, IsVolume a, IsAsyncResult b) => MethodInfo * VolumeMountFinishMethodInfo a signature Source # | |
:: (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
data VolumeShouldAutomountMethodInfo Source #
((~) * signature (m Bool), MonadIO m, IsVolume a) => MethodInfo * VolumeShouldAutomountMethodInfo a signature Source # | |
volumeShouldAutomount Source #
:: (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 #