类
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 )读取用户键值的虚方法。