- class QRemoteObjectNode#
Qt远程对象网络中的一个节点。 更多…
继承自:
QRemoteObjectHostBase,QRemoteObjectRegistryHost,QRemoteObjectHost概要#
属性#
heartbeatInterval属性- 心跳间隔(毫秒)persistedStore属性- 允许为节点设置QRemoteObjectAbstractPersistedStore实例registryUrl属性- 该节点使用的注册表的地址
方法#
def
__init__()def
acquireDynamic()def
acquireModel()def
connectToNode()def
instances()def
lastError()def
persistedStore()def
registry()def
registryUrl()
虚方法#
def
setName()def
setRegistryUrl()
信号#
注意
本文档可能包含从 C++ 自动翻译成 Python 的片段。我们始终欢迎为片段翻译做出贡献。如果您发现翻译存在问题,也可以在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告知我们
详细描述#
QRemoteObjectNode类提供了一个访问 QtRemoteObjects 网络的入口。一个网络可能只有两个节点,也可能是一个非常复杂的进程和设备的集合。QRemoteObjectNode没有其他节点可以连接的 URL,因此只能获取副本。它不能共享源对象(只有QRemoteObjectHost和QRemoteObjectRegistryHost节点可以共享)。节点可以通过
connectToNode直接连接到彼此,或者它们可以使用QRemoteObjectRegistry来简化连接。QRemoteObjectRegistry是一个特别副本,可供连接到注册表 URL 的每个节点使用。它知道如何连接到网络上的每个 QRemoteObjectSource 对象。- class ErrorCode#
此枚举类型指定与
QRemoteObjectNode错误相关的各种错误代码常数
描述
QRemoteObjectNode.NoError
无错误。
QRemoteObjectNode.RegistryNotAcquired
无法获取注册表。
QRemoteObjectNode.RegistryAlreadyHosted
注册表已定义并托管源。
QRemoteObjectNode.NodeIsNoServer
指定的
QRemoteObjectNode不是主机节点。QRemoteObjectNode.ServerAlreadyCreated
主节点已经被初始化。
QRemoteObjectNode.UnintendedRegistryHosting
尝试创建一个
QRemoteObjectNode作为注册表并连接到自身。QRemoteObjectNode.OperationNotValidOnClientNode
尝试的操作在客户端
QRemoteObjectNode上无效。QRemoteObjectNode.SourceNotRegistered
指定的QRemoteObjectSource未注册在此节点上。
QRemoteObjectNode.MissingObjectName
指定的QObject没有设置objectName()。
QRemoteObjectNode.HostUrlInvalid
给定的url方案无效或不识别。
QRemoteObjectNode.ProtocolMismatch
客户端和服务器协议版本不同。
QRemoteObjectNode.ListenFailed
无法在指定的主机端口上监听。
QRemoteObjectNode.SocketAccessError
客户端不允许连接到服务器。确保正确设置了
setLocalServerOptions。
注意
当使用
from __feature__ import true_property时可以直接使用属性,否则通过访问函数。- 属性heartbeatInterval: int#
此属性包含心跳间隔(以毫秒为单位)。
心跳(仅适用于socket连接)会定期向已连接的节点发送消息,以检测连接是否中断。如果Qt Remote Objects检测到连接丢失,它会尝试自动重新连接。此功能有助于检测,因为客户端仅在尝试发送数据时才会检测到服务器不可用。
默认值(0)将禁用心跳。
- 属性persistedStore: QRemoteObjectAbstractPersistedStore#
此属性包含为节点设置一个
QRemoteObjectAbstractPersistedStore实例的选项。允许具有PERSISTED属性的副本成员在副本被删除时保存其当前值,并在下次副本启动时恢复存储的值。
需要
QRemoteObjectAbstractPersistedStore类实现来控制持久性处理的地点和方法。此属性包含此节点使用的
Registry的地址。如果没有使用注册表,则这是空的 QUrl。
QRemoteObjectNode连接到一个 {QRemoteObjectRegistry} {注册} 。以这种方式构造的节点不能连接,因此不能在网络上公开源对象。查找和连接到其他(主)节点由QRemoteObjectRegistry处理,该地址由registryAddress指定。- __init__([parent=None])
- 参数:
parent –
QObject
QRemoteObjectNode的默认构造函数,带有的parent。以这种方式构造的节点不能连接,因此不能在网络上公开源对象。此外,它也不会包含一个QRemoteObjectRegistry,除非使用setRegistryUrl手动设置。- acquireDynamic(name)#
- 参数:
name – 字符串
- 返回类型:
返回源
name的QRemoteObjectDynamicReplica对象。- acquireModel(name[, action=QtRemoteObjects.FetchRootSize[, rolesHint={}]])#
- 参数:
name – 字符串
action –
InitialActionrolesHint – 整数列表
- 返回类型:
返回一个指向特定来自 QAbstractItemModel 的 Replica 的指针。提供的
name必须与使用匹配enableRemoting在网络上放置 Model 所使用的名称匹配。action指定是否在发出initialized信号之前获取数据。如果设置为PrefetchData,则将预取rolesHint中的角色数据。如果rolesHint为空,则预先获取由 Source 浮露的所有角色的数据。返回的模型将在使用 Source 初始化之前为空。
为了通过外部QIODevices 获取
acquire()Replica 对象,Qt Remote Objects 需要访问各节点之间的通信通道(QIODevice)。通过调用addClientSideConnection()来实现这一点,并传入ioDevice作为输入。如果没有调用addClientSideConnection()而进行的acquire()调用仍然有效,但是如果没有提供与主机节点的连接,节点将无法初始化 Replica。将客户端节点连接到位于
address的主机节点。连接将在主机节点被删除或无法通过网络访问时保持有效。
一旦客户端连接到主机,如果相应的源正在进行远程操作,则可以获取有效的副本。
如果成功返回
true,否则返回false(通常是不识别的 URL,或者连接到已经连接的地址)。- heartbeatInterval()#
- 返回类型:
int
属性
heartbeatIntervalᅟ的获取器。- heartbeatIntervalChanged(heartbeatInterval)#
- 参数:
heartbeatInterval – int
属性
heartbeatIntervalᅟ的通知信号。- instances(typeName)#
- 参数:
typeName – str
- 返回类型:
字符串列表
此函数重载了
instances()。此便捷函数提供与模板版本相同的结果,但将 源 类的名称作为参数(
typeName),而不是从类类型继承它。返回最后设置的错误。
- persistedStore()#
-
另请参阅
属性
persistedStore的获取器。- registry()#
- 返回类型:
如果节点正在使用注册表功能,则返回节点
QRemoteObjectRegistry的指针;否则返回None。- registryUrl()#
- 返回类型:
另请参阅
属性
registryUrl的获取器。- remoteObjectAdded(arg__1)#
- 参数:
arg__1 – .std.pairQString,QRemoteObjectSourceLocationInfo
每当向注册表添加新的 源 对象时,都会发出此信号。如果没有设置注册表(即通过
connectToNode直接建立的连接的源),则不会发出信号。loc参数包含有关添加的源的信息,包括名称、类型和托管节点的 QUrl。- remoteObjectRemoved(arg__1)#
- 参数:
arg__1 – .std.pairQString,QRemoteObjectSourceLocationInfo
此信号会在从注册表中删除已知 源 对象时发出。如果没有设置注册表(即通过
connectToNode直接建立连接的源),则不会发出该信号。《loc》参数包含关于已删除源的信息,包括名称、类型和宿主节点的 QUrl。另请参阅
请参看
remoteObjectAdded和instances- setHeartbeatInterval(interval)#
- 参数:
interval – int
另请参阅
属性
heartbeatInterval的设置器。- setName(name)#
- 参数:
name – 字符串
将
name设置为该节点的内部名称。此名称会在日志输出中显示(如果已启用)。这主要用于合并来自多个节点的日志数据。- setPersistedStore(persistedStore)#
- 参数:
persistedStore –
QRemoteObjectAbstractPersistedStore
另请参阅
属性
persistedStore的设置器。- waitForRegistry([timeout=30000])#
- 参数:
timeout – int
- 返回类型:
bool
阻塞直到此节点的 注册表 初始化成功或超时(以毫秒计)到期。如果返回时 注册表 成功初始化,则返回
true,否则返回false。