- 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 –
InitialAction
rolesHint – 整数列表
- 返回类型:
返回一个指向特定来自 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
。