方法

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中的值。

如果valueNULL,则将缓存值从属性缓存中删除。

如果proxy具有预期的接口(请参阅GDBusProxy:g-interface-info)并且property_name由它引用,则检查value与属性的类型的匹配。

如果valueGVariant是浮动的,则它会耗尽。这允许方便地使用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
数据由方法的调用者拥有。