Gio::Volume Class Reference

The Volume interface represents user-visible objects that can be mounted. More...

`#include <giomm/volume.h>`

Inheritance diagram for Gio::Volume:
[legend]

## Public Member Functions

virtual | ~Volume ()
GVolume* | gobj ()
| Provides access to the underlying C GObject. More...
const GVolume* | gobj () const
| Provides access to the underlying C GObject. More...
std::string | get_name () const
| Gets the name of volume. More...
std::string | get_uuid () const
| Gets the UUID for the volume. More...
Glib::RefPtr< Icon > | get_icon ()
| Gets the icon for volume. More...
Glib::RefPtr< const Icon > | get_icon () const
| Gets the icon for volume. More...
Glib::RefPtr< Icon > | get_symbolic_icon ()
| Gets the symbolic icon for volume. More...
Glib::RefPtr< const Icon > | get_symbolic_icon () const
| Gets the symbolic icon for volume. More...
Glib::RefPtr< Drive > | get_drive ()
| Gets the drive for the volume. More...
Glib::RefPtr< const Drive > | get_drive () const
| Gets the drive for the volume. More...
Glib::RefPtr< Mount > | get_mount ()
| Gets the mount for the volume. More...
Glib::RefPtr< const Mount > | get_mount () const
| Gets the mount for the volume. More...
bool | can_mount () const
| Checks if a volume can be mounted. More...
bool | can_eject () const
| Checks if a volume can be ejected. More...
bool | should_automount () const
| Returns whether the volume should be automatically mounted. More...
void | mount (const Glib::RefPtr< MountOperation >& mount_operation, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, MountMountFlags flags=MOUNT_MOUNT_NONE)
| Mounts a volume. More...
void | mount (const Glib::RefPtr< MountOperation >& mount_operation, const SlotAsyncReady& slot, MountMountFlags flags=MOUNT_MOUNT_NONE)
| Mounts a volume. More...
void | mount (const Glib::RefPtr< MountOperation >& mount_operation, MountMountFlags flags=MOUNT_MOUNT_NONE)
| Mounts a volume. More...
void | mount (MountMountFlags flags=MOUNT_MOUNT_NONE)
| Mounts a volume. More...
bool | mount_finish (const Glib::RefPtr< AsyncResult >& result)
| Finishes mounting a volume. More...
void | eject (const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
void | eject (const SlotAsyncReady& slot, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
void | eject (MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
void | eject (const Glib::RefPtr< MountOperation >& mount_operation, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
void | eject (const Glib::RefPtr< MountOperation >& mount_operation, const SlotAsyncReady& slot, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
void | eject (const Glib::RefPtr< MountOperation >& mount_operation, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
bool | eject_finish (const Glib::RefPtr< AsyncResult >& result)
| Finishes ejecting a volume. More...
std::string | get_identifier (const std::string& kind) const
| Gets the identifier of the given kind for volume. More...
Glib::StringArrayHandle | enumerate_identifiers () const
| Gets the kinds of identifiers that volume has. More...
Glib::RefPtr< File > | get_activation_root ()
| Gets the activation root for a Volume if it is known ahead of mount time. More...
Glib::RefPtr< const File > | get_activation_root () const
| Gets the activation root for a Volume if it is known ahead of mount time. More...
Glib::ustring | sort_key ()
| Gets the sort key for volume, if any. More...
Glib::SignalProxy0< void > | signal_changed ()
Glib::SignalProxy0< void > | signal_removed ()
Public Member Functions inherited from Glib::Interface
| Interface (const Glib::Interface_Class& interface_class)
| Called by constructors of derived classes. More...
| Interface (GObject* castitem)
| Called by constructors of derived classes. More...
virtual | ~Interface ()
GObject* | gobj ()
const GObject* | gobj () const
Public Member Functions inherited from Glib::ObjectBase
void | set_property_value (const Glib::ustring& property_name, const Glib::ValueBase& value)
| You probably want to use a specific property_*() accessor method instead. More...
void | get_property_value (const Glib::ustring& property_name, Glib::ValueBase& value) const
| You probably want to use a specific property_*() accessor method instead. More...
template<class PropertyType >
void | set_property (const Glib::ustring& property_name, const PropertyType& value)
| You probably want to use a specific property_*() accessor method instead. More...
template<class PropertyType >
void | get_property (const Glib::ustring& property_name, PropertyType& value) const
| You probably want to use a specific property_*() accessor method instead. More...
void | connect_property_changed (const Glib::ustring& property_name, const sigc::slot< void >& slot)
| You can use the signal_changed() signal of the property proxy instead, but this is necessary when using the reduced API. More...
sigc::connection | connect_property_changed_with_return (const Glib::ustring& property_name, const sigc::slot< void >& slot)
| You can use the signal_changed() signal of the property proxy instead, but this is necessary when using the reduced API. More...
void | freeze_notify ()
| Increases the freeze count on object. More...
void | thaw_notify ()
| Reverts the effect of a previous call to freeze_notify(). More...
virtual void | reference () const
| Increment the reference count for this object. More...
virtual void | unreference () const
| Decrement the reference count for this object. More...
GObject* | gobj ()
| Provides access to the underlying C GObject. More...
const GObject* | gobj () const
| Provides access to the underlying C GObject. More...
GObject* | gobj_copy () const
| Give a ref-ed copy to someone. Use for direct struct access. More...

## Static Public Member Functions

static void | add_interface (GType gtype_implementer)
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...

## Protected Member Functions

| Volume ()
| You should derive from this class to use it. More...
virtual void | on_changed ()
| This is a default handler for the signal signal_changed(). More...
virtual void | on_removed ()
| This is a default handler for the signal signal_removed(). More...

## Related Functions

(Note that these are not member functions.)
Glib::RefPtr< Gio::Volume > | wrap (GVolume* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...

## Detailed Description

The Volume interface represents user-visible objects that can be mounted.

Mounting a Volume instance is an asynchronous operation. For more information about asynchronous operations, see AsyncReady and SimpleAsyncReady. To mount a GVolume, first call mount(), optionally providing a MountOperation object and a SlotAsyncReady callback.

Typically, you will not want to provide a 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 AsyncReady structure will be passed to the callback. That callback should then call g_volume_mount_finish() with the GVolume instance and the GAsyncReady data to see if the operation was completed successfully. If an error is present when finish() is called, then it will be filled with any error information.

Since glibmm 2.16:

## Constructor & Destructor Documentation

Gio::Volume::Volume | ( |  | ) |

protected

You should derive from this class to use it.

virtual Gio::Volume::~Volume | ( |  | ) |

virtual

## Member Function Documentation

static void Gio::Volume::add_interface | ( | GType | gtype_implementer | ) |

static

bool Gio::Volume::can_eject | ( |  | ) | const

Checks if a volume can be ejected.

Returns
  `true` if the volume can be ejected. `false` otherwise.

bool Gio::Volume::can_mount | ( |  | ) | const

Checks if a volume can be mounted.

Returns
  `true` if the volume can be mounted. `false` otherwise.

void Gio::Volume::eject | ( | const SlotAsyncReady& | slot,
|  | const Glib::RefPtr< Cancellable >& | cancellable,
|  | MountUnmountFlags | flags = `MOUNT_UNMOUNT_NONE`
| ) |  |

void Gio::Volume::eject | ( | const SlotAsyncReady& | slot,
|  | MountUnmountFlags | flags = `MOUNT_UNMOUNT_NONE`
| ) |  |

void Gio::Volume::eject | ( | MountUnmountFlags | flags = `MOUNT_UNMOUNT_NONE` | ) |

void Gio::Volume::eject | ( | const Glib::RefPtr< MountOperation >& | mount_operation,
|  | const SlotAsyncReady& | slot,
|  | const Glib::RefPtr< Cancellable >& | cancellable,
|  | MountUnmountFlags | flags = `MOUNT_UNMOUNT_NONE`
| ) |  |

void Gio::Volume::eject | ( | const Glib::RefPtr< MountOperation >& | mount_operation,
|  | const SlotAsyncReady& | slot,
|  | MountUnmountFlags | flags = `MOUNT_UNMOUNT_NONE`
| ) |  |

void Gio::Volume::eject | ( | const Glib::RefPtr< MountOperation >& | mount_operation,
|  | MountUnmountFlags | flags = `MOUNT_UNMOUNT_NONE`
| ) |  |

bool Gio::Volume::eject_finish | ( | const Glib::RefPtr< AsyncResult >& | result | ) |

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 glibmm 2.22:

Parameters

  result | A AsyncResult.

Returns
  `true` if the volume was successfully ejected. `false` otherwise.

Glib::StringArrayHandle Gio::Volume::enumerate_identifiers | ( |  | ) | const

Gets the kinds of identifiers that volume has.

Use g_volume_get_identifier() to obtain the identifiers themselves.

Returns
  A `0`-terminated array of strings containing kinds of identifiers. Use Glib::strfreev() to free.

Glib::RefPtr<File> Gio::Volume::get_activation_root | ( |  | ) |

Gets the activation root for a Volume if it is known ahead of mount time.

Returns `0` otherwise. If not `0` and if volume is mounted, then the result of g_mount_get_root() on the Mount 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

GMount *mount; GFile *mount_root GFile *volume_activation_root;

mount = g_volume_get_mount (volume); // mounted, so never `0` mount_root = g_mount_get_root (mount); volume_activation_root = g_volume_get_activation_root(volume); // assume not `0`

then the expression

(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 g_mount_is_shadowed() for more details.

Since glibmm 2.18:

Returns
  The activation root of volume or `0`. Use Glib::object_unref() to free.

Glib::RefPtr<const File> Gio::Volume::get_activation_root | ( |  | ) | const

Gets the activation root for a Volume if it is known ahead of mount time.

Returns `0` otherwise. If not `0` and if volume is mounted, then the result of g_mount_get_root() on the Mount 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

GMount *mount; GFile *mount_root GFile *volume_activation_root;

mount = g_volume_get_mount (volume); // mounted, so never `0` mount_root = g_mount_get_root (mount); volume_activation_root = g_volume_get_activation_root(volume); // assume not `0`

then the expression

(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 g_mount_is_shadowed() for more details.

Since glibmm 2.18:

Returns
  The activation root of volume or `0`. Use Glib::object_unref() to free.

Glib::RefPtr<Drive> Gio::Volume::get_drive | ( |  | ) |

Gets the drive for the volume.

Returns
  A Drive or `0` if volume is not associated with a drive. The returned object should be unreffed with Glib::object_unref() when no longer needed.

Glib::RefPtr<const Drive> Gio::Volume::get_drive | ( |  | ) | const

Gets the drive for the volume.

Returns
  A Drive or `0` if volume is not associated with a drive. The returned object should be unreffed with Glib::object_unref() when no longer needed.

Glib::RefPtr<Icon> Gio::Volume::get_icon | ( |  | ) |

Gets the icon for volume.

Returns
  A Icon. The returned object should be unreffed with Glib::object_unref() when no longer needed.

Glib::RefPtr<const Icon> Gio::Volume::get_icon | ( |  | ) | const

Gets the icon for volume.

Returns
  A Icon. The returned object should be unreffed with Glib::object_unref() when no longer needed.

std::string Gio::Volume::get_identifier | ( | const std::string & | kind | ) | const

Gets the identifier of the given kind for volume.

See the introduction for more information about volume identifiers.

Parameters

  kind | The kind of identifier to return.

Returns
  A newly allocated string containing the requested identfier, or `0` if the Volume doesn't have this kind of identifier.

Glib::RefPtr<Mount> Gio::Volume::get_mount | ( |  | ) |

Gets the mount for the volume.

Returns
  A Mount or `0` if volume isn't mounted. The returned object should be unreffed with Glib::object_unref() when no longer needed.

Glib::RefPtr<const Mount> Gio::Volume::get_mount | ( |  | ) | const

Gets the mount for the volume.

Returns
  A Mount or `0` if volume isn't mounted. The returned object should be unreffed with Glib::object_unref() when no longer needed.

std::string Gio::Volume::get_name | ( |  | ) | const

Gets the name of volume.

Returns
  The name for the given volume. The returned string should be freed with Glib::free() when no longer needed.

Glib::RefPtr<Icon> Gio::Volume::get_symbolic_icon | ( |  | ) |

Gets the symbolic icon for volume.

Since glibmm 2.34:

Returns
  A Icon. The returned object should be unreffed with Glib::object_unref() when no longer needed.

Glib::RefPtr<const Icon> Gio::Volume::get_symbolic_icon | ( |  | ) | const

Gets the symbolic icon for volume.

Since glibmm 2.34:

Returns
  A Icon. The returned object should be unreffed with Glib::object_unref() when no longer needed.

static GType Gio::Volume::get_type | ( |  | ) |

static

Get the GType for this class, for use with the underlying GObject type system.

std::string Gio::Volume::get_uuid | ( |  | ) | const

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 `0` if there is no UUID available.

Returns
  The UUID for volume or `0` if no UUID can be computed. The returned string should be freed with Glib::free() when no longer needed.

GVolume* Gio::Volume::gobj | ( |  | ) |

inline

Provides access to the underlying C GObject.

const GVolume* Gio::Volume::gobj | ( |  | ) | const

inline

Provides access to the underlying C GObject.

void Gio::Volume::mount | ( | const Glib::RefPtr< MountOperation >& | mount_operation,
|  | const SlotAsyncReady& | slot,
|  | const Glib::RefPtr< Cancellable >& | cancellable,
|  | MountMountFlags | flags = `MOUNT_MOUNT_NONE`
| ) |  |

Mounts a volume.

This is an asynchronous operation, and is finished by calling mount_finish() with the AsyncResult data returned in the callback slot.

Parameters

  mount_operation | A mount operation.
  slot | A callback which will be called when the operation is completed or canceled.
  cancellable | A cancellable object which can be used to cancel the operation.
  flags | Flags affecting the operation.

void Gio::Volume::mount | ( | const Glib::RefPtr< MountOperation >& | mount_operation,
|  | const SlotAsyncReady& | slot,
|  | MountMountFlags | flags = `MOUNT_MOUNT_NONE`
| ) |  |

Mounts a volume.

This is an asynchronous operation, and is finished by calling mount_finish() with the AsyncResult data returned in the callback slot.

Parameters

  mount_operation | A mount operation.
  slot | A callback which will be called when the operation is completed or canceled.
  flags | Flags affecting the operation.

void Gio::Volume::mount | ( | const Glib::RefPtr< MountOperation >& | mount_operation,
|  | MountMountFlags | flags = `MOUNT_MOUNT_NONE`
| ) |  |

Mounts a volume.

Parameters

  mount_operation | A mount operation.
  flags | Flags affecting the operation.

void Gio::Volume::mount | ( | MountMountFlags | flags = `MOUNT_MOUNT_NONE` | ) |

Mounts a volume.

Parameters

  flags | Flags affecting the operation.

bool Gio::Volume::mount_finish | ( | const Glib::RefPtr< AsyncResult >& | result | ) |

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 VolumeMonitor.

Parameters

  result | A AsyncResult.

Returns
  `true`, `false` if operation failed.

virtual void Gio::Volume::on_changed | ( |  | ) |

protectedvirtual

This is a default handler for the signal signal_changed().

virtual void Gio::Volume::on_removed | ( |  | ) |

protectedvirtual

This is a default handler for the signal signal_removed().

bool Gio::Volume::should_automount | ( |  | ) | const

Returns whether the volume should be automatically mounted.

Returns
  `true` if the volume should be automatically mounted.

Glib::SignalProxy0< void > Gio::Volume::signal_changed | ( |  | ) |

Slot Prototype:
  `void on_my_changed()`

Emitted when the volume has been changed.

Glib::SignalProxy0< void > Gio::Volume::signal_removed | ( |  | ) |

Slot Prototype:
  `void on_my_removed()`

This signal is emitted when the Volume have been removed. If the recipient is holding references to the object they should release them so the object can be finalized.

Glib::ustring Gio::Volume::sort_key | ( |  | ) |

Gets the sort key for volume, if any.

Since glibmm 2.32:

Returns
  Sorting key for volume or `0` if no such key is available.

## Friends And Related Function Documentation

Glib::RefPtr< Gio::Volume > wrap | ( | GVolume * | object,
|  | bool | take_copy = `false`
| ) |  |

related

A Glib::wrap() method for this object.

Parameters

  object | The C instance.
  take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns
  A C++ instance that wraps this C instance.