方法

since: 2.26

声明 [来源]

gboolean
g_dbus_connection_send_message (
  GDBusConnection* connection,
  GDBusMessage* message,
  GDBusSendMessageFlags flags,
  volatile guint32* out_serial,
  GError** error
)

描述 [来源]

异步将 message 发送到由 connection 表示的对方。

如果 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。如果 message 不是有效格式,则操作将失败,返回 G_IO_ERROR_INVALID_ARGUMENT

看这里 [服务器][gdbus-server] 和 [客户端][gdbus-unix-fd-client] 来了解如何使用此低级 API 发送和接收 UNIX 文件描述符的示例。

注意,除非 flags 包含 G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL 标志,否则必须对 message 进行解锁。

since: 2.26

参数

message

类型: GDBusMessage

一个 GDBusMessage

数据由方法的调用者拥有。
flags

类型: GDBusSendMessageFlags

影响消息发送方式的标记。

out_serial

类型: volatile guint32*

发送消息时分配给 message 的序列号返回位置或 NULL

该参数将由函数设置。
该参数可以是 NULL
error

类型: GError **

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

该参数可以是 NULL
如果返回位置不是 NULL,那么您必须将其初始化为 NULL GError*
如果没有错误,方法将保留初始化参数为 NULL
如果发生错误,参数将设置为分配的新 GError;调用者将接管数据,并负责释放它。

返回值

类型: gboolean

TRUE 如果消息格式正确且已排队传输, FALSE 如果 error 被设置。