QRemoteObjectNode 类

Qt Remote Objects 网络节点。 更多...

头: #include <QRemoteObjectNode>
qmake: QT += remoteobjects
继承: QObject
继承者:

QRemoteObjectHostBase

公共类型

enum ErrorCode { NoError, RegistryNotAcquired, RegistryAlreadyHosted, NodeIsNoServer, ..., HostUrlInvalid }
enum StorageOwnership { DoNotPassOwnership, PassOwnershipToNode }

特性

公共函数

QRemoteObjectNode (QObject * parent = nullptr)
QRemoteObjectNode (const QUrl & registryAddress , QObject * parent = nullptr)
virtual ~QRemoteObjectNode ()
ObjectType * acquire (const QString & name = QString())
QRemoteObjectDynamicReplica * acquireDynamic (const QString & name )
QAbstractItemModelReplica * acquireModel (const QString & name )
bool connectToNode (const QUrl & address )
QStringList instances () const
QStringList instances (const QString & typeName ) const
ErrorCode lastError () const
const QRemoteObjectRegistry * registry () const
QUrl registryUrl () const
virtual void setName (const QString & name )
void setPersistedStore (QRemoteObjectPersistedStore * store , StorageOwnership ownership = DoNotPassOwnership)
virtual bool setRegistryUrl (const QUrl & registryAddress )
bool waitForRegistry (int timeout = 30000)

重实现公共函数

virtual void timerEvent ( QTimerEvent * )

信号

void error (QRemoteObjectNode::ErrorCode errorCode )
void remoteObjectAdded (const QRemoteObjectSourceLocation & loc )
void remoteObjectRemoved (const QRemoteObjectSourceLocation & loc )

保护函数

QRemoteObjectNode ( QRemoteObjectNodePrivate & , QObject * parent )

额外继承成员

详细描述

Qt Remote Objects 网络节点。

QRemoteObjectNode class provides an entry point to a QtRemoteObjects 网络。网络可以简单到 2 节点,或任意复杂的一组进程和设备。

A QRemoteObjectNode does not have a url that other nodes can connect to, and thus is able to acquire replicas only. It is not able to share source objects (only QRemoteObjectHost and QRemoteObjectRegistryHost 节点可以共享)。

节点可以相互直接连接使用 connectToNode ,或者它们可以使用 QRemoteObjectRegistry 以简化连接。

QRemoteObjectRegistry 是连接到注册 URL 的每个节点都可用的特殊复本。它知道如何连接到网络中的每个 QRemoteObjectSource 对象。

另请参阅 QRemoteObjectHost and QRemoteObjectRegistryHost .

成员类型文档编制

enum QRemoteObjectNode:: ErrorCode

此枚举类型指定各种错误代码所关联的 QRemoteObjectNode 错误:

常量 描述
QRemoteObjectNode::NoError 0 没有错误。
QRemoteObjectNode::RegistryNotAcquired 1 The registry could not be acquired.
QRemoteObjectNode::RegistryAlreadyHosted 2 The registry is already defined and hosting Sources.
QRemoteObjectNode::NodeIsNoServer 3 给定 QRemoteObjectNode is not a host node.
QRemoteObjectNode::ServerAlreadyCreated 4 The host node has already been initialized.
QRemoteObjectNode::UnintendedRegistryHosting 5 An attempt was made to create a host QRemoteObjectNode and connect to itself as the registry.
QRemoteObjectNode::OperationNotValidOnClientNode 6 The attempted operation is not valid on a client QRemoteObjectNode .
QRemoteObjectNode::SourceNotRegistered 7 The given QRemoteObjectSource is not registered on this node.
QRemoteObjectNode::MissingObjectName 8 给定 QObject does not have objectName () set.
QRemoteObjectNode::HostUrlInvalid 9 The given url has an invalid or unrecognized scheme.

enum QRemoteObjectNode:: StorageOwnership

Used to tell a node whether it should take ownership of a passed pointer or not:

常量 描述
QRemoteObjectNode::DoNotPassOwnership 0 The ownership of the object is not passed.
QRemoteObjectNode::PassOwnershipToNode 1 The ownership of the object is passed, and the node destructor will call delete.

特性文档编制

registryUrl : QUrl

This property holds the address of the 注册 used by this node.

This will be an empty QUrl 若没有在使用中的注册。

访问函数:

QUrl registryUrl () const
virtual bool setRegistryUrl (const QUrl & registryAddress )

成员函数文档编制

QRemoteObjectNode:: QRemoteObjectNode ( QObject * parent = nullptr)

Default constructor for QRemoteObjectNode 采用给定 parent . A Node constructed in this manner can not be connected to, and thus can not expose Source objects on the network. It also will not include a QRemoteObjectRegistry , unless set manually using setRegistryUrl .

另请参阅 connectToNode and setRegistryUrl .

QRemoteObjectNode:: QRemoteObjectNode (const QUrl & registryAddress , QObject * parent = nullptr)

QRemoteObjectNode connected to a { QRemoteObjectRegistry } {Registry}. A Node constructed in this manner can not be connected to, and thus can not expose Source objects on the network. Finding and connecting to other (Host) Nodes is handled by the QRemoteObjectRegistry 指定通过 registryAddress .

另请参阅 connectToNode , setRegistryUrl , QRemoteObjectHost ,和 QRemoteObjectRegistryHost .

[protected] QRemoteObjectNode:: QRemoteObjectNode ( QRemoteObjectNodePrivate & , QObject * parent )

Copy constructor.

[virtual] QRemoteObjectNode:: ~QRemoteObjectNode ()

Destroys the instance of QRemoteObjectNode. The destructor is virtual.

ObjectType *QRemoteObjectNode:: acquire (const QString & name = QString())

Returns a pointer to a Replica of type ObjectType (which is a template parameter and must inherit from QRemoteObjectReplica ). That is, the template parameter must be a repc generated type. The name parameter can be used to specify the name given to the object during the QRemoteObjectHost::enableRemoting () 调用。

QRemoteObjectDynamicReplica *QRemoteObjectNode:: acquireDynamic (const QString & name )

返回 QRemoteObjectDynamicReplica of the Source name .

QAbstractItemModelReplica *QRemoteObjectNode:: acquireModel (const QString & name )

Returns a pointer to a Replica which is specifically derived from QAbstractItemModel name provided must match the name used with the matching enableRemoting that put the Model on the network. The returned model will be empty until it is initialized with the .

bool QRemoteObjectNode:: connectToNode (const QUrl & address )

将客户端节点连接到主机节点按 address .

连接将仍然有效,直到主机节点被删除 (或通过网络不再可访问)。

客户端一旦连接到主机,然后就可以获得有效 Replicas (复本) 若正远程相应 Source (源)。

返回 true 当成功时, false 否则 (通常是无法识别的 URL,或连接到已连接地址)。

[signal] void QRemoteObjectNode:: error ( QRemoteObjectNode::ErrorCode errorCode )

QStringList QRemoteObjectNode:: instances () const

This templated function (taking a repc generated type as the template parameter) will return the list of names of every instance of that type on the Remote Objects network. For example, if you have a Shape class defined in a .rep file, and Circle and Square classes inherit from the Source definition, they can be shared on the Remote Objects network using enableRemoting .

Square square;
Circle circle;
myHost.enableRemoting(&square, "Square");
myHost.enableRemoting(&circle, "Circle");
					

Then instance can be used to find the available instances of Shape.

QStringList instances = clientNode.instances<Shape>();
// will return a QStringList containing "Circle" and "Square"
auto instance1 = clientNode.acquire<Shape>("Circle");
auto instance2 = clientNode.acquire<Shape>("Square");
...
					

QStringList QRemoteObjectNode:: instances (const QString & typeName ) const

此函数重载 instances ().

This convenience function provides the same result as the templated version, but takes the name of the class as a parameter ( typeName ) rather than deriving it from the class type.

ErrorCode QRemoteObjectNode:: lastError () const

Returns the last error set.

const QRemoteObjectRegistry *QRemoteObjectNode:: registry () const

Returns a pointer to the Node's QRemoteObjectRegistry , if the Node is using the Registry feature; otherwise it returns 0.

[signal] void QRemoteObjectNode:: remoteObjectAdded (const QRemoteObjectSourceLocation & loc )

This signal is emitted whenever a new object is added to the Registry. The signal will not be emitted if there is no Registry set (i.e., Sources over connections made via connectToNode directly). The loc parameter contains the information about the added Source, including name, type and the QUrl of the hosting Node.

另请参阅 remoteObjectRemoved and instances .

[signal] void QRemoteObjectNode:: remoteObjectRemoved (const QRemoteObjectSourceLocation & loc )

This signal is emitted whenever there is a known object is removed from the Registry. The signal will not be emitted if there is no Registry set (i.e., Sources over connections made via connectToNode directly). The loc parameter contains the information about the removed Source, including name, type and the QUrl of the hosting Node.

另请参阅 remoteObjectAdded and instances .

[virtual] void QRemoteObjectNode:: setName (const QString & name )

name as the internal name for this Node. This is then output as part of the logging (if enabled). This is primarily useful if you merge log data from multiple nodes.

void QRemoteObjectNode:: setPersistedStore ( QRemoteObjectPersistedStore * store , StorageOwnership ownership = DoNotPassOwnership)

提供 QRemoteObjectPersistedStore store for the node, allowing replica PROP members with the PERSISTED trait of PROP to save their current value when the replica is deleted and restore a stored value the next time the replica is started. Requires a QRemoteObjectPersistedStore class implementation to control where and how persistence is handled. Use the QRemoteObjectNode::StorageOwnership enum passed by ownership to determine whether the Node will delete the provided pointer or not.

另请参阅 QRemoteObjectPersistedStore and QRemoteObjectNode::StorageOwnership .

[virtual] void QRemoteObjectNode:: timerEvent ( QTimerEvent * )

重实现自 QObject::timerEvent ().

bool QRemoteObjectNode:: waitForRegistry ( int timeout = 30000)

阻塞直到此节点的 注册 is initialized or timeout (in milliseconds) expires. Returns true 注册 is successfully initialized upon return, or false 否则。