QRemoteObjectReplica Class
Remote Objects ネットワーク上の Qt API とやりとりする(実装はしない)クラスです。詳細...
ヘッダー | #include <QRemoteObjectReplica> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS RemoteObjects) target_link_libraries(mytarget PRIVATE Qt6::RemoteObjects) |
qmake: | QT += remoteobjects |
を継承する: | QObject |
によって継承される: |
パブリックな型
enum | State { Uninitialized, Default, Valid, Suspect, SignatureMismatch } |
プロパティ
パブリック機能
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::Uninitialized | 0 | DynamicReplicaの初期値。ソースに接続する前にレプリカについて何も知られていない状態。 |
QRemoteObjectReplica::Default | 1 | 静的レプリカの初期値。.rep ファイルで設定されたデフォルト値が利用可能で、必要に応じて使用できます。 |
QRemoteObjectReplica::Valid | 2 | レプリカが接続され、適切なプロパティ値を持ち、対話できることを示します。 |
QRemoteObjectReplica::Suspect | 3 | 初期化後にソースへの接続が失われた場合に発生するエラー状態。 |
QRemoteObjectReplica::SignatureMismatch | 4 | ソースへの接続が行われたが、ソースとレプリカが同じ .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 の間で切り替わるたびに発行される。
状態の変化はstate とoldState で表されます。
注: state プロパティのノーティファイア・シグナル。
state() およびinitialized()も参照して ください。
bool QRemoteObjectReplica::waitForSource(int timeout = 30000)
レプリカが初期化されるか、timeout (ミリ秒)が切れるまで待つブロッキングコール。呼び出し完了時にレプリカが初期化されていればtrue
を返し、そうでなければfalse
を返します。
timeout が -1 の場合、この関数はタイムアウトしません。
isInitialized() およびinitialized()も参照のこと 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.