QRemoteObjectReplica Class

Remote Object ネットワーク上の Qt API と相互作用する(実装はしない)クラスです。詳細...

Header: #include <QRemoteObjectReplica>
CMake: find_package(Qt6 REQUIRED COMPONENTS RemoteObjects)
target_link_libraries(mytarget PRIVATE Qt6::RemoteObjects)
qmake: QT += remoteobjects
Inherits: QObject
Inherited By:

QRemoteObjectDynamicReplica and QRemoteObjectRegistry

パブリックタイプ

enum State { Uninitialized, Default, Valid, Suspect, SignatureMismatch }

プロパティ

  • node : QRemoteObjectNode*
  • state : const State

パブリック関数

bool isInitialized() const
bool isReplicaValid() const
QRemoteObjectNode *node() const
virtual void setNode(QRemoteObjectNode *node)
QRemoteObjectReplica::State state() const
bool waitForSource(int timeout = 30000)

シグナル

void initialized()
void notified()
void stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)

詳細説明

リモート・オブジェクト・レプリカは、QObjectソース・オブジェクトと呼ばれる)のQObject プロキシです。初期化されると、レプリカはソースオブジェクトの "潜在的なコピー "とみなすことができます。つまり、SourceオブジェクトのQ_PROPERTY に対する変更や、Sourceオブジェクトが発するシグナルは、すべてのReplicaオブジェクトによって更新/発信されます。レイテンシは、関係するOSのプロセススケジューリングとネットワーク通信のレイテンシによってもたらされる。レプリカが初期化され、通信が中断されない限り、変更の受信と順序は保証されます。

isInitialized およびstate プロパティ(および対応するinitialized()/stateChanged() シグナル)により、レプリカの状態を知ることができます。

Qt Remote Objects (QtRO)はReplicaオブジェクトの初期化と同期を処理しますが、シーンの裏側では失敗する可能性のある、シングルプロセスのQtアプリケーションでは遭遇しないような多くのステップが行われています。リモートオブジェクトネットワークを使用する際に、このような問題に対処する方法については、トラブルシューティングを参照してください。

メンバ型の説明

enum QRemoteObjectReplica::State

この列挙型は、QRemoteObjectReplica の状態に関連するさまざまな状態コードを指定します:

定数説明
QRemoteObjectReplica::Uninitialized0DynamicReplicaの初期値。ソースに接続する前にレプリカについて何も知られていない状態。
QRemoteObjectReplica::Default1静的レプリカの初期値。.rep ファイルで設定されたデフォルト値が利用可能で、必要に応じて使用できます。
QRemoteObjectReplica::Valid2レプリカが接続され、適切なプロパティ値を持ち、対話できることを示します。
QRemoteObjectReplica::Suspect3初期化後にソースへの接続が失われた場合に発生するエラー状態。
QRemoteObjectReplica::SignatureMismatch4ソースへの接続が行われたが、ソースとレプリカが同じ .rep から派生していない場合に発生するエラー状態 (静的レプリカでのみ可能)。

プロパティの説明

node : QRemoteObjectNode*

このプロパティは、このオブジェクトが取得されたノードへのポインタを保持します。

アクセス関数:

QRemoteObjectNode *node() const
virtual void setNode(QRemoteObjectNode *node)

[read-only] state : const State

レプリカの状態を返します。

このプロパティは、レプリカQRemoteObjectReplica::State を保持します。

アクセス関数

QRemoteObjectReplica::State state() const

通知シグナルを返します:

void stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)

メンバー関数ドキュメント

[signal] void QRemoteObjectReplica::initialized()

このシグナルは、レプリカが初期化されると発行されます。初期化されたレプリカは、すべてのプロパティ値が設定されていますが、プロパティ変更通知はまだ発行されていません。

isInitialized() およびstateChanged()も参照してください

bool QRemoteObjectReplica::isInitialized() const

このレプリカがSourceオブジェクトからのデータで初期化されている場合、true を返します。そうでない場合はfalse を返します。

state()も参照して ください。

bool QRemoteObjectReplica::isReplicaValid() const

このレプリカが初期化され、Source をホストするnode と有効な接続がある場合はtrue を返します。それ以外の場合はfalse を返します。

isInitialized() も参照して ください。

[signal] void QRemoteObjectReplica::notified()

このシグナルは、レプリカが初期化され、すべてのプロパティ変更通知が発行されると発行されます。

プロパティ変更にイベントとして応答すると便利な場合があります。例えば、あるプロパティの変更が発生したときに、ユーザー通知を表示したい場合があります。しかし、このユーザー通知は、レプリカが最初にQRemoteObjectReplica::Valid になったときにもトリガーされます。これは必ずしも望ましいことではありません。notified 、開発者はこの2つのケースを区別することができます。

QRemoteObjectReplica::State QRemoteObjectReplica::state() const

レプリカの現在のstate を返します。

注: プロパティ状態のゲッター関数です。

isInitializedも参照してください

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

このシグナルは、レプリカの状態がQRemoteObjectReplica::State の間で切り替わるたびに発行されます。

状態の変化はstateoldState で表されます。

注: プロパティstate に対するノーティファイアシグナル。

state() とinitialized()も参照

bool QRemoteObjectReplica::waitForSource(int timeout = 30000)

レプリカが初期化されるか、timeout (ミリ秒単位) が経過するまで待機するブロッキング・コール。呼び出し完了時にレプリカが初期化されていればtrue を返し、そうでなければfalse を返す。

timeout が -1 の場合、この関数はタイムアウトしません。

isInitialized() およびinitialized()も参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。