接口

描述 [源代码]

interface Gio.Drive : GObject.Object

GDrive 表示连接到机器的硬件设备。它通常仅用于可移动硬件或具有可移动媒体的硬件。例如,光驱或 USB 闪存驱动器。

GDrive是一个用于从相同媒体来源的GVolume对象的容器类别。因此,GDrive抽象了一个带(或不带)可移动媒体的光驱,并提供查询媒体是否可用、确定是否自动检测到媒体更改以及弹出媒体的操作。

如果GDrive报告媒体无法自动检测,可以轮询媒体;通常不应该定期这样做,因为媒体轮询操作可能很昂贵,并可能使驱动器产生噪音。

GDrive支持带有前方认证支持的启动和停止驱动器。这可以用来支持各种使用场景,包括连接/断开iSCSI设备、关闭外部磁盘托架以及启动/停止多磁盘设备(如RAID设备)。请注意,启动/停止GDrive的实际语义和副作用可能因实现而异。要在文件管理器等中选取正确的动词,请使用g_drive_get_start_stop_type()

对于从GnomeVFS迁移的情况,请注意,在那个API中没有与GDrive相当的类。

前提条件

为了实现驱动器,您的类型必须继承自GObject

实例方法

g_drive_can_eject

检查驱动器是否可以弹出。

g_drive_can_poll_for_media

检查驱动器是否可以轮询媒体更改。

g_drive_can_start

检查驱动器是否可以启动。

since: 2.22

g_drive_can_start_degraded

检查驱动器是否可以以降级方式启动。

since: 2.22

g_drive_can_stop

检查驱动器是否可以停止。

since: 2.22

g_drive_eject

异步地弹出驱动器。

已弃用: 2.22 

g_drive_eject_finish

完成弹出驱动器。

已弃用: 2.22 

g_drive_eject_with_operation

弹出驱动器。这是一项异步操作,并由调用带drive和返回的callback数据GAsyncResultg_drive_eject_with_operation_finish()完成。

since: 2.22

g_drive_eject_with_operation_finish

完成弹出驱动器。如果在操作期间发生任何错误,error将设置为包含错误,并将返回FALSE

since: 2.22

g_drive_enumerate_identifiers

获取驱动器拥有的标识符类型。使用g_drive_get_identifier()获取标识符本身。

g_drive_get_icon

获取驱动器的图标。

g_drive_get_identifier

获取驱动器给定类型的标识符。目前唯一可用的标识符是G_DRIVE_IDENTIFIER_KIND_UNIX_DEVICE

g_drive_get_name

获取驱动器的名称。

g_drive_get_sort_key

获取驱动器的排序键(如果有的话)。

since: 2.32

g_drive_get_start_stop_type

获取有关如何启动/停止驱动器的提示。

since: 2.22

g_drive_get_symbolic_icon

获取驱动器的图标。

since: 2.34

g_drive_get_volumes

获取用于驱动器的可挂载卷列表。

g_drive_has_media

检查驱动器是否具有媒体。请注意,操作系统可能不会轮询驱动器的媒体更改;有关更多详细信息,请参阅g_drive_is_media_check_automatic()

g_drive_has_volumes

检查驱动器是否有任何可挂载的卷。

g_drive_is_media_check_automatic

检查 drive 是否能够自动检测媒体变更。

g_drive_is_media_removable

检查 drive 是否支持可移除媒体。

g_drive_is_removable

检查 GDrive 及/或其媒体是否被认为是可移除的。参见g_drive_is_media_removable()。

since: 2.50

g_drive_poll_for_media

异步轮询 drive 以查看是否已插入或移除媒体。

g_drive_poll_for_media_finish

drive 上完成 g_drive_poll_for_media() 启动的操作。

g_drive_start

异步启动 drive

since: 2.22

g_drive_start_finish

完成启动 drive

since: 2.22

g_drive_stop

异步停止 drive

since: 2.22

g_drive_stop_finish

完成停止 drive

since: 2.22

信号

Gio.Drive::changed

当驱动器状态改变时发出。

Gio.Drive::disconnected

GDrive 已断开连接时发出此信号。如果接收者持有对该对象的引用,则应释放它们,以便对象可以完成。

Gio.Drive::eject-button

当驱动器的物理弹出按钮(如果有)被按下时发出。

Gio.Drive::stop-button

当驱动器的物理停止按钮(如果有)被按下时发出。

since: 2.22

接口结构

struct GioDriveIface {
  GTypeInterface g_iface;
  void (* changed) (
    GDrive* drive
  );
  void (* disconnected) (
    GDrive* drive
  );
  void (* eject_button) (
    GDrive* drive
  );
  char* (* get_name) (
    GDrive* drive
  );
  GIcon* (* get_icon) (
    GDrive* drive
  );
  gboolean (* has_volumes) (
    GDrive* drive
  );
  GList* (* get_volumes) (
    GDrive* drive
  );
  gboolean (* is_media_removable) (
    GDrive* drive
  );
  gboolean (* has_media) (
    GDrive* drive
  );
  gboolean (* is_media_check_automatic) (
    GDrive* drive
  );
  gboolean (* can_eject) (
    GDrive* drive
  );
  gboolean (* can_poll_for_media) (
    GDrive* drive
  );
  void (* eject) (
    GDrive* drive,
    GMountUnmountFlags flags,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* eject_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  );
  void (* poll_for_media) (
    GDrive* drive,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* poll_for_media_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  );
  char* (* get_identifier) (
    GDrive* drive,
    const char* kind
  );
  char** (* enumerate_identifiers) (
    GDrive* drive
  );
  GDriveStartStopType (* get_start_stop_type) (
    GDrive* drive
  );
  gboolean (* can_start) (
    GDrive* drive
  );
  gboolean (* can_start_degraded) (
    GDrive* drive
  );
  void (* start) (
    GDrive* drive,
    GDriveStartFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* start_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  );
  gboolean (* can_stop) (
    GDrive* drive
  );
  void (* stop) (
    GDrive* drive,
    GMountUnmountFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* stop_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  );
  void (* stop_button) (
    GDrive* drive
  );
  void (* eject_with_operation) (
    GDrive* drive,
    GMountUnmountFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gboolean (* eject_with_operation_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  );
  const gchar* (* get_sort_key) (
    GDrive* drive
  );
  GIcon* (* get_symbolic_icon) (
    GDrive* drive
  );
  gboolean (* is_removable) (
    GDrive* drive
  );
  
}

用于创建 GDrive 实现的接口。

接口成员
g_iface
GTypeInterface
 

父接口。

changed
void (* changed) (
    GDrive* drive
  )
 

当驱动器发生变化时发出的信号。

disconnected
void (* disconnected) (
    GDrive* drive
  )
 

GDrive 已断开连接时发出的移除信号。如果接收者持有对该对象的引用,则应释放它们,以便对象可以完成。

eject_button
void (* eject_button) (
    GDrive* drive
  )
 

当驱动器的物理弹出按钮(如果有)被按下时发出。

get_name
char* (* get_name) (
    GDrive* drive
  )
 

返回给定 GDrive 的名称。

get_icon
GIcon* (* get_icon) (
    GDrive* drive
  )
 

返回给定 GDriveGIcon

has_volumes
gboolean (* has_volumes) (
    GDrive* drive
  )
 

如果 GDrive 有可安装卷返回 TRUE

get_volumes
GList* (* get_volumes) (
    GDrive* drive
  )
 

返回包含 GDriveGVolumeGList 列表。

is_media_removable
gboolean (* is_media_removable) (
    GDrive* drive
  )
 

如果 GDrive 支持媒体的移除和插入返回 TRUE

has_media
gboolean (* has_media) (
    GDrive* drive
  )
 

如果 GDrive 已插入媒体返回 TRUE

is_media_check_automatic
gboolean (* is_media_check_automatic) (
    GDrive* drive
  )
 

如果 GDrive 能够自动检测媒体更改返回 TRUE

can_eject
gboolean (* can_eject) (
    GDrive* drive
  )
 

如果 GDrive 可以弹出媒体返回 TRUE

can_poll_for_media
gboolean (* can_poll_for_media) (
    GDrive* drive
  )
 

如果 GDrive 能够手动轮询媒体更改返回 TRUE

eject
void (* eject) (
    GDrive* drive,
    GMountUnmountFlags flags,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

弹出 GDrive

eject_finish
gboolean (* eject_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  )
 

完成弹出操作。

poll_for_media
void (* poll_for_media) (
    GDrive* drive,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

GDrive 上轮询媒体插入/移除。

poll_for_media_finish
gboolean (* poll_for_media_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  )
 

完成媒体轮询操作。

get_identifier
char* (* get_identifier) (
    GDrive* drive,
    const char* kind
  )
 

返回给定种类的标识符,如果 GDrive 没有标识符返回 NULL

enumerate_identifiers
char** (* enumerate_identifiers) (
    GDrive* drive
  )
 

返回包含 GDrive 所具有的标识符种类的字符串数组。

get_start_stop_type
GDriveStartStopType (* get_start_stop_type) (
    GDrive* drive
  )
 

获取表示启动/停止驱动器详细信息的 GDriveStartStopType。自 2.22。

can_start
gboolean (* can_start) (
    GDrive* drive
  )
 

如果可以启动 GDrive 返回 TRUE。自 2.22。

can_start_degraded
gboolean (* can_start_degraded) (
    GDrive* drive
  )
 

如果可以以降级方式启动 GDrive 返回 TRUE。自 2.22。

start
void (* start) (
    GDrive* drive,
    GDriveStartFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

启动 GDrive。自 2.22。

start_finish
gboolean (* start_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  )
 

完成启动操作。自 2.22。

can_stop
gboolean (* can_stop) (
    GDrive* drive
  )
 

如果可以停止 GDrive 返回 TRUE。自 2.22。

stop
void (* stop) (
    GDrive* drive,
    GMountUnmountFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

停止 GDrive。自 2.22。

stop_finish
gboolean (* stop_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  )
 

完成停止操作。自 2.22。

stop_button
void (* stop_button) (
    GDrive* drive
  )
 

驱动器的物理停止按钮(如有)被按下时发出的信号。自 2.22 版本起。

eject_with_operation
void (* eject_with_operation) (
    GDrive* drive,
    GMountUnmountFlags flags,
    GMountOperation* mount_operation,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

使用 GMountOperation 开始弹出 GDrive。自 2.22 版本起。

eject_with_operation_finish
gboolean (* eject_with_operation_finish) (
    GDrive* drive,
    GAsyncResult* result,
    GError** error
  )
 

使用 GMountOperation 完成弹出操作。自 2.22 版本起。

get_sort_key
const gchar* (* get_sort_key) (
    GDrive* drive
  )
 

获取用于对 GDrive 实例进行排序的键,如果不存在此类键,则返回 NULL。自 2.32 版本起。

get_symbolic_icon
GIcon* (* get_symbolic_icon) (
    GDrive* drive
  )
 

为给定的 GDrive 返回一个符号性 GIcon。自 2.34 版本起。

is_removable
gboolean (* is_removable) (
    GDrive* drive
  )
 

如果用户认为 GDrive 和/或其媒体是可移动的,则返回 TRUE。自 2.50 版本起。

虚函数

Gio.Drive.can_eject

检查驱动器是否可以弹出。

Gio.Drive.can_poll_for_media

检查驱动器是否可以轮询媒体更改。

Gio.Drive.can_start

检查驱动器是否可以启动。

since: 2.22

Gio.Drive.can_start_degraded

检查驱动器是否可以以降级方式启动。

since: 2.22

Gio.Drive.can_stop

检查驱动器是否可以停止。

since: 2.22

Gio.Drive.changed

当驱动器发生变化时发出的信号。

Gio.Drive.disconnected

GDrive 已断开连接时发出的移除信号。如果接收者持有对该对象的引用,则应释放它们,以便对象可以完成。

Gio.Drive.eject

异步地弹出驱动器。

已弃用: 2.22 

Gio.Drive.eject_button

当驱动器的物理弹出按钮(如果有)被按下时发出。

Gio.Drive.eject_finish

完成弹出驱动器。

已弃用: 2.22 

Gio.Drive.eject_with_operation

弹出驱动器。这是一项异步操作,并由调用带drive和返回的callback数据GAsyncResultg_drive_eject_with_operation_finish()完成。

since: 2.22

Gio.Drive.eject_with_operation_finish

完成弹出驱动器。如果在操作期间发生任何错误,error将设置为包含错误,并将返回FALSE

since: 2.22

Gio.Drive.enumerate_identifiers

获取驱动器拥有的标识符类型。使用g_drive_get_identifier()获取标识符本身。

Gio.Drive.get_icon

获取驱动器的图标。

Gio.Drive.get_identifier

获取驱动器给定类型的标识符。目前唯一可用的标识符是G_DRIVE_IDENTIFIER_KIND_UNIX_DEVICE

Gio.Drive.get_name

获取驱动器的名称。

Gio.Drive.get_sort_key

获取驱动器的排序键(如果有的话)。

since: 2.32

Gio.Drive.get_start_stop_type

获取有关如何启动/停止驱动器的提示。

since: 2.22

Gio.Drive.get_symbolic_icon

获取驱动器的图标。

since: 2.34

Gio.Drive.get_volumes

获取用于驱动器的可挂载卷列表。

Gio.Drive.has_media

检查驱动器是否具有媒体。请注意,操作系统可能不会轮询驱动器的媒体更改;有关更多详细信息,请参阅g_drive_is_media_check_automatic()

Gio.Drive.has_volumes

检查驱动器是否有任何可挂载的卷。

Gio.Drive.is_media_check_automatic

检查 drive 是否能够自动检测媒体变更。

Gio.Drive.is_media_removable

检查 drive 是否支持可移除媒体。

Gio.Drive.is_removable

检查 GDrive 及/或其媒体是否被认为是可移除的。参见g_drive_is_media_removable()。

since: 2.50

Gio.Drive.poll_for_media

异步轮询 drive 以查看是否已插入或移除媒体。

Gio.Drive.poll_for_media_finish

drive 上完成 g_drive_poll_for_media() 启动的操作。

Gio.Drive.start

异步启动 drive

since: 2.22

Gio.Drive.start_finish

完成启动 drive

since: 2.22

Gio.Drive.stop

异步停止 drive

since: 2.22

Gio.Drive.stop_button

驱动器的物理停止按钮(如有)被按下时发出的信号。自 2.22 版本起。

Gio.Drive.stop_finish

完成停止 drive

since: 2.22