函数
GLibdatalist_id_dup_data
since: 2.34
声明 [src]
gpointer
g_datalist_id_dup_data (
GData** datalist,
GQuark key_id,
GDuplicateFunc dup_func,
gpointer user_data
)
描述 [src]
这是g_datalist_id_get_data()
的一个变体,它返回一个值的“副本”。在这种情况下,dup_func
定义了“副本”的含义,例如,它可以在引用计数对象上引用。
如果key_id
没有在 datalist 中设置,则dup_func
将使用NULL
参数进行调用。
注意,dup_func
在 datalist 被锁定时被调用,因此不允许读取或修改 datalist。
当多个线程使用同一个 datalist 和相同的 key 时,此函数可用于避免竞争。
自:2.34 起可用
此函数不直接向语言绑定提供。
参数
datalist
-
类型:
GData
datalist 的位置。
数据由函数的调用方所有。 key_id
-
类型:
GQuark
标识数据 元素的
GQuark
。 dup_func
-
类型:
GDuplicateFunc
复制旧 value 的函数。
参数可以为 NULL
。 user_data
-
类型:
gpointer
作为
dup_func
的user_data
传递。参数可以为 NULL
。数据由函数的调用方所有。