接口
描述 [源代码]
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_eject_with_operation
弹出驱动器。这是一项异步操作,并由调用带drive
和返回的callback
数据GAsyncResult
的g_drive_eject_with_operation_finish()
完成。
since: 2.22
g_drive_has_media
检查驱动器是否具有媒体。请注意,操作系统可能不会轮询驱动器的媒体更改;有关更多详细信息,请参阅g_drive_is_media_check_automatic()
。
接口结构
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 |
|
父接口。 |
|
changed |
|
当驱动器发生变化时发出的信号。 |
|
disconnected |
|
当 |
|
eject_button |
|
当驱动器的物理弹出按钮(如果有)被按下时发出。 |
|
get_name |
|
返回给定 |
|
get_icon |
|
返回给定 |
|
has_volumes |
|
如果 |
|
get_volumes |
|
返回包含 |
|
is_media_removable |
|
如果 |
|
has_media |
|
如果 |
|
is_media_check_automatic |
|
如果 |
|
can_eject |
|
如果 |
|
can_poll_for_media |
|
如果 |
|
eject |
|
弹出 |
|
eject_finish |
|
完成弹出操作。 |
|
poll_for_media |
|
在 |
|
poll_for_media_finish |
|
完成媒体轮询操作。 |
|
get_identifier |
|
返回给定种类的标识符,如果 |
|
enumerate_identifiers |
|
返回包含 |
|
get_start_stop_type |
|
获取表示启动/停止驱动器详细信息的 |
|
can_start |
|
如果可以启动 |
|
can_start_degraded |
|
如果可以以降级方式启动 |
|
start |
|
启动 |
|
start_finish |
|
完成启动操作。自 2.22。 |
|
can_stop |
|
如果可以停止 |
|
stop |
|
停止 |
|
stop_finish |
|
完成停止操作。自 2.22。 |
|
stop_button |
|
驱动器的物理停止按钮(如有)被按下时发出的信号。自 2.22 版本起。 |
|
eject_with_operation |
|
使用 |
|
eject_with_operation_finish |
|
使用 |
|
get_sort_key |
|
获取用于对 |
|
get_symbolic_icon |
|
为给定的 |
|
is_removable |
|
如果用户认为 |
虚函数
Gio.Drive.eject_with_operation
弹出驱动器。这是一项异步操作,并由调用带drive
和返回的callback
数据GAsyncResult
的g_drive_eject_with_operation_finish()
完成。
since: 2.22
Gio.Drive.has_media
检查驱动器是否具有媒体。请注意,操作系统可能不会轮询驱动器的媒体更改;有关更多详细信息,请参阅g_drive_is_media_check_automatic()
。