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: |
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.
Konstante | Wert | Beschreibung |
---|---|---|
QAbstractProtobufSerializer::Error::None | 0 | Kein Fehler aufgetreten. |
QAbstractProtobufSerializer::Error::InvalidHeader | 1 | Beim Versuch, einen Header in der Nachricht zu dekodieren, ist ein Fehler aufgetreten. |
QAbstractProtobufSerializer::Error::UnknownType | 2 | Bei der Serialisierung oder Deserialisierung einer Nachricht wurde kein Deserialisierer für ein Nachrichtenfeld gefunden. |
QAbstractProtobufSerializer::Error::UnexpectedEndOfStream | 3 | Während der Deserialisierung einer Nachricht wurde der Stream unerwartet beendet. |
QAbstractProtobufSerializer::Error::InvalidFormat | 4 | Die 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.