id_replace_data
Description:
public bool id_replace_data (Quark key_id, G oldval, owned G newval, DestroyNotify? destroy, out DestroyNotify? old_destroy)
Compares the member that is associated with key_id
in datalist
to oldval
, and if they are the same,
replace oldval
with newval
.
This is like a typical atomic compare-and-exchange operation, for a member of datalist
.
If the previous value was replaced then ownership of the old value (oldval
) is passed to the caller, including the registered
destroy notify for it (passed out in old_destroy
). Its up to the caller to free this as they wish, which may or may not include
using old_destroy
as sometimes replacement should not destroy the object in the normal way.
Parameters:
key_id |
the Quark identifying a data element |
oldval |
the old value to compare against |
newval |
the new value to replace it with |
destroy |
destroy notify for the new value |
old_destroy |
destroy notify for the existing value |
datalist |
location of a datalist |
Returns:
true if the existing value for |