GioSettingsBackend

描述 [源代码]

abstract class Gio.SettingsBackend : GObject.Object
{
  /* No available fields */
}

GSettingsBackend接口定义了一个通用的接口来存储在层次结构中的非严格类型数据。要为GSettings实现一个替代的存储后端,您需要实现GSettingsBackend接口,然后使其实现扩展点G_SETTINGS_BACKEND_EXTENSION_POINT_NAME

接口定义了读取和写入值的函数、确定是否写入某些值会失败(锁定)以及改变通知机制。

接口的语义定义非常精确,实现必须仔细遵守接口方法中记录的调用者的期望。

一些GSettingsBackend函数接受或返回一个GTree。这些树始终以字符串作为键,以GVariant作为值。

GSettingsBackend API 导出,以允许第三方实现,但它不提供与公共GIO API相同的稳定性保证。因此,在包含 gio/gsettingsbackend.h之前,必须定义C预处理符号G_SETTINGS_ENABLE_BACKEND

祖先

函数

g_settings_backend_flatten_tree

计算树中所有键的最长公共前缀,并输出相对于该前缀的键名数组以及可选的每个键的存储值。

自2.26

g_settings_backend_get_default

返回默认的GSettingsBackend。可以通过将环境变量GSETTINGS_BACKEND设置为目标设置后端的名称来覆盖默认设置。

自2.28

实例方法

g_settings_backend_changed

表示单个键可能已经改变。后端实现应该在这个键的值可能已更改时调用此方法。

自2.26

g_settings_backend_changed_tree

这是一个方便的包装调用。它从tree获取更改列表,计算最长公共前缀并调用g_settings_backend_changed()

自2.26

g_settings_backend_keys_changed

表示一组键可能已经改变。后端实现应该在键的值可能已更改时调用此方法。

自2.26

g_settings_backend_path_changed

表示给定的路径下所有键可能已经改变。后端实现应该在整个键路径的值可能已更改时调用此方法。

自2.26

g_settings_backend_path_writable_changed

表示给定路径下所有键的可写性可能已改变。

自2.26

g_settings_backend_writable_changed

表示单个键的可写性可能已改变。

自2.26

继承自GObject(43)的方法

请参阅GObject获取完整的方法列表。

信号

继承自GObject(1)的信号
GObject::notify

当对象的一个属性通过g_object_set_property()、g_object_set()等设置值时,会产生notify信号。

类结构

struct GioSettingsBackendClass {
  GObjectClass parent_class;
  GVariant* (* read) (
    GSettingsBackend* backend,
    const gchar* key,
    const GVariantType* expected_type,
    gboolean default_value
  );
  gboolean (* get_writable) (
    GSettingsBackend* backend,
    const gchar* key
  );
  gboolean (* write) (
    GSettingsBackend* backend,
    const gchar* key,
    GVariant* value,
    gpointer origin_tag
  );
  gboolean (* write_tree) (
    GSettingsBackend* backend,
    GTree* tree,
    gpointer origin_tag
  );
  void (* reset) (
    GSettingsBackend* backend,
    const gchar* key,
    gpointer origin_tag
  );
  void (* subscribe) (
    GSettingsBackend* backend,
    const gchar* name
  );
  void (* unsubscribe) (
    GSettingsBackend* backend,
    const gchar* name
  );
  void (* sync) (
    GSettingsBackend* backend
  );
  GPermission* (* get_permission) (
    GSettingsBackend* backend,
    const gchar* path
  );
  GVariant* (* read_user_value) (
    GSettingsBackend* backend,
    const gchar* key,
    const GVariantType* expected_type
  );
  
}

GSettingsBackend的结构。

成员
parent_class: GObjectClass

无描述。

read: GVariant* (* read) ( GSettingsBackend* backend, const gchar* key, const GVariantType* expected_type, gboolean default_value )

读取键值的虚方法。

get_writable: gboolean (* get_writable) ( GSettingsBackend* backend, const gchar* key )

获取键是否可写的虚方法。

write: gboolean (* write) ( GSettingsBackend* backend, const gchar* key, GVariant* value, gpointer origin_tag )

更改键值的虚方法。

write_tree: gboolean (* write_tree) ( GSettingsBackend* backend, GTree* tree, gpointer origin_tag )

更改键树的虚方法。

reset: void (* reset) ( GSettingsBackend* backend, const gchar* key, gpointer origin_tag )

重置状态的虚方法。

subscribe: void (* subscribe) ( GSettingsBackend* backend, const gchar* name )

订阅键更改的虚方法。

unsubscribe: void (* unsubscribe) ( GSettingsBackend* backend, const gchar* name )

取消订阅键更改的虚方法。

sync: void (* sync) ( GSettingsBackend* backend )

同步状态的虚方法。

get_permission: GPermission* (* get_permission) ( GSettingsBackend* backend, const gchar* path )

获取键权限的虚方法。

read_user_value: GVariant* (* read_user_value) ( GSettingsBackend* backend, const gchar* key, const GVariantType* expected_type )

读取用户键值的虚方法。

虚方法

Gio.SettingsBackendClass.get_permission

获取键权限的虚方法。

Gio.SettingsBackendClass.get_writable

获取键是否可写的虚方法。

Gio.SettingsBackendClass.read

读取键值的虚方法。

Gio.SettingsBackendClass.read_user_value

读取用户键值的虚方法。

Gio.SettingsBackendClass.reset

重置状态的虚方法。

Gio.SettingsBackendClass.subscribe

订阅键更改的虚方法。

Gio.SettingsBackendClass.sync

同步状态的虚方法。

Gio.SettingsBackendClass.unsubscribe

取消订阅键更改的虚方法。

Gio.SettingsBackendClass.write

更改键值的虚方法。

Gio.SettingsBackendClass.write_tree

更改键树的虚方法。