方法
GioDBusProxyset_cached_property
自从:2.26
声明 [src]
void
g_dbus_proxy_set_cached_property (
GDBusProxy* proxy,
const gchar* property_name,
GVariant* value
)
描述 [src]
如果value
不是NULL
,则将具有名称property_name
的属性的缓存值设置为value
中的值。
如果value
是NULL
,则将缓存值从属性缓存中删除。
如果proxy
具有预期的接口(请参阅GDBusProxy:g-interface-info
)并且property_name
由它引用,则检查value
与属性的类型的匹配。
如果value
的GVariant
是浮动的,则它会耗尽。这允许方便地使用g_variant_new()的'inline'方式,例如。
g_dbus_proxy_set_cached_property (proxy,
"SomeProperty",
g_variant_new ("(si)",
"A String",
42));
通常你不需要使用此方法,因为proxy
正在使用org.freedesktop.DBus.Properties.PropertiesChanged
D-Bus信号跟踪更改。但是,由于性能原因,一个对象可能决定对某些属性不使用此信号,而是使用专有的OutOfBand机制来传输更改。
具体例子,考虑一个有ChatroomParticipants
属性的对象,它是一个字符串数组。而不是每次属性更改都传输相同的(长的)数组,更有效的方法是只通过例如ChatroomParticipantJoined(String name)
和ChatroomParticipantParted(String name)
信号传输差异。
自从:2.26
参数
property_name
-
类型:
const gchar*
属性名称。
数据由方法的调用者拥有。 值是一个以null结尾的UTF-8字符串。 value
-
类型:
GVariant
属性值或
NULL
,用于从缓存中移除它。该参数可以为 NULL
。数据由方法的调用者拥有。