方法
GioDBusConnectionsend_message_with_reply
since: 2.26
声明 [src]
void
g_dbus_connection_send_message_with_reply (
GDBusConnection* connection,
GDBusMessage* message,
GDBusSendMessageFlags flags,
gint timeout_msec,
volatile guint32* out_serial,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
)
描述 [src]
异步地向由 connection 表示的伙伴发送 message。
除非 flags 包含 G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL 标志,否则序列号将由 connection 分配并通过 g_dbus_message_set_serial() 设置在 message 上。如果 out_serial 不是 NULL,则在将消息提交到底层传输之前将使用的序列号写入此位置。虽然它有一个 volatile 区别标识符,但这是一个历史遗物,传递给它的参数不应为 volatile。
如果 connection 被关闭,操作将失败并返回 G_IO_ERROR_CLOSED。如果 cancellable 被取消,操作也将失败并返回 G_IO_ERROR_CANCELLED。如果 message 格式不正确,操作会失败并返回 G_IO_ERROR_INVALID_ARGUMENT。
这是一个异步方法。操作完成后,callback 将在调用此方法的线程的 [线程默认主上下文][g-main-context-push-thread-default] 中被调用。然后,您可以调用 g_dbus_connection_send_message_with_reply_finish() 来获取操作的结果。关于同步版本,请参阅 g_dbus_connection_send_message_with_reply_sync()。
注意,除非 flags 包含 G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL 标志,否则 message 必须解锁。
请参阅此 [服务器][gdbus-server] 和 [客户端][gdbus-unix-fd-client],了解如何使用此底层 API 来发送和接收 UNIX 文件描述符的示例。
自 2.26 版本起可用。
此方法会异步完成。请使用 g_dbus_connection_send_message_with_reply_finish() 在 GAsyncReadyCallback 中获取操作结果。
参数
message-
类型:
GDBusMessageGDBusMessage。数据由方法调用者所有。 flags-
影响消息发送方式的标志。
timeout_msec-
类型:
gint超时时间(毫秒),-1 使用默认超时或
G_MAXINT无超时。 out_serial-
类型:
volatile guint32*发送消息时为
message分配的序列号的返回位置或NULL。该参数将由函数设置。 该参数可以是 NULL。 cancellable-
类型:
GCancellableGCancellable或NULL。该参数可以是 NULL。数据由方法调用者所有。 callback-
请求满足时调用的
GAsyncReadyCallback或NULL(如果您不关心结果)。该参数可以是 NULL。 user_data-
类型:
gpointer传递给
callback的数据。该参数可以是 NULL。数据由方法调用者所有。