QRemoteObjectReplica Class
Une classe interagissant avec (mais n'implémentant pas) une API Qt Remote Objects sur le réseau. Plus d'informations...
| En-tête : | #include <QRemoteObjectReplica> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS RemoteObjects)target_link_libraries(mytarget PRIVATE Qt6::RemoteObjects) |
| qmake : | QT += remoteobjects |
| Hérite : | QObject |
| Héritée par : |
Types publics
| enum | State { Uninitialized, Default, Valid, Suspect, SignatureMismatch } |
Propriétés
Fonctions publiques
| bool | isInitialized() const |
| bool | isReplicaValid() const |
| QRemoteObjectNode * | node() const |
| virtual void | setNode(QRemoteObjectNode *node) |
| QRemoteObjectReplica::State | state() const |
| bool | waitForSource(int timeout = 30000) |
Signaux
| void | initialized() |
| void | notified() |
| void | stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState) |
Description détaillée
Une réplique d'objet distant est un proxy QObject pour un autre QObject (appelé objet source ). Une fois initialisée, une réplique peut être considérée comme une "copie latente" de l'objet source. En d'autres termes, chaque modification apportée à une adresse Q_PROPERTY sur la source ou chaque signal émis par la source sera mis à jour/émis par tous les objets répliques. La latence est introduite par l'ordonnancement des processus par tous les systèmes d'exploitation concernés et par la latence de la communication réseau. Tant que la réplique a été initialisée et que la communication n'est pas interrompue, la réception et l'ordre des modifications sont garantis.
Les propriétés isInitialized et state (et les signaux correspondants initialized()/stateChanged()) permettent de déterminer l'état d'une réplique.
Alors que Qt Remote Objects (QtRO) gère l'initialisation et la synchronisation des objets Replica, il y a de nombreuses étapes qui se déroulent en coulisses et qui peuvent échouer, ce qui n'est pas le cas dans les applications Qt à processus unique. Voir Dépannage pour des conseils sur la façon de gérer ces problèmes lors de l'utilisation d'un réseau d'objets distants.
Documentation sur les types de membres
enum QRemoteObjectReplica::State
Ce type d'énumération spécifie les différents codes d'état associés aux états de QRemoteObjectReplica:
| Constante | Valeur | Description |
|---|---|---|
QRemoteObjectReplica::Uninitialized | 0 | Valeur initiale de DynamicReplica, où rien n'est connu sur la réplique avant la connexion à la source. |
QRemoteObjectReplica::Default | 1 | Valeur initiale de la réplique statique, où toutes les valeurs par défaut définies dans le fichier .rep sont disponibles et peuvent donc être utilisées si nécessaire. |
QRemoteObjectReplica::Valid | 2 | Indique que la réplique est connectée, qu'elle possède de bonnes valeurs de propriétés et qu'il est possible d'interagir avec elle. |
QRemoteObjectReplica::Suspect | 3 | État d'erreur qui se produit si la connexion à la source est perdue après son initialisation. |
QRemoteObjectReplica::SignatureMismatch | 4 | État d'erreur qui se produit si une connexion à la source est établie, mais que la source et la réplique ne sont pas dérivées du même fichier .rep (uniquement possible pour les répliques statiques). |
Documentation sur les propriétés
node : QRemoteObjectNode*
Cette propriété contient un pointeur sur le nœud à partir duquel cet objet a été acquis.
Fonctions d'accès :
| QRemoteObjectNode * | node() const |
| virtual void | setNode(QRemoteObjectNode *node) |
[read-only] state : State
Renvoie l'état du réplica.
Cette propriété contient le réplica QRemoteObjectReplica::State.
Fonctions d'accès :
| QRemoteObjectReplica::State | state() const |
Signal du notificateur :
| void | stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState) |
Fonction membre Documentation
[signal] void QRemoteObjectReplica::initialized()
Ce signal est émis une fois que la réplique est initialisée. Un réplica initialisé a toutes les valeurs de propriétés définies, mais n'a pas encore émis de notifications de changement de propriétés.
Voir aussi isInitialized() et stateChanged().
bool QRemoteObjectReplica::isInitialized() const
Renvoie true si cette réplique a été initialisée avec les données de l'objet Source. Retourne false dans le cas contraire.
Voir aussi state().
bool QRemoteObjectReplica::isReplicaValid() const
Renvoie true si cette réplique a été initialisée et dispose d'une connexion valide avec node qui héberge la source. Retourne false dans le cas contraire.
Voir aussi isInitialized().
[signal] void QRemoteObjectReplica::notified()
Ce signal est émis une fois que la réplique est initialisée et que toutes les notifications de changement de propriété ont été émises.
Il est parfois utile de répondre aux changements de propriétés sous forme d'événements. Par exemple, vous pourriez vouloir afficher une notification utilisateur lorsqu'un certain changement de propriété se produit. Cependant, cette notification utilisateur serait également déclenchée lorsqu'un réplica est devenu QRemoteObjectReplica::Valid pour la première fois, car tous les signaux de changement de propriété sont émis à ce moment-là. Ce n'est pas toujours souhaitable, et notified permet au développeur de faire la distinction entre ces deux cas.
QRemoteObjectReplica::State QRemoteObjectReplica::state() const
Renvoie l'adresse state actuelle de la réplique.
Remarque : fonction Getter pour l'état de la propriété.
Voir également isInitialized.
[signal] void QRemoteObjectReplica::stateChanged(QRemoteObjectReplica::State state, QRemoteObjectReplica::State oldState)
Ce signal est émis chaque fois que l'état d'une réplique bascule entre QRemoteObjectReplica::State.
Le changement d'état est représenté par state et oldState.
Note : Signal de notification pour la propriété state.
Voir aussi state() et initialized().
bool QRemoteObjectReplica::waitForSource(int timeout = 30000)
Appel bloquant qui attend que la réplique soit initialisée ou que le délai timeout (en ms) expire. Retourne true si la réplique est initialisée à la fin de l'appel, false sinon.
Si timeout vaut -1, cette fonction n'est pas interrompue.
Voir aussi isInitialized() et 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.