函数
GLibVariantnew_from_data
自:2.24
声明 [源]
GVariant*
g_variant_new_from_data (
const GVariantType* type,
gconstpointer data,
gsize size,
gboolean trusted,
GDestroyNotify notify,
gpointer user_data
)
描述 [源]
从序列化数据创建一个新的 GVariant 实例。
type 是将要构造的 GVariant 实例的类型。对 data 的解释取决于知道类型。
data 不会被此函数修改,并且在调用 notify 与 user_data 之前必须保持有效且值不变。如果在此时间之前 data 的内容发生变化,则结果是不确定的。
如果 data 被信任是形式正常的序列化数据,则 trusted 应为 TRUE。这适用于在此进程内部创建或从磁盘上的可信位置读取(如与应用程序一起安装到 /usr/lib 的文件)的序列化数据。如果从网络、用户主目录中的文件等读取 data,则应将 trusted 设置为 FALSE。
如果 data 未经此机器的本机字节序存储,则返回的 variant 中的任何多字节数值也将是非本机字节序。可以使用 g_variant_byteswap() 还原原始值。
当 data 不再需要时,将使用 user_data 调用 notify。此调用确切的调用时间是不指定的,甚至可能在函数返回之前。
注意:data 必须由适合正在加载的 type 的适当对齐的内存支持。否则,该函数将内部创建内存的副本(自 GLib 2.60 起如此)或在较旧版本中失败并退出进程。
自:2.24
参数
type-
类型:
GVariantType一个明确的
GVariantType。数据为函数的调用者所有。 data-
类型: 一个
guint8的数组序列化数据。
数组长度由 size参数指定。 size-
类型:
gsizedata的大小。 trusted-
类型:
gbooleanTRUE如果data一定在正常形式。 notify-
类型:
GDestroyNotify当
data不再需要时调用的函数。 user_data-
类型:
gpointer为
notify提供的数据。参数可以为 NULL。数据为函数的调用者所有。
返回值
类型: GVariant
一个新的浮点 GVariant,类型为 type。
| 数据由调用函数拥有。 |