QAbstractProtobufSerializer Class
La classe QAbstractProtobufSerializer est une interface qui représente les fonctions de base de la sérialisation/désérialisation. Plus d'informations...
| En-tête : | #include <QAbstractProtobufSerializer> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Protobuf)target_link_libraries(mytarget PRIVATE Qt6::Protobuf) |
| Depuis : | Qt 6.5 |
| Hérité par : |
Note : Toutes les fonctions de cette classe sont réentrantes.
Types publics
(since 6.8) enum class | Error { None, InvalidHeader, UnknownType, UnexpectedEndOfStream, InvalidFormat } |
Fonctions publiques
| virtual | ~QAbstractProtobufSerializer() |
| bool | deserialize(QProtobufMessage *message, QByteArrayView data) const |
(since 6.8) virtual QAbstractProtobufSerializer::Error | lastError() const = 0 |
(since 6.8) virtual QString | lastErrorString() const = 0 |
| QByteArray | serialize(const QProtobufMessage *message) const |
Fonctions privées
| virtual bool | deserializeMessage(QProtobufMessage *message, QByteArrayView data) const = 0 |
| virtual QByteArray | serializeMessage(const QProtobufMessage *message) const = 0 |
Macros
Description détaillée
La classe QProtobufSerializer enregistre les sérialiseurs/désérialiseurs pour les classes implémentant un message protobuf, héritant de QProtobufMessage. Ces classes sont générées automatiquement, sur la base d'un fichier .proto, en utilisant la fonction CMake qt_add_protobuf ou en exécutant directement qtprotobufgen.
Cette classe doit être utilisée comme base pour des sérialiseurs spécifiques. La propriété handlers contient tous les sérialiseurs spécifiques aux messages et doit être utilisée lors de la sérialisation/désérialisation. Les classes héritées doivent réimplémenter les méthodes virtuelles utilisées par les fonctions de sérialisation/désérialisation de messages enregistrées.
Documentation sur les types de membres
[since 6.8] enum class QAbstractProtobufSerializer::Error
Cette énumération contient les erreurs possibles qui peuvent survenir lors de la désérialisation. Lorsqu'une erreur se produit, appelez lastErrorString() pour obtenir un message d'erreur lisible par l'homme.
| Constante | Valeur | Description de l'erreur |
|---|---|---|
QAbstractProtobufSerializer::Error::None | 0 | Aucune erreur n'est survenue. |
QAbstractProtobufSerializer::Error::InvalidHeader | 1 | Un problème s'est produit lors de la tentative de décodage d'un en-tête dans le message. |
QAbstractProtobufSerializer::Error::UnknownType | 2 | Lors de la sérialisation ou de la désérialisation d'un message, aucun désérialiseur n'a été trouvé pour un champ de message. |
QAbstractProtobufSerializer::Error::UnexpectedEndOfStream | 3 | Lors de la désérialisation d'un message, le flux s'est terminé de manière inattendue. |
QAbstractProtobufSerializer::Error::InvalidFormat | 4 | Le format des données n'est pas valide. Par exemple, la valeur JSON ne correspond pas au type de champ. |
Cette énumération a été introduite dans Qt 6.8.
Documentation des fonctions membres
[virtual noexcept] QAbstractProtobufSerializer::~QAbstractProtobufSerializer()
Détruit cette QAbstractProtobufSerializer.
bool QAbstractProtobufSerializer::deserialize(QProtobufMessage *message, QByteArrayView data) const
Désérialise un message Protobuf enregistré message à partir d'un QByteArray data . message ne doit pas être nullptr. Retourne true si la désérialisation a réussi, sinon false.
Les propriétés inattendues/inconnues dans data sont ignorées.
Voir aussi serialize().
[pure virtual private] bool QAbstractProtobufSerializer::deserializeMessage(QProtobufMessage *message, QByteArrayView data) const
Cette fonction est appelée par deserialize() pour désérialiser un Protobuf enregistré message à partir d'un QByteArrayView data . message peut être supposé ne pas être nullptr. Retourne true si la désérialisation a réussi, sinon false.
[pure virtual, since 6.8] QAbstractProtobufSerializer::Error QAbstractProtobufSerializer::lastError() const
Renvoie la dernière erreur pour l'instance de sérialiseur.
Cette fonction a été introduite dans Qt 6.8.
Voir aussi lastErrorString().
[pure virtual, since 6.8] QString QAbstractProtobufSerializer::lastErrorString() const
Renvoie la dernière chaîne d'erreur pour l'instance de sérialiseur.
Cette fonction a été introduite dans Qt 6.8.
Voir aussi lastError().
QByteArray QAbstractProtobufSerializer::serialize(const QProtobufMessage *message) const
Sérialise un message Protobuf enregistré message en QByteArray. message ne doit pas être nullptr.
Voir aussi deserialize().
[pure virtual private] QByteArray QAbstractProtobufSerializer::serializeMessage(const QProtobufMessage *message) const
Cette fonction est appelée par serialize() pour sérialiser un Protobuf enregistré message. message ne doit pas être nullptr. Renvoie un QByteArray contenant le message sérialisé.
Documentation sur les macros
Q_PROTOBUF_OBJECT
Déclare le membre propertyOrdering dans une classe héritant de QProtobufMessage. Ce membre est utilisé dans le code généré par l'outil qtprotobufgen.
© 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.