函数
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
-
类型:
gsize
data
的大小。 trusted
-
类型:
gboolean
TRUE
如果data
一定在正常形式。 notify
-
类型:
GDestroyNotify
当
data
不再需要时调用的函数。 user_data
-
类型:
gpointer
为
notify
提供的数据。参数可以为 NULL
。数据为函数的调用者所有。
返回值
类型: GVariant
一个新的浮点 GVariant
,类型为 type
。
数据由调用函数拥有。 |