接口
GioInitable
自:2.22
描述 [src]
interface Gio.Initable : GObject.Object
GInitable
是由可以在初始化期间失败的物体实现的。如果一个对象实现了此接口,那么它必须在构造后立即初始化,无论是通过g_initable_init()
还是g_async_initable_init_async()
(后者仅在它还实现了GAsyncInitable
时才可用)。
如果对象未初始化,或者初始化返回错误,则除g_object_ref()
和g_object_unref()
之外的所有操作都是无效的,并且具有未定义的行为。它们通常会失败并调用g_critical()
或g_warning()
,但不应该依赖于此。
不打算直接使用此接口的用户方法,而是会在各种情况下自动使用。对于C应用程序,你通常可以直接调用g_initable_new()
,或者通过foo_thing_new()
包装器间接调用。这将调用g_initable_init()
,在幕后进行,在失败时返回NULL
,并将GError
设置为错误(此时实例会被取消引用)。
对于支持异常的本地构造函数的语言的绑定,可以在正常构造期间检查是否实现了GInitable
,并自动初始化它们,在失败时抛出异常。
自:2.22
函数
g_initable_new_valist
构建GInitable
对象的辅助函数。这与g_object_new_valist()
类似,但还会初始化对象并在失败时返回NULL
,设置一个错误。
自:2.22
接口结构
struct GioInitableIface {
GTypeInterface g_iface;
gboolean (* init) (
GInitable* initable,
GCancellable* cancellable,
GError** error
);
}
提供了一个初始化对象的接口,以便初始化可能失败。
接口成员
g_iface |
|
父接口。 |
|
init |
|
初始化对象。 |