QAbstractProtobufSerializer Class

Die Klasse QAbstractProtobufSerializer ist eine Schnittstelle, die grundlegende Funktionen zur Serialisierung/Deserialisierung darstellt. Mehr...

Kopfzeile: #include <QAbstractProtobufSerializer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Protobuf)
target_link_libraries(mytarget PRIVATE Qt6::Protobuf)
Seit: Qt 6.5
Geerbt von:

QProtobufJsonSerializer und QProtobufSerializer

Hinweis: Alle Funktionen in dieser Klasse sind reentrant.

Öffentliche Typen

(since 6.8) enum class Error { None, InvalidHeader, UnknownType, UnexpectedEndOfStream, InvalidFormat }

Öffentliche Funktionen

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

Makros

Detaillierte Beschreibung

Die Klasse QProtobufSerializer registriert Serialisierer/Deserialisierer für Klassen, die eine Protobuf-Nachricht implementieren und von QProtobufMessage erben. Diese Klassen werden automatisch generiert, basierend auf einer .proto Datei, unter Verwendung der CMake Funktion qt_add_protobuf oder durch direkte Ausführung von qtprotobufgen.

Diese Klasse sollte als Basis für spezifische Serializer verwendet werden. Die Eigenschaft handlers enthält alle nachrichtenspezifischen Serialisierer und sollte bei der Serialisierung/Deserialisierung verwendet werden. Geerbte Klassen sollten den Umfang der virtuellen Methoden reimplementieren, die von registrierten Nachrichten-Serialisierungs-/Deserialisierungsfunktionen verwendet werden.

Dokumentation der Mitgliedstypen

[since 6.8] enum class QAbstractProtobufSerializer::Error

Diese Aufzählung enthält mögliche Fehler, die während der Deserialisierung auftreten können. Wenn ein Fehler auftritt, rufen Sie lastErrorString() auf, um eine von Menschen lesbare Fehlermeldung zu erhalten.

KonstanteWertBeschreibung
QAbstractProtobufSerializer::Error::None0Kein Fehler aufgetreten.
QAbstractProtobufSerializer::Error::InvalidHeader1Beim Versuch, einen Header in der Nachricht zu dekodieren, ist ein Fehler aufgetreten.
QAbstractProtobufSerializer::Error::UnknownType2Bei der Serialisierung oder Deserialisierung einer Nachricht wurde kein Deserialisierer für ein Nachrichtenfeld gefunden.
QAbstractProtobufSerializer::Error::UnexpectedEndOfStream3Während der Deserialisierung einer Nachricht wurde der Stream unerwartet beendet.
QAbstractProtobufSerializer::Error::InvalidFormat4Die Daten haben ein ungültiges Format. Zum Beispiel passt der JSON-Wert nicht zum Feldtyp.

Dieses Enum wurde in Qt 6.8 eingeführt.

Dokumentation der Mitgliedsfunktionen

[virtual noexcept] QAbstractProtobufSerializer::~QAbstractProtobufSerializer()

Zerstört diese QAbstractProtobufSerializer.

bool QAbstractProtobufSerializer::deserialize(QProtobufMessage *message, QByteArrayView data) const

Deserialisiert eine registrierte Protobuf-Nachricht message aus einer QByteArray data . message darf nicht nullptr sein. Gibt true zurück, wenn die Deserialisierung erfolgreich war, andernfalls false.

Unerwartete/unbekannte Eigenschaften in der data werden übersprungen.

Siehe auch serialize().

[pure virtual, since 6.8] QAbstractProtobufSerializer::Error QAbstractProtobufSerializer::lastError() const

Gibt den letzten Fehler für die Serializer-Instanz zurück.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch lastErrorString().

[pure virtual, since 6.8] QString QAbstractProtobufSerializer::lastErrorString() const

Gibt den letzten Fehlerstring für die Serializer-Instanz zurück.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch lastError().

QByteArray QAbstractProtobufSerializer::serialize(const QProtobufMessage *message) const

Serialisiert eine registrierte Protobuf-Nachricht message in eine QByteArray. message darf nicht nullptr sein.

Siehe auch deserialize().

Makro-Dokumentation

Q_PROTOBUF_OBJECT

Deklariert das propertyOrdering-Mitglied in einer Klasse, die von QProtobufMessage erbt. Dies wird als Teil des vom Tool qtprotobufgen generierten Codes verwendet.

© 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.