Sur cette page

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 :

QProtobufJsonSerializer et QProtobufSerializer

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.

ConstanteValeurDescription
QAbstractProtobufSerializer::Error::None0Aucune erreur ne s'est produite.
QAbstractProtobufSerializer::Error::InvalidHeader1Une erreur s'est produite lors de la tentative de décodage d'un en-tête dans le message.
QAbstractProtobufSerializer::Error::UnknownType2Lors 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::UnexpectedEndOfStream3Lors de la désérialisation d'un message, le flux s'est terminé de manière inattendue.
QAbstractProtobufSerializer::Error::InvalidFormat4Le 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.