If value
is not null, sets the cached value for the property with name property_name
to the value in value
.
If value
is null, then the cached value is removed from the property cache.
If this has an expected interface (see
g_interface_info) and property_name
is referenced by it, then value
is checked against the type of the
property.
If the value
Variant is floating, it is consumed. This allows convenient 'inline' use of
Variant, e.g.
g_dbus_proxy_set_cached_property (proxy,
"SomeProperty",
g_variant_new ("(si)",
"A String",
42));
Normally you will not need to use this method since this is tracking changes using the `org.freedesktop.DBus.Properties.PropertiesChanged` D-Bus signal. However, for performance reasons an object may decide to not use this signal for some properties and instead use a proprietary out-of-band mechanism to transmit changes.
As a concrete example, consider an object with a property `ChatroomParticipants` which is an array of strings. Instead of transmitting the same (long) array every time the property changes, it is more efficient to only transmit the delta using e.g. signals `ChatroomParticipantJoined(String name)` and `ChatroomParticipantParted(String name)`.
this | |
property_name |
Property name. |
value |
Value for the property or null to remove it from the cache. |