Drive

gio.drive.Drive represents a piece of hardware connected to the machine. It’s generally only created for removable hardware or hardware with removable media.

gio.drive.Drive is a container class for gio.volume.Volume objects that stem from the same piece of media. As such, gio.drive.Drive abstracts a drive with (or without) removable media and provides operations for querying whether media is available, determining whether media change is automatically detected and ejecting the media.

If the gio.drive.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 potentially expensive and may spin up the drive creating noise.

gio.drive.Drive supports starting and stopping drives with authentication support for the former. This can be used to support a diverse set of use cases including connecting/disconnecting iSCSI devices, powering down external disk enclosures and starting/stopping multi-disk devices such as RAID devices. Note that the actual semantics and side-effects of starting/stopping a gio.drive.Drive may vary according to implementation. To choose the correct verbs in e.g. a file manager, use gio.drive.Drive.getStartStopType.

For porting from GnomeVFS note that there is no equivalent of gio.drive.Drive in that API.

interface Drive {}

Members

Functions

canEject
bool canEject()

Checks if a drive can be ejected.

canPollForMedia
bool canPollForMedia()

Checks if a drive can be polled for media changes.

canStart
bool canStart()

Checks if a drive can be started.

canStartDegraded
bool canStartDegraded()

Checks if a drive can be started degraded.

canStop
bool canStop()

Checks if a drive can be stopped.

connectChanged
ulong connectChanged(T callback, Flag!"After" after)

Connect to Changed signal.

connectDisconnected
ulong connectDisconnected(T callback, Flag!"After" after)

Connect to Disconnected signal.

connectEjectButton
ulong connectEjectButton(T callback, Flag!"After" after)

Connect to EjectButton signal.

connectStopButton
ulong connectStopButton(T callback, Flag!"After" after)

Connect to StopButton signal.

eject
void eject(gio.types.MountUnmountFlags flags, gio.cancellable.Cancellable cancellable, gio.types.AsyncReadyCallback callback)

Asynchronously ejects a drive.

ejectFinish
bool ejectFinish(gio.async_result.AsyncResult result)

Finishes ejecting a drive.

ejectWithOperation
void ejectWithOperation(gio.types.MountUnmountFlags flags, gio.mount_operation.MountOperation mountOperation, gio.cancellable.Cancellable cancellable, gio.types.AsyncReadyCallback callback)

Ejects a drive. This is an asynchronous operation, and is finished by calling gio.drive.Drive.ejectWithOperationFinish with the drive and #GAsyncResult data returned in the callback.

ejectWithOperationFinish
bool ejectWithOperationFinish(gio.async_result.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.

enumerateIdentifiers
string[] enumerateIdentifiers()

Gets the kinds of identifiers that drive has. Use gio.drive.Drive.getIdentifier to obtain the identifiers themselves.

getIcon
gio.icon.Icon getIcon()

Gets the icon for drive.

getIdentifier
string getIdentifier(string kind)

Gets the identifier of the given kind for drive. The only identifier currently available is G_DRIVE_IDENTIFIER_KIND_UNIX_DEVICE.

getName
string getName()

Gets the name of drive.

getSortKey
string getSortKey()

Gets the sort key for drive, if any.

getStartStopType
gio.types.DriveStartStopType getStartStopType()

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

getSymbolicIcon
gio.icon.Icon getSymbolicIcon()

Gets the icon for drive.

getVolumes
gio.volume.Volume[] getVolumes()

Get a list of mountable volumes for drive.

hasMedia
bool hasMedia()

Checks if the drive has media. Note that the OS may not be polling the drive for media changes; see gio.drive.Drive.isMediaCheckAutomatic for more details.

hasVolumes
bool hasVolumes()

Check if drive has any mountable volumes.

isMediaCheckAutomatic
bool isMediaCheckAutomatic()

Checks if drive is capable of automatically detecting media changes.

isMediaRemovable
bool isMediaRemovable()

Checks if the drive supports removable media.

isRemovable
bool isRemovable()

Checks if the #GDrive and/or its media is considered removable by the user. See gio.drive.Drive.isMediaRemovable.

pollForMedia
void pollForMedia(gio.cancellable.Cancellable cancellable, gio.types.AsyncReadyCallback callback)

Asynchronously polls drive to see if media has been inserted or removed.

pollForMediaFinish
bool pollForMediaFinish(gio.async_result.AsyncResult result)

Finishes an operation started with gio.drive.Drive.pollForMedia on a drive.

start
void start(gio.types.DriveStartFlags flags, gio.mount_operation.MountOperation mountOperation, gio.cancellable.Cancellable cancellable, gio.types.AsyncReadyCallback callback)

Asynchronously starts a drive.

startFinish
bool startFinish(gio.async_result.AsyncResult result)

Finishes starting a drive.

stop
void stop(gio.types.MountUnmountFlags flags, gio.mount_operation.MountOperation mountOperation, gio.cancellable.Cancellable cancellable, gio.types.AsyncReadyCallback callback)

Asynchronously stops a drive.

stopFinish
bool stopFinish(gio.async_result.AsyncResult result)

Finishes stopping a drive.