QDBusPendingCall 类

QDBusPendingCall 类引用一个挂起的异步调用。 更多信息...

头文件 #include <QDBusPendingCall>
CMakefind_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmakeQT += dbus
继承自

QDBusPendingCallWatcher

公共函数

QDBusPendingCall(const QDBusPendingCall &other)
~QDBusPendingCall()
voidswap(QDBusPendingCall &other)
QDBusPendingCall &operator=(const QDBusPendingCall &other)

静态公共成员

QDBusPendingCallfromCompletedCall(const QDBusMessage &msg)
QDBusPendingCallfromError(const QDBusError &error)

详细描述

QDBusPendingCall 对象是对已通过 D-Bus 发送且未等待响应的方法调用的引用。QDBusPendingCall 是一个不可见类型,旨在用作挂起响应的句柄。

在大多数程序中,不会直接使用 QDBusPendingCall 类。它可以安全地用基于模板的 QDBusPendingReply 替换,以便访问响应内容或等待其完成。

QDBusPendingCallWatcher 类允许连接到一个信号,该信号会在收到响应或调用超时时通知。它还提供了 QDBusPendingCallWatcher::waitForFinished() 方法,该方法将暂停程序执行,直到收到响应。

注意:如果您创建了 QDBusPendingCall 对象的副本,所有信息将在众多副本之间共享。因此,QDBusPendingCall 是一个显式共享对象,不提供分离副本的方法(因为它们引用的是相同的挂起调用)

另请参阅:QDBusPendingReplyQDBusPendingCallWatcher

成员函数文档

QDBusPendingCall::QDBusPendingCall(const QDBusPendingCall &other)

创建一个 other 挂起异步调用的副本。请注意,这两个对象都将引用相同的挂起调用。

[noexcept] QDBusPendingCall::~QDBusPendingCall()

销毁此份的 QDBusPendingCall 对象。如果此份副本也是悬而未决的异步调用的最后一份数据副本,调用将被取消,且将不再接收任何通知。当回复到达时,将无法访问其内容。

[静态] QDBusPendingCall QDBusPendingCall::fromCompletedCall(const QDBusMessage &msg)

基于消息 msg 创建一个 QDBusPendingCall 对象。消息必须是 QDBusMessage::ErrorMessageQDBusMessage::ReplyMessage 类型(即,通常是完成调用的消息)。

此函数在需要模拟已完成但已完成的悬而未决调用的代码中非常有用。

另请参阅fromError

[静态] QDBusPendingCall QDBusPendingCall::fromError(const QDBusError &error)

基于错误状态 error 创建一个 QDBusPendingCall 对象。生成的悬而未决调用对象将处于“完成”状态,并且 QDBusPendingReply<Types...>::isError() 将返回 true。

另请参阅fromCompletedCall

[noexcept] void QDBusPendingCall::swap(QDBusPendingCall &other)

other 交换此悬而未决调用实例。此函数执行非常快速且不会失败。

QDBusPendingCall &QDBusPendingCall::operator=(const QDBusPendingCall &other)

复制 other 的悬而未决异步调用并取消对先前引用调用的引用。请注意,在此函数之后,这两个对象都将引用同一个悬而未决的调用。

如果此对象包含悬而未决异步调用的最后一个引用,调用将被取消,且将不再接收任何通知。当回复到达时,将无法访问其内容。

© 2024 Qt 公司有限公司。本文档中包含的文档贡献者是各自版权的所有者。本文档受到 Free Software Foundation 发布的 GNU Free Documentation License version 1.3 的许可。Qt 以及相关标志是芬兰的 Qt 公司及其全球其他国家的 商标。所有其他商标均为其各自所有者的财产。