函数

Giodbus_gvalue_to_gvariant

自从:2.30

声明 [源]

GVariant*
g_dbus_gvalue_to_gvariant (
  const GValue* gvalue,
  const GVariantType* type
)

描述 [源]

GValue 转换为 type 参数指示类型的 GVariant

转换遵循以下规则

  • G_TYPE_STRING:‘s’,‘o’,‘g’ 或 ‘ay’
  • G_TYPE_STRV:‘as’,‘ao’ 或 ‘aay’
  • G_TYPE_BOOLEAN:‘b’
  • G_TYPE_UCHAR:‘y’
  • G_TYPE_INT:‘i’,‘n’
  • G_TYPE_UINT:‘u’,‘q’
  • G_TYPE_INT64:‘x’
  • G_TYPE_UINT64:‘t’
  • G_TYPE_DOUBLE:‘d’
  • G_TYPE_VARIANT:任何 GVariantType

如果例如 gvalueG_TYPE_STRING 类型且 type 为 ‘i’,即 G_VARIANT_TYPE_INT32,则这可能失败。对于表上未列出的任何 GType(包括例如 G_TYPE_OBJECTG_TYPE_BOXED 派生类型),也会失败。

注意,如果 gvalueG_TYPE_VARIANT 类型且其值为 NULL,则返回空 GVariant 实例(从未为 NULL),对于 type 为空(例如标量类型为 0,字符串类型为空字符串,对象路径类型为‘/’,数组类型为空数组等)。

有关如何将 GVariant 转换为 GValue 的信息,请参阅 g_dbus_gvariant_to_gvalue() 函数。

从版本 2.30 可用

参数

gvalue

类型: GValue

要转换为 GVariantGValue

数据由函数的调用者拥有。
type

类型: GVariantType

一个 GVariantType

数据由函数的调用者拥有。

返回值

类型: GVariant

一个 GVariant(永不浮动)的 GVariantType type,包含来自 gvalue 的数据或失败时的空 GVariant。使用 g_variant_unref() 释放。

函数的调用者拥有数据,并负责释放它。