QRemoteObjectReplica Class
Eine Klasse, die mit einer Qt-API im Remote-Object-Netzwerk interagiert (diese jedoch nicht implementiert). Mehr...
| Header: | #include <QRemoteObjectReplica> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS RemoteObjects) target_link_libraries(mytarget PRIVATE Qt6::RemoteObjects) |
| qmake: | QT += remoteobjects |
| Erbt von: | QObject |
| Vererbt an: |
Öffentliche Typen
| enum | State { Uninitialized, Default, Valid, Suspect, SignatureMismatch } |
Eigenschaften
Öffentliche Funktionen
| bool | isInitialized() const |
| bool | isReplicaValid() const |
| QRemoteObjectNode * | node() const |
| virtual void | setNode(QRemoteObjectNode *node) |
| QRemoteObjectReplica::State | state() const |
| bool | waitForSource(int timeout = 30000) |
Signale
| void | initialized() |
| void | notified() |
| void | stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState) |
Ausführliche Beschreibung
Eine Remote-Objekt-Replik ist ein Proxy des „ QObject “ für ein anderes „ QObject “ (das sogenannte Quellobjekt ). Nach der Initialisierung kann eine Replik als „latente Kopie“ des Quellobjekts betrachtet werden. Das heißt, jede Änderung an einer „ Q_PROPERTY “ des Quellobjekts oder jedes von diesem ausgesendete Signal wird von allen Replik-Objekten aktualisiert bzw. ausgesendet. Latenz entsteht durch die Prozessplanung der beteiligten Betriebssysteme sowie durch die Latenz der Netzwerkkommunikation. Solange die Replik initialisiert wurde und die Kommunikation nicht unterbrochen ist, sind der Empfang und die Reihenfolge der Änderungen gewährleistet.
Die Eigenschaften „ isInitialized “ und „ state “ (sowie die entsprechenden Signale „ initialized()“ und „stateChanged()“) ermöglichen es, den Zustand eines Replica-Objekts zu ermitteln.
Während Qt Remote Objects (QtRO) die Initialisierung und Synchronisation von Replica-Objekten übernimmt, finden hinter den Kulissen zahlreiche Schritte statt, die fehlschlagen können und die in Qt-Anwendungen mit einem einzigen Prozess nicht vorkommen. Im Abschnitt „Fehlerbehebung“ finden Sie Hinweise zum Umgang mit solchen Problemen bei der Verwendung eines Netzwerks aus Remote-Objekten.
Dokumentation zu Mitgliedstypen
enum QRemoteObjectReplica::State
Dieser Enum-Typ legt die verschiedenen Statuscodes fest, die mit den Zuständen von „ QRemoteObjectReplica “ verbunden sind:
| Konstante | Wert | Beschreibung |
|---|---|---|
QRemoteObjectReplica::Uninitialized | 0 | Anfangswert von „DynamicReplica“, bei dem vor der Verbindung zur Quelle noch keine Informationen über die Replik vorliegen. |
QRemoteObjectReplica::Default | 1 | Anfangswert einer statischen Replik, bei der alle in der .rep-Datei festgelegten Standardwerte verfügbar sind, sodass sie bei Bedarf verwendet werden kann. |
QRemoteObjectReplica::Valid | 2 | Zeigt an, dass die Replik verbunden ist, gültige Eigenschaftswerte aufweist und mit ihr interagiert werden kann. |
QRemoteObjectReplica::Suspect | 3 | Fehlerstatus, der auftritt, wenn die Verbindung zur Quelle nach der Initialisierung unterbrochen wird. |
QRemoteObjectReplica::SignatureMismatch | 4 | Fehlerstatus, der auftritt, wenn eine Verbindung zur Quelle hergestellt wurde, die Quelle und die Replik jedoch nicht aus derselben .rep-Datei stammen (nur bei statischen Replikaten möglich). |
Dokumentation zu den Eigenschaften
node : QRemoteObjectNode*
Diese Eigenschaft enthält einen Zeiger auf den Knoten, von dem dieses Objekt bezogen wurde.
Zugriffsfunktionen:
| QRemoteObjectNode * | node() const |
| virtual void | setNode(QRemoteObjectNode *node) |
[read-only] state : State
Gibt den Replika-Status zurück.
Diese Eigenschaft enthält den Replikat QRemoteObjectReplica::State.
Zugriffsfunktionen:
| QRemoteObjectReplica::State | state() const |
Notifier-Signal:
| void | stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState) |
Dokumentation der Mitgliedsfunktionen
[signal] void QRemoteObjectReplica::initialized()
Dieses Signal wird ausgesendet, sobald die Replik initialisiert ist. Bei einer initialisierten Replik sind alle Eigenschaftswerte festgelegt, es wurden jedoch noch keine Benachrichtigungen über Eigenschaftsänderungen ausgesendet.
Siehe auch isInitialized() und stateChanged().
bool QRemoteObjectReplica::isInitialized() const
Gibt „ true “ zurück, wenn diese Replik mit Daten aus dem Quellobjekt initialisiert wurde. Andernfalls wird „ false “ zurückgegeben.
Siehe auch state().
bool QRemoteObjectReplica::isReplicaValid() const
Gibt „ true “ zurück, wenn diese Replik initialisiert wurde und eine gültige Verbindung zum „ node “ besteht, auf dem die Quelle gehostet wird. Andernfalls wird „ false “ zurückgegeben.
Siehe auch isInitialized().
[signal] void QRemoteObjectReplica::notified()
Dieses Signal wird ausgesendet, sobald die Replik initialisiert ist und alle Benachrichtigungen über Eigenschaftsänderungen ausgesendet wurden.
Manchmal ist es sinnvoll, auf Eigenschaftsänderungen als Ereignisse zu reagieren. Beispielsweise möchten Sie vielleicht eine Benachrichtigung an den Benutzer anzeigen, wenn eine bestimmte Eigenschaftsänderung auftritt. Diese Benachrichtigung würde dann jedoch auch ausgelöst werden, wenn eine Replik zum ersten Mal den Status „ QRemoteObjectReplica::Valid “ erreicht, da zu diesem Zeitpunkt alle Signale für Eigenschaftsänderungen ausgesendet werden. Dies ist nicht immer wünschenswert, und „ notified “ ermöglicht es dem Entwickler, zwischen diesen beiden Fällen zu unterscheiden.
QRemoteObjectReplica::State QRemoteObjectReplica::state() const
Gibt den aktuellen Status „ state “ der Replik zurück.
Hinweis: Getter -Funktion für die Eigenschaft „state“.
Siehe auch „ isInitialized “.
[signal] void QRemoteObjectReplica::stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)
Dieses Signal wird immer dann ausgesendet, wenn der Status einer Replik zwischen „ QRemoteObjectReplica::State “ wechselt.
Die Zustandsänderung wird durch „ state “ und „ oldState “ dargestellt.
Hinweis: Notifier -Signal für die Eigenschaft „ state “.
Siehe auch „ state()“ und „ initialized()“.
bool QRemoteObjectReplica::waitForSource(int timeout = 30000)
Blockierender Aufruf, der wartet, bis die Replik initialisiert ist oder bis die Zeitüberschreitung „ timeout “ (in ms) abläuft. Gibt „ true “ zurück, wenn die Replik bei Abschluss des Aufrufs initialisiert ist, andernfalls „ false “.
Ist timeout gleich -1, läuft diese Funktion ohne Zeitüberschreitung ab.
Siehe auch isInitialized() und 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.