函数

Gio动作parse_detailed_name

自从:2.38

声明 [src]

gboolean
g_action_parse_detailed_name (
  const gchar* detailed_name,
  gchar** action_name,
  GVariant** target_value,
  GError** error
)

描述 [src]

解析一个详细的动作名到其单独的名字和目标组件。

详细动作名可以有三种格式。

第一种格式用于表示无目标值的动作名,仅由动作名组成,不包含空白,以及字符 :()。例如:app.action

第二种格式用于表示目标值为非空字符串(仅由字母数字、-. 组成)的动作。在这种情况下,动作名和目标值通过双冒号(::)分隔。例如:app.action::target

第三种格式用于表示目标值为任何类型,包括字符串的动作。目标值跟在动作名后面,用括号括起来。例如:app.action(42)。目标值使用 g_variant_parse() 解析。如果需要元组类型的值,必须以相同的方式指定,从而形成两对括号,例如:app.action((1,2,3))。也可以用这种方式指定字符串目标值:app.action('target')。对于字符串,如果目标值是空的或包含除字母数字、-. 之外的字符,必须使用此第三种格式。

如果这个函数返回 TRUE,则在 action_name(如果传递了指针)中保证返回非 NULL 的值。在 target_value 中仍然可能返回 NULL,因为 detailed_name 可能不包含目标。

如果返回值,则存储在 target_value 中的 GVariant 保证不会是浮动的。

自从:2.38

参数

detailed_name

类型: const gchar*

详细的动作名。

数据由函数调用者拥有。
值是空终止的 UTF-8 字符串。
action_name

类型: gchar**

动作名。

该参数将由函数设置。
该参数可以是 NULL
函数的调用者将接收返回的数据的所有权,并负责释放它。
值是空终止的 UTF-8 字符串。
target_value

类型: GVariant

目标值,如果没有目标则用 NULL 表示。

该参数将由函数设置。
函数可以将该参数设置为 NULL
该参数可以是 NULL
函数的调用者将接收返回的数据的所有权,并负责释放它。
error

类型: GError **

一个可恢复错误的返回位置。

该参数可以是 NULL
如果返回位置不是 NULL,那么你必须将其初始化为一个空的 GError*
如果没有错误,函数会将该参数初始化为 NULL
在发生错误的情况下,该参数将设置为一个新的 GError;调用者将接管数据,并负责释放它。

返回值

类型: 

TRUE 表示成功,否则将设置 errorFALSE