QRemoteObjectReplica Class
Remote Object ネットワーク上で 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 プロキシです。初期化されると、レプリカはソースオブジェクトの「潜在的なコピー」と見なすことができます。つまり、ソース上のQ_PROPERTY に対するすべての変更、またはソースから発信されるシグナルは、すべてのレプリカオブジェクトによって更新または発信されます。 レイテンシは、関与するOSによるプロセススケジューリングや、ネットワーク通信の遅延によって生じます。レプリカが初期化されており、通信が中断されていない限り、変更の受信および順序は保証されます。
isInitialized およびstate プロパティ(および対応するinitialized()/stateChanged()シグナル)を使用することで、レプリカの状態を把握することができます。
Qt Remote Objects (QtRO)はレプリカオブジェクトの初期化と同期を処理しますが、その裏側では、単一プロセスの 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 : 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
このレプリカが初期化済みであり、ソースをホストしているnode と有効な接続が確立されている場合は、true を返します。それ以外の場合は、false を返します。
isInitialized()も参照してください 。
[signal] void QRemoteObjectReplica::notified()
このシグナルは、レプリカの初期化が完了し、すべてのプロパティ変更通知が送信された後に発行されます。
プロパティの変更をイベントとして処理すると便利な場合があります。 たとえば、特定のプロパティの変更が発生したときにユーザー通知を表示したい場合などです。しかし、その場合は、レプリカが最初にQRemoteObjectReplica::Valid になったときにも、すべてのプロパティ変更シグナルが発行されるため、このユーザー通知もトリガーされてしまいます。これは必ずしも望ましいことではないため、notified を使用することで、開発者はこれら2つのケースを区別できるようになります。
QRemoteObjectReplica::State QRemoteObjectReplica::state() const
レプリカの現在のstate を返します。
注: プロパティ `state`のゲッター 関数です。
「isInitialized」も参照してください 。
[signal] void QRemoteObjectReplica::stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)
このシグナルは、レプリカの状態が「QRemoteObjectReplica::State 」の間で切り替わるたびに発信されます。
状態の変化は、state およびoldState で表されます。
注: プロパティ `state` に対するNotifier シグナルです。
state() およびinitialized()も参照してください 。
bool QRemoteObjectReplica::waitForSource(int timeout = 30000)
レプリカの初期化が完了するか、timeout (ミリ秒単位)が経過するまで待機するブロック呼び出しです。呼び出し完了時にレプリカが初期化されていればtrue を返し、そうでない場合はfalse を返します。
timeout が -1 の場合、この関数はタイムアウトしません。
isInitialized() およびinitialized()も参照してください 。
© 2026 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.