类
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_get_default
返回默认的GSettingsBackend
。可以通过将环境变量GSETTINGS_BACKEND
设置为目标设置后端的名称来覆盖默认设置。
自2.28
实例方法
g_settings_backend_changed_tree
这是一个方便的包装调用。它从tree
获取更改列表,计算最长公共前缀并调用g_settings_backend_changed()
。
自2.26
信号
继承自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 )
读取用户键值的虚方法。