QRemoteObjectReplica Class
Eine Klasse, die mit einer Qt-API im Remote Object Netzwerk interagiert (aber nicht implementiert). Mehr...
Kopfzeile: | #include <QRemoteObjectReplica> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS RemoteObjects) target_link_libraries(mytarget PRIVATE Qt6::RemoteObjects) |
qmake: | QT += remoteobjects |
Vererbt: | QObject |
Vererbt von: |
Ö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) |
Detaillierte Beschreibung
Ein Remote Object Replica ist ein QObject Proxy für ein anderes QObject (genannt Quellobjekt ). Einmal initialisiert, kann ein Replikat als "latente Kopie" des Quellobjekts betrachtet werden. Das bedeutet, dass jede Änderung an Q_PROPERTY auf der Quelle oder jedes Signal, das von der Quelle ausgesendet wird, von allen Replik-Objekten aktualisiert/ausgesendet wird. Die Latenz wird durch die Prozessplanung der beteiligten Betriebssysteme und die Latenz der Netzwerkkommunikation verursacht. Solange die Replik initialisiert wurde und die Kommunikation nicht unterbrochen ist, ist der Empfang und die Reihenfolge der Änderungen garantiert.
Mit den Eigenschaften isInitialized und state (und den entsprechenden Signalen initialized()/stateChanged()) kann der Zustand eines Replikats ermittelt werden.
Während Qt Remote Objects (QtRO) die Initialisierung und Synchronisation von Replica-Objekten handhabt, gibt es zahlreiche Schritte, die hinter den Kulissen ablaufen, die fehlschlagen können und die in Qt-Anwendungen mit nur einem Prozess nicht vorkommen. Siehe Fehlerbehebung für Hinweise zum Umgang mit solchen Problemen bei der Verwendung eines Netzwerks für entfernte Objekte.
Member Type Dokumentation
enum QRemoteObjectReplica::State
Dieser Enum-Typ gibt die verschiedenen Zustandscodes an, die mit den Zuständen von QRemoteObjectReplica verbunden sind:
Konstante | Wert | Beschreibung |
---|---|---|
QRemoteObjectReplica::Uninitialized | 0 | Anfangswert von DynamicReplica, bei dem vor der Verbindung mit der Quelle nichts über das Replikat bekannt ist. |
QRemoteObjectReplica::Default | 1 | Anfangswert eines statischen Replikats, bei dem alle in der .rep-Datei festgelegten Standardwerte verfügbar sind, so dass sie bei Bedarf verwendet werden können. |
QRemoteObjectReplica::Valid | 2 | Zeigt an, dass die Replik verbunden ist, gute Eigenschaftswerte hat und mit ihr interagiert werden kann. |
QRemoteObjectReplica::Suspect | 3 | Fehlerstatus, der auftritt, wenn die Verbindung zur Quelle nach ihrer Initialisierung verloren geht. |
QRemoteObjectReplica::SignatureMismatch | 4 | Fehlerzustand, der auftritt, wenn eine Verbindung zur Quelle hergestellt wird, aber Quelle und Replikat nicht von derselben .rep abgeleitet sind (nur möglich bei statischen Replikaten). |
Dokumentation der Eigenschaft
node : QRemoteObjectNode*
Diese Eigenschaft enthält einen Zeiger auf den Knoten, von dem dieses Objekt erworben wurde.
Zugriffsfunktionen:
QRemoteObjectNode * | node() const |
virtual void | setNode(QRemoteObjectNode *node) |
[read-only]
state : const State
Gibt den Status der Replik zurück.
Diese Eigenschaft enthält das Replikat QRemoteObjectReplica::State.
Zugriffsfunktionen:
QRemoteObjectReplica::State | state() const |
Benachrichtigungssignal:
void | stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState) |
Mitgliederfunktion Dokumentation
[signal]
void QRemoteObjectReplica::initialized()
Dieses Signal wird ausgesendet, sobald die Replik initialisiert ist. Bei einer initialisierten Replik sind alle Eigenschaftswerte gesetzt, aber es wurden noch keine Eigenschaftsänderungsmeldungen ausgegeben.
Siehe auch isInitialized() und stateChanged().
bool QRemoteObjectReplica::isInitialized() const
Gibt true
zurück, wenn dieses Abbild mit Daten aus dem Quellobjekt initialisiert wurde. Gibt andernfalls false
zurück.
Siehe auch state().
bool QRemoteObjectReplica::isReplicaValid() const
Gibt true
zurück, wenn diese Replik initialisiert wurde und eine gültige Verbindung mit der node hat, die die Quelle hostet. Gibt andernfalls false
zurück.
Siehe auch isInitialized().
[signal]
void QRemoteObjectReplica::notified()
Dieses Signal wird ausgegeben, sobald das Abbild initialisiert ist und alle Benachrichtigungen über Eigenschaftsänderungen ausgegeben wurden.
Manchmal ist es sinnvoll, auf Eigenschaftsänderungen als Ereignisse zu reagieren. Zum Beispiel könnte man eine Benutzerbenachrichtigung anzeigen, wenn eine bestimmte Eigenschaftsänderung auftritt. Diese Benutzerbenachrichtigung würde dann jedoch auch ausgelöst, wenn ein Replikat zum ersten Mal QRemoteObjectReplica::Valid
wird, da zu diesem Zeitpunkt alle Eigenschaftsänderungssignale ausgesendet werden. Dies ist nicht immer erwünscht, und notified
ermöglicht es dem Entwickler, zwischen diesen beiden Fällen zu unterscheiden.
QRemoteObjectReplica::State QRemoteObjectReplica::state() const
Gibt die aktuelle 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 ausgegeben, wenn der Zustand einer Nachbildung zwischen QRemoteObjectReplica::State wechselt.
Die Zustandsänderung wird mit state und oldState dargestellt.
Hinweis: Benachrichtigungssignal für die Eigenschaft state.
Siehe auch state() und initialized().
bool QRemoteObjectReplica::waitForSource(int timeout = 30000)
Blockierender Aufruf, der darauf wartet, dass die Replik initialisiert wird oder bis die timeout (in ms) abläuft. Gibt true
zurück, wenn die Replik bei Abschluss des Aufrufs initialisiert ist, andernfalls false
.
Wenn timeout -1 ist, wird diese Funktion nicht abgebrochen.
Siehe auch isInitialized() und 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.