QAbstractProtobufSerializer Class
La classe `QAbstractProtobufSerializer` est une interface qui fournit les fonctions de base pour la sérialisation et la désérialisation. En savoir plus...
| 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 : |
Remarque : toutes les fonctions de cette classe sont réentrantes.
Types publics
(since 6.8) enum class | Error { None, InvalidHeader, UnknownType, UnexpectedEndOfStream, InvalidFormat } |
Fonctions publiques
| QAbstractProtobufSerializer() | |
| 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, en héritant de ` QProtobufMessage`. Ces classes sont générées automatiquement, à partir d’un fichier ` .proto `, à l’aide de la fonction CMake `qt_add_protobuf ` ou en exécutant directement `qtprotobufgen `.
Cette classe doit servir de 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 la portée des méthodes virtuelles utilisées par les fonctions de sérialisation/désérialisation des messages enregistrés.
Documentation sur les types membres
[since 6.8] enum class QAbstractProtobufSerializer::Error
Cette énumération répertorie les erreurs susceptibles de se produire lors de la désérialisation. Lorsqu'une erreur survient, appelez la méthode lastErrorString() pour obtenir un message d'erreur compréhensible par l'utilisateur.
| Constante | Valeur | Description |
|---|---|---|
QAbstractProtobufSerializer::Error::None | 0 | Aucune erreur ne s'est produite. |
QAbstractProtobufSerializer::Error::InvalidHeader | 1 | Une erreur s'est produite 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 du 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 du champ. |
Cette énumération a été introduite dans Qt 6.8.
Documentation des fonctions membres
[constexpr noexcept default] QAbstractProtobufSerializer::QAbstractProtobufSerializer()
Construit par défaut une instance de ` QAbstractProtobufSerializer`.
[virtual noexcept] QAbstractProtobufSerializer::~QAbstractProtobufSerializer()
Supprime cette page : QAbstractProtobufSerializer.
bool QAbstractProtobufSerializer::deserialize(QProtobufMessage *message, QByteArrayView data) const
Désérialise un message Protobuf enregistré message à partir d’un fichier QByteArray data . message ne doit pas être nullptr. Renvoie true si la désérialisation a réussi, sinon false.
Les propriétés inattendues ou inconnues dans l'data sont ignorées.
Voir également serialize().
[pure virtual private] bool QAbstractProtobufSerializer::deserializeMessage(QProtobufMessage *message, QByteArrayView data) const
Cette méthode est appelée par ` deserialize()` pour désérialiser une instance ` message ` de Protobuf enregistrée à partir d'un ` QByteArrayView ` data. On peut supposer que ` message ` n'est pas ` nullptr`. Renvoie ` 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 de l'instance du 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 associée à l'instance du sérialiseur.
Cette fonction a été introduite dans Qt 6.8.
Voir également ` lastError()`.
QByteArray QAbstractProtobufSerializer::serialize(const QProtobufMessage *message) const
Sérialise un message Protobuf enregistré message en un QByteArray. message ne doit pas être nullptr.
Voir également deserialize().
[pure virtual private] QByteArray QAbstractProtobufSerializer::serializeMessage(const QProtobufMessage *message) const
Cette méthode est appelée par ` serialize()` pour sérialiser un `Protobuf` enregistré message. ` message ` ne doit pas être de type ` nullptr`. Renvoie un ` QByteArray ` contenant le message sérialisé.
Documentation des macros
Q_PROTOBUF_OBJECT
Déclare le membre `propertyOrdering` dans une classe héritant de ` QProtobufMessage`. Il est utilisé dans le cadre du 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.