接口

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

先决条件

为了实现Initable,你的类型必须继承自GObject

函数

g_initable_new

构建GInitable对象的辅助函数。这与g_object_new()类似,但还会初始化对象并在失败时返回NULL,设置一个错误。

自:2.22

g_initable_new_valist

构建GInitable对象的辅助函数。这与g_object_new_valist()类似,但还会初始化对象并在失败时返回NULL,设置一个错误。

自:2.22

g_initable_newv

构建GInitable对象的辅助函数。这与g_object_newv()类似,但还会初始化对象并在失败时返回NULL,设置一个错误。

弃用:2.54 自:2.22

实例方法

g_initable_init

初始化实现此接口的对象。

自:2.22

接口结构

struct GioInitableIface {
  GTypeInterface g_iface;
  gboolean (* init) (
    GInitable* initable,
    GCancellable* cancellable,
    GError** error
  );
  
}

提供了一个初始化对象的接口,以便初始化可能失败。

接口成员
g_iface
GTypeInterface
 

父接口。

init
gboolean (* init) (
    GInitable* initable,
    GCancellable* cancellable,
    GError** error
  )
 

初始化对象。

虚方法

Gio.Initable.init

初始化实现此接口的对象。

自:2.22