QRemoteObjectReplica 类

一个与远程对象网络上的 Qt API 交互(但不实现)的类。 更多...

头文件 #include <QRemoteObjectReplica>
CMakefind_package(Qt6 REQUIRED COMPONENTS RemoteObjects)
target_link_libraries(mytarget PRIVATE Qt6::RemoteObjects)
qmakeQT += remoteobjects
继承自 QObject
继承

QRemoteObjectDynamicReplicaQRemoteObjectRegistry

公共类型

枚举State { Uninitialized, Default, Valid, Suspect, SignatureMismatch }

属性

  • node : QRemoteObjectNode*
  • state : const State

公共函数

boolisInitialized() const
boolisReplicaValid() const
QRemoteObjectNode *node() const
virtual voidsetNode(QRemoteObjectNode *node)
QRemoteObjectReplica::Statestate() const
boolwaitForSource(int timeout = 30000)

信号

voidinitialized()
voidnotified()
voidstateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)

详细描述

远程对象副本是另一个 QObject 的代理(称为 对象)。一旦初始化,副本可以被视为 对象的“隐写副本”。也就是说,源上 Q_PROPERTY 的任何更改,或者发出 的信号,都会由所有 副本 对象更新/发出。任何涉及的操作系统通过进程调度和网络安全通信延迟引入延迟。只要副本已初始化并且通信未中断,更改的接收和顺序就有保证。

isInitializedstate 属性(以及相应的 initialized()/stateChanged() 信号)允许确定 副本 的状态。

虽然 Qt 远程对象 (QtRO) 处理了复制品 (Replica) 的初始化和同步,但在后台有众多可能失败且在单个进程 Qt 应用程序中不会遇到的操作步骤。请参阅 复制品 的详细说明和 故障排除,了解在远程对象网络上使用这些功能时如何处理此类问题。

成员类型文档

枚举 QRemoteObjectReplica::State

此枚举类型指定了与 QRemoteObjectReplica 状态相关的各种状态代码

常量描述
QRemoteObjectReplica::Uninitialized0动态复制品的初始值,在此处连接到源之前,关于复制品没有任何信息。
QRemoteObjectReplica::Default1静态复制品的初始值,其中提供了在 .rep 文件中设置的任何默认值,以便必要时可以使用。
QRemoteObjectReplica::Valid2表示复制品已连接,具有良好的属性值,可以与之交互。
QRemoteObjectReplica::Suspect3如果在初始化后丢失到源的连接,将发生错误状态。
QRemoteObjectReplica::SignatureMismatch4如果在源处建立了连接,但源和复制品不是从相同的 .rep(仅适用于静态复制品)派生的,将发生错误状态。

属性文档

node : QRemoteObjectNode*

此属性包含一个指向从其中获取此对象的节点的指针。

访问函数

QRemoteObjectNode *node() const
virtual voidsetNode(QRemoteObjectNode *node)

[read-only] state : const State

返回复制品状态。

此属性保留复制品 QRemoteObjectReplica::State

访问函数

QRemoteObjectReplica::Statestate() const

通知信号

voidstateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)

成员函数文档

[signal] void QRemoteObjectReplica::initialized()

当复制品初始化完成后,会发出此信号。初始化的复制品设置了所有属性值,但尚未发出任何属性更改通知。

另请参阅isInitialized() 和 stateChanged

bool QRemoteObjectReplica::isInitialized() const

如果此复制品已使用来自 对象的数据进行初始化,则返回 true。否则返回 false

另请参阅state

bool QRemoteObjectReplica::isReplicaValid() const

如果此复制品已初始化并与托管 节点 保持有效连接,则返回 true。否则返回 false

另请参阅isInitialized

[信号] void QRemoteObjectReplica::notified()

此信号在副本初始化后并已发出所有属性更改通知时发出。

有时将属性更改作为事件响应是有用的。例如,您可能希望通过某些属性更改显示用户通知。但是,当副本首次成为 QRemoteObjectReplica::Valid 时,也会触发此类用户通知,因为那时会发出所有属性更改信号。这并不总是令人满意,而 notified 允许开发人员区分这两种情况。

QRemoteObjectReplica::State QRemoteObjectReplica::state() const

返回副本当前 状态

注意:属性状态的获取函数。

另请参阅:isInitialized

[信号] void QRemoteObjectReplica::stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)

此信号在每个副本的状态在 QRemoteObjectReplica::State 之间切换时发出。

状态更改由 stateoldState 表示。

注意:属性 state 的通知信号。

另请参阅:state() 和 initialized

bool QRemoteObjectReplica::waitForSource(int timeout = 30000)

负责等待副本初始化或直到超时(以毫秒为单位)的阻塞调用。如果调用完成后副本已初始化,则返回 true,否则返回 false

如果 timeout 为 -1,则此函数不会超时。

另请参阅:isInitialized() 和 initialized

© 2024 The Qt Company Ltd. 本文档内包含的贡献是各自所有者的版权。本提供的文档是根据由自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款许可的。Qt及其相关标志是全球芬兰公司和/或其他国家的商标。所有其他商标均为其各自所有者的财产。