Class Volume

All Implemented Interfaces:
PointerInterface

public class Volume extends Interface
The #GVolume interface represents user-visible objects that can be
mounted. Note, when porting from GnomeVFS, #GVolume is the moral
equivalent of #GnomeVFSDrive.

Mounting a #GVolume instance is an asynchronous operation. For more
information about asynchronous operations, see #GAsyncResult and
#GTask. To mount a #GVolume, first call g_volume_mount() with (at
least) the #GVolume instance, optionally a #GMountOperation object
and a #GAsyncReadyCallback.

Typically, one will only want to pass %NULL for the
#GMountOperation 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 #GAsyncResult instance will be
passed to the callback. That callback should then call
g_volume_mount_finish() with the #GVolume instance and the
#GAsyncResult data to see if the operation was completed
successfully. If an @error is present when g_volume_mount_finish()
is called, then it will be filled with any error information.

## Volume Identifiers # {#volume-identifier}

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:
%G_VOLUME_IDENTIFIER_KIND_UUID, %G_VOLUME_IDENTIFIER_KIND_LABEL, etc.
Use g_volume_get_identifier() to obtain an identifier for a volume.


Note that %G_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 %G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE
identifier, which can be used to obtain a hal device by means of
libhal_manager_find_device_string_match().

https://docs.gtk.org/gio/iface.Volume.html

  • Field Details

  • Constructor Details

  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • canEject

      public boolean canEject()
      Checks if a volume can be ejected.
      Returns:
      %TRUE if the @volume can be ejected. %FALSE otherwise
    • canMount

      public boolean canMount()
      Checks if a volume can be mounted.
      Returns:
      %TRUE if the @volume can be mounted. %FALSE otherwise
    • ejectWithOperation

      public void ejectWithOperation(int flags, @Nullable MountOperation mount_operation, @Nullable Cancellable cancellable, Volume.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      Ejects a volume. This is an asynchronous operation, and is
      finished by calling g_volume_eject_with_operation_finish() with the @volume
      and #GAsyncResult data returned in the @callback.
      Parameters:
      flags - flags affecting the unmount if required for eject
      mount_operation - a #GMountOperation or %NULL to avoid user interaction
      cancellable - optional #GCancellable object, %NULL to ignore
      callback - a #GAsyncReadyCallback, or %NULL
      user_data - user data passed to @callback
    • ejectWithOperationFinish

      public boolean ejectWithOperationFinish(@Nonnull AsyncResult result) throws AllocationError
      Finishes ejecting a volume. If any errors occurred during the operation,
      @error will be set to contain the errors and %FALSE will be returned.
      Parameters:
      result - a #GAsyncResult
      Returns:
      %TRUE if the volume was successfully ejected. %FALSE otherwise
      Throws:
      AllocationError
    • enumerateIdentifiers

      public Strs enumerateIdentifiers()
      Gets the kinds of [identifiers][volume-identifier] that @volume has.
      Use g_volume_get_identifier() to obtain the identifiers themselves.
      Returns:
      a %NULL-terminated array of strings containing kinds of identifiers. Use g_strfreev() to free.
    • getActivationRoot

      public File getActivationRoot()
      Gets the activation root for a #GVolume if it is known ahead of
      mount time. Returns %NULL otherwise. If not %NULL and if @volume
      is mounted, then the result of g_mount_get_root() on the
      #GMount object obtained from g_volume_get_mount() will always
      either be equal or a prefix of what this function returns. In
      other words, in code
      <!-- language="C" -->
         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
      <!-- language="C" -->
         (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 #GVolumeMonitor
      implementations to find the underlying mount to shadow, see
      g_mount_is_shadowed() for more details.
      Returns:
      the activation root of @volume or %NULL. Use g_object_unref() to free.
    • getDrive

      public Drive getDrive()
      Gets the drive for the @volume.
      Returns:
      a #GDrive or %NULL if @volume is not associated with a drive. The returned object should be unreffed with g_object_unref() when no longer needed.
    • getIcon

      public Icon getIcon()
      Gets the icon for @volume.
      Returns:
      a #GIcon. The returned object should be unreffed with g_object_unref() when no longer needed.
    • getIdentifier

      public Str getIdentifier(@Nonnull Str kind)
      Gets the identifier of the given kind for @volume.
      See the [introduction][volume-identifier] for more
      information about volume identifiers.
      Parameters:
      kind - the kind of identifier to return
      Returns:
      a newly allocated string containing the requested identifier, or %NULL if the #GVolume doesn't have this kind of identifier
    • getIdentifier

      public Str getIdentifier(String kind)
      Gets the identifier of the given kind for @volume.
      See the [introduction][volume-identifier] for more
      information about volume identifiers.
      Parameters:
      kind - the kind of identifier to return
      Returns:
      a newly allocated string containing the requested identifier, or %NULL if the #GVolume doesn't have this kind of identifier
    • getMount

      public Mount getMount()
      Gets the mount for the @volume.
      Returns:
      a #GMount or %NULL if @volume isn't mounted. The returned object should be unreffed with g_object_unref() when no longer needed.
    • getName

      public Str getName()
      Gets the name of @volume.
      Returns:
      the name for the given @volume. The returned string should be freed with g_free() when no longer needed.
    • getSortKey

      public Str getSortKey()
      Gets the sort key for @volume, if any.
      Returns:
      Sorting key for @volume or %NULL if no such key is available
    • getSymbolicIcon

      public Icon getSymbolicIcon()
      Gets the symbolic icon for @volume.
      Returns:
      a #GIcon. The returned object should be unreffed with g_object_unref() when no longer needed.
    • getUuid

      public Str getUuid()
      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 %NULL if there is no UUID
      available.
      Returns:
      the UUID for @volume or %NULL if no UUID can be computed. The returned string should be freed with g_free() when no longer needed.
    • mount

      public void mount(int flags, @Nullable MountOperation mount_operation, @Nullable Cancellable cancellable, Volume.OnAsyncReadyCallback callback, @Nullable Pointer user_data)
      Mounts a volume. This is an asynchronous operation, and is
      finished by calling g_volume_mount_finish() with the @volume
      and #GAsyncResult returned in the @callback.
      Parameters:
      flags - flags affecting the operation
      mount_operation - a #GMountOperation or %NULL to avoid user interaction
      cancellable - optional #GCancellable object, %NULL to ignore
      callback - a #GAsyncReadyCallback, or %NULL
      user_data - user data that gets passed to @callback
    • mountFinish

      public boolean mountFinish(@Nonnull AsyncResult result) throws AllocationError
      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, g_volume_get_mount() 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
      #GVolumeMonitor.
      Parameters:
      result - a #GAsyncResult
      Returns:
      %TRUE, %FALSE if operation failed
      Throws:
      AllocationError
    • shouldAutomount

      public boolean shouldAutomount()
      Returns whether the volume should be automatically mounted.
      Returns:
      %TRUE if the volume should be automatically mounted
    • onChanged

      public SignalHandler onChanged(Volume.OnChanged signal)
      Connect to signal "changed".
      See Volume.OnChanged.onChanged() for signal description.
      Field SIGNAL_ON_CHANGED contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onRemoved

      public SignalHandler onRemoved(Volume.OnRemoved signal)
      Connect to signal "removed".
      See Volume.OnRemoved.onRemoved() for signal description.
      Field SIGNAL_ON_REMOVED contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()