函数

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 不会被此函数修改,并且在调用 notifyuser_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

数据由调用函数拥有。