方法
自 2.26以来
声明 [源代码]
GVariant*
g_dbus_connection_call_sync (
GDBusConnection* connection,
const gchar* bus_name,
const gchar* object_path,
const gchar* interface_name,
const gchar* method_name,
GVariant* parameters,
const GVariantType* reply_type,
GDBusCallFlags flags,
gint timeout_msec,
GCancellable* cancellable,
GError** error
)
描述 [源代码]
同步在远程对象上的interface_name D-Bus接口调用method_name方法,该对象由bus_name拥有。
如果connection被关闭,则操作将以G_IO_ERROR_CLOSED失败。如果取消cancellable,则操作将以G_IO_ERROR_CANCELLED失败。如果parameters包含与D-Bus协议不兼容的值,则操作以G_IO_ERROR_INVALID_ARGUMENT失败。
如果reply_type非空,则检查回复是否有此类型并触发错误,如果不匹配。换句话说,如果你提供reply_type,则任何非空返回值都将为此类型。
如果parameters GVariant是浮动的,它将被消耗。这允许方便地使用 g_variant_new() ,例如。
g_dbus_connection_call_sync (connection,
"org.freedesktop.StringThings",
"/org/freedesktop/StringThings",
"org.freedesktop.StringThings",
"TwoStrings",
g_variant_new ("(ss)",
"Thing One",
"Thing Two"),
NULL,
G_DBUS_CALL_FLAGS_NONE,
-1,
NULL,
&error);
调用线程将被阻塞,直到收到回复。请参阅此方法的异步版本g_dbus_connection_call()。
自 2.26以来
参数
bus_name-
类型:
const gchar*一个唯一或已知的总线名称,或如果
connection不是一个消息总线连接,则为NULL。此参数可以是 NULL。数据由方法的调用者所有。 该值是一个以NUL结尾的UTF-8字符串。 object_path-
类型:
const gchar*远程对象的路径。
数据由方法的调用者所有。 该值是一个以NUL结尾的UTF-8字符串。 interface_name-
类型:
const gchar*在D-Bus接口上调用方法的接口。
数据由方法的调用者所有。 该值是一个以NUL结尾的UTF-8字符串。 method_name-
类型:
const gchar*要调用的方法名。
数据由方法的调用者所有。 该值是一个以NUL结尾的UTF-8字符串。 parameters-
类型:
GVariant包含方法参数的
GVariant元组,或者如果不传递参数则为NULL。此参数可以是 NULL。数据由方法的调用者所有。 reply_type-
类型:
GVariantType回复的预期类型,或
NULL。此参数可以是 NULL。数据由方法的调用者所有。 flags-
类型:
GDBusCallFlagsGDBusCallFlags枚举中的标志。 timeout_msec-
类型:
gint以毫秒为单位的超时时间,-1表示使用默认超时,或
G_MAXINT表示无超时。 cancellable-
类型:
GCancellable一个
GCancellable或NULL。此参数可以是 NULL。数据由方法的调用者所有。 error-
类型:
GError **可恢复错误的返回位置。
此参数可以是 NULL。如果返回位置不是 NULL,那么您必须将其初始化为NULL的GError*。如果没有错误,方法将保留参数的初始化为 NULL。出错时,参数将被设置为新的 GError分配;调用者将拥有数据,并负责释放它。
返回值
类型: GVariant
NULL如果设置了error。否则是一个具有返回值的非浮动GVariant元组。使用g_variant_unref()释放。
| 方法调用者拥有返回的数据,并负责释放它。 |