接口
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 |
|
初始化对象。 |