Gio::Drive Class Reference

Virtual File System drive management. More...

`#include <giomm/drive.h>`

Inheritance diagram for Gio::Drive:
[legend]

## Public Member Functions

virtual | ~Drive ()
GDrive* | gobj ()
| Provides access to the underlying C GObject. More...
const GDrive* | gobj () const
| Provides access to the underlying C GObject. More...
Glib::ustring | get_name () const
| Gets the name of drive. More...
Glib::RefPtr< Icon > | get_icon ()
| Gets the icon for drive. More...
Glib::RefPtr< const Icon > | get_icon () const
| Gets the icon for drive. More...
Glib::RefPtr< Icon > | get_symbolic_icon ()
| Gets the icon for drive. More...
Glib::RefPtr< const Icon > | get_symbolic_icon () const
| Gets the icon for drive. More...
bool | has_volumes () const
| Check if drive has any mountable volumes. More...
Glib::ListHandle< Glib::RefPtr < Volume > > | get_volumes ()
| Get a list of mountable volumes for drive. More...
bool | is_media_removable () const
| Checks if the drive supports removable media. More...
bool | has_media () const
| Checks if the drive has media. More...
bool | is_media_check_automatic () const
| Checks if drive is capabable of automatically detecting media changes. More...
bool | can_poll_for_media () const
| Checks if a drive can be polled for media changes. More...
bool | can_eject () const
| Checks if a drive can be ejected. More...
void | eject (const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
| Ejects the drive. More...
void | eject (const SlotAsyncReady& slot, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
| Ejects the drive. More...
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 (MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
| Ejects the drive. More...
void | eject (const Glib::RefPtr< MountOperation >& mount_operation, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
bool | eject_finish (const Glib::RefPtr< AsyncResult >& result)
| Finishes ejecting a drive. More...
void | poll_for_media (const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable)
| Polls drive to see if media has been inserted or removed. More...
void | poll_for_media (const SlotAsyncReady& slot)
| Polls drive to see if media has been inserted or removed. More...
void | poll_for_media ()
| Polls drive to see if media has been inserted or removed. More...
bool | poll_for_media_finish (const Glib::RefPtr< AsyncResult >& result)
| Finishes an operation started with g_drive_poll_for_media() on a drive. More...
std::string | get_identifier (const std::string& kind) const
| Gets the identifier of the given kind for drive. More...
Glib::StringArrayHandle | enumerate_identifiers () const
| Gets the kinds of identifiers that drive has. More...
void | start (const Glib::RefPtr< MountOperation >& mount_operation, const Glib::RefPtr< Cancellable >& cancellable, const SlotAsyncReady& slot, DriveStartFlags flags=DRIVE_START_NONE)
void | start (const Glib::RefPtr< MountOperation >& mount_operation, const SlotAsyncReady& slot, DriveStartFlags flags=DRIVE_START_NONE)
bool | start_finish (const Glib::RefPtr< AsyncResult >& result)
| Finishes starting a drive. More...
bool | can_start () const
bool | can_start_degraded () const
void | stop (const Glib::RefPtr< MountOperation >& mount_operation, const Glib::RefPtr< Cancellable >& cancellable, const SlotAsyncReady& slot, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
void | stop (const Glib::RefPtr< MountOperation >& mount_operation, const SlotAsyncReady& slot, MountUnmountFlags flags=MOUNT_UNMOUNT_NONE)
bool | stop_finish (const Glib::RefPtr< AsyncResult >& result)
| Finishes stopping a drive. More...
bool | can_stop () const
DriveStartStopType | get_start_stop_type () const
| Gets a hint about how a drive can be started/stopped. More...
Glib::ustring | get_sort_key () const
| Gets the sort key for drive, if any. More...
Glib::SignalProxy0< void > | signal_changed ()
Glib::SignalProxy0< void > | signal_disconnected ()
Glib::SignalProxy0< void > | signal_eject_button ()
Glib::SignalProxy0< void > | signal_stop_button ()
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

| Drive ()
| You should derive from this class to use it. More...

## Related Functions

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

## Detailed Description

Virtual File System drive management.

This represent a piece of hardware connected to the machine. It's generally only created for removable hardware or hardware with removable media. Gio::Drive is a container class for Gio::Volume objects that stem from the same piece of media. As such, Gio::Drive abstracts a drive with (or without) removable media and provides operations for querying whether media is available, determing whether media change is automatically detected and ejecting the media.

If the Gio::Drive reports that media isn't automatically detected, one can poll for media; typically one should not do this periodically as a poll for media operation is potententially expensive and may spin up the drive, creating noise.

Since glibmm 2.16:

## Constructor & Destructor Documentation

Gio::Drive::Drive | ( |  | ) |

protected

You should derive from this class to use it.

virtual Gio::Drive::~Drive | ( |  | ) |

virtual

## Member Function Documentation

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

static

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

Checks if a drive can be ejected.

Returns
  `true` if the drive can be ejected, `false` otherwise.

bool Gio::Drive::can_poll_for_media | ( |  | ) | const

Checks if a drive can be polled for media changes.

Returns
  `true` if the drive can be polled for media changes, `false` otherwise.

bool Gio::Drive::can_start | ( |  | ) | const

Since glibmm 2.22:

bool Gio::Drive::can_start_degraded | ( |  | ) | const

Since glibmm 2.22:

bool Gio::Drive::can_stop | ( |  | ) | const

Since glibmm 2.22:

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

Ejects the drive.

Parameters

  slot | A callback which will be called when the eject is completed or canceled.
  flags | Flags affecting the unmount if required for eject.
  cancellable | A cancellable object which can be used to cancel the eject.

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

Ejects the drive.

Parameters

  slot | A callback which will be called when the eject is completed.
  flags | Flags affecting the unmount if required for eject.

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

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

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

Ejects the drive.

Parameters

  flags | Flags affecting the unmount if required for eject.

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

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

Finishes ejecting a drive.

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 drive was successfully ejected. `false` otherwise.

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

Gets the kinds of identifiers that drive has.

Use g_drive_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<Icon> Gio::Drive::get_icon | ( |  | ) |

Gets the icon for drive.

Returns
  Icon for the drive. Free the returned object with Glib::object_unref().

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

Gets the icon for drive.

Returns
  Icon for the drive. Free the returned object with Glib::object_unref().

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

Gets the identifier of the given kind for drive.

Parameters

  kind | The kind of identifier to return.

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

Glib::ustring Gio::Drive::get_name | ( |  | ) | const

Gets the name of drive.

Returns
  A string containing drive's name. The returned string should be freed when no longer needed.

Glib::ustring Gio::Drive::get_sort_key | ( |  | ) | const

Gets the sort key for drive, if any.

Since glibmm 2.32:

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

DriveStartStopType Gio::Drive::get_start_stop_type | ( |  | ) | const

Gets a hint about how a drive can be started/stopped.

Since glibmm 2.22:

Returns
  A value from the DriveStartStopType enumeration.

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

Gets the icon for drive.

Since glibmm 2.34:

Returns
  Symbolic Icon for the drive. Free the returned object with Glib::object_unref().

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

Gets the icon for drive.

Since glibmm 2.34:

Returns
  Symbolic Icon for the drive. Free the returned object with Glib::object_unref().

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

static

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

Glib::ListHandle< Glib::RefPtr<Volume> > Gio::Drive::get_volumes | ( |  | ) |

Get a list of mountable volumes for drive.

The returned list should be freed with Glib::list_free(), after its elements have been unreffed with Glib::object_unref().

Returns
  List containing any Volume objects on the given drive.

GDrive* Gio::Drive::gobj | ( |  | ) |

inline

Provides access to the underlying C GObject.

const GDrive* Gio::Drive::gobj | ( |  | ) | const

inline

Provides access to the underlying C GObject.

bool Gio::Drive::has_media | ( |  | ) | const

Checks if the drive has media.

Note that the OS may not be polling the drive for media changes; see g_drive_is_media_check_automatic() for more details.

Returns
  `true` if drive has media, `false` otherwise.

bool Gio::Drive::has_volumes | ( |  | ) | const

Check if drive has any mountable volumes.

Returns
  `true` if the drive contains volumes, `false` otherwise.

bool Gio::Drive::is_media_check_automatic | ( |  | ) | const

Checks if drive is capabable of automatically detecting media changes.

Returns
  `true` if the drive is capabable of automatically detecting media changes, `false` otherwise.

bool Gio::Drive::is_media_removable | ( |  | ) | const

Checks if the drive supports removable media.

Returns
  `true` if drive supports removable media, `false` otherwise.

void Gio::Drive::poll_for_media | ( | const SlotAsyncReady& | slot,
|  | const Glib::RefPtr< Cancellable >& | cancellable
| ) |  |

Polls drive to see if media has been inserted or removed.

Parameters

  slot | A callback which will be called when the poll is completed.
  cancellable | A cancellable object which can be used to cancel the operation.

void Gio::Drive::poll_for_media | ( | const SlotAsyncReady& | slot | ) |

Polls drive to see if media has been inserted or removed.

Parameters

  slot | A callback which will be called when the poll is completed.

void Gio::Drive::poll_for_media | ( |  | ) |

Polls drive to see if media has been inserted or removed.

bool Gio::Drive::poll_for_media_finish | ( | const Glib::RefPtr< AsyncResult >& | result | ) |

Finishes an operation started with g_drive_poll_for_media() on a drive.

Parameters

  result | A AsyncResult.

Returns
  `true` if the drive has been poll_for_mediaed successfully, `false` otherwise.

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

Since glibmm 2.20:

Slot Prototype:
  `void on_my_changed()`

Emitted when the drive's state has changed.

Glib::SignalProxy0< void > Gio::Drive::signal_disconnected | ( |  | ) |

Since glibmm 2.20:

Slot Prototype:
  `void on_my_disconnected()`

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

Glib::SignalProxy0< void > Gio::Drive::signal_eject_button | ( |  | ) |

Since glibmm 2.20:

Slot Prototype:
  `void on_my_eject_button()`

Emitted when the physical eject button (if any) of a drive has been pressed.

Glib::SignalProxy0< void > Gio::Drive::signal_stop_button | ( |  | ) |

Slot Prototype:
  `void on_my_stop_button()`

Emitted when the physical stop button (if any) of a drive has been pressed.

Since glibmm 2.22:

void Gio::Drive::start | ( | const Glib::RefPtr< MountOperation >& | mount_operation,
|  | const Glib::RefPtr< Cancellable >& | cancellable,
|  | const SlotAsyncReady& | slot,
|  | DriveStartFlags | flags = `DRIVE_START_NONE`
| ) |  |

Since glibmm 2.22:

void Gio::Drive::start | ( | const Glib::RefPtr< MountOperation >& | mount_operation,
|  | const SlotAsyncReady& | slot,
|  | DriveStartFlags | flags = `DRIVE_START_NONE`
| ) |  |

Since glibmm 2.22:

bool Gio::Drive::start_finish | ( | const Glib::RefPtr< AsyncResult >& | result | ) |

Finishes starting a drive.

Since glibmm 2.22:

Parameters

  result | A AsyncResult.

Returns
  `true` if the drive has been started successfully, `false` otherwise.

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

Since glibmm 2.22:

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

Since glibmm 2.22:

bool Gio::Drive::stop_finish | ( | const Glib::RefPtr< AsyncResult >& | result | ) |

Finishes stopping a drive.

Since glibmm 2.22:

Parameters

  result | A AsyncResult.

Returns
  `true` if the drive has been stopped successfully, `false` otherwise.

## Friends And Related Function Documentation

Glib::RefPtr< Gio::Drive > wrap | ( | GDrive * | 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.