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 網絡節點。

The 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 以簡化連接。

The QRemoteObjectRegistry 是連接到注冊 URL 的每個節點都可用的特殊復本。它知道如何連接到網絡中的每個 QRemoteObjectSource 對象。

另請參閱 QRemoteObjectHost and QRemoteObjectRegistryHost .

成員類型文檔編製

enum QRemoteObjectNode:: ErrorCode

此枚舉類型指定各種錯誤代碼所關聯的 QRemoteObjectNode 錯誤:

常量 描述
QRemoteObjectNode::NoError 0 沒有錯誤。
QRemoteObjectNode::RegistryNotAcquired 1 無法獲得注冊。
QRemoteObjectNode::RegistryAlreadyHosted 2 注冊已定義且正托管 Source (源)。
QRemoteObjectNode::NodeIsNoServer 3 給定 QRemoteObjectNode 不是主機節點。
QRemoteObjectNode::ServerAlreadyCreated 4 主機節點已初始化。
QRemoteObjectNode::UnintendedRegistryHosting 5 試圖創建主機 QRemoteObjectNode 並連接到自身因注冊。
QRemoteObjectNode::OperationNotValidOnClientNode 6 嘗試的操作無效在客戶端 QRemoteObjectNode .
QRemoteObjectNode::SourceNotRegistered 7 給定的 QRemoteObjectSource 在此節點未注冊。
QRemoteObjectNode::MissingObjectName 8 給定 QObject 沒有 objectName () set.
QRemoteObjectNode::HostUrlInvalid 9 給定的 URL 擁有無效 (或無法識彆) 的模式。

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 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.

[虛擬] 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 Source .

bool QRemoteObjectNode:: connectToNode (const QUrl & address )

將客戶端節點連接到主機節點按 address .

連接將仍然有效,直到主機節點被刪除 (或通過網絡不再可訪問)。

客戶端一旦連接到主機,然後就可以獲得有效 Replica (復本) 若正遠程相應 Source (源)。

返迴 true 當成功時, false 否則 (通常是無法識彆的 URL,或連接到已連接地址)。

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

QStringList QRemoteObjectNode:: instances () const

此模闆化函數 (接受 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 Source 類作為參數 ( typeName ) rather than deriving it from the class type.

ErrorCode QRemoteObjectNode:: lastError () const

返迴最後錯誤集。

const QRemoteObjectRegistry *QRemoteObjectNode:: registry () const

返迴指針指嚮節點的 QRemoteObjectRegistry ,若 Node 正使用 Registry 特徵;否則 , 返迴 0。

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

此信號發射,每當新的 Source 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 )

此信號發射,每當已知 Source 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 .

[虛擬] 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 .

[虛擬] void QRemoteObjectNode:: timerEvent ( QTimerEvent * )

重實現自 QObject::timerEvent ().

bool QRemoteObjectNode:: waitForRegistry ( int timeout = 30000)

阻塞直到此節點的 注冊 被初始化或 timeout (以毫秒為單位) 過期。返迴 true 注冊 被成功初始化當返迴時,或 false 否則。