QAbstractProtobufSerializer Class
Die Klasse „QAbstractProtobufSerializer“ ist eine Schnittstelle, die grundlegende Funktionen für die Serialisierung und Deserialisierung bereitstellt. Mehr...
| Header: | #include <QAbstractProtobufSerializer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Protobuf) target_link_libraries(mytarget PRIVATE Qt6::Protobuf) |
| Seit: | Qt 6.5 |
| Nachfolger: |
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Typen
(since 6.8) enum class | Error { None, InvalidHeader, UnknownType, UnexpectedEndOfStream, InvalidFormat } |
Öffentliche Funktionen
| 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 |
Private Funktionen
| virtual bool | deserializeMessage(QProtobufMessage *message, QByteArrayView data) const = 0 |
| virtual QByteArray | serializeMessage(const QProtobufMessage *message) const = 0 |
Makros
Ausführliche Beschreibung
Die Klasse „ QProtobufSerializer “ registriert Serializer und Deserializer für Klassen, die eine Protobuf-Nachricht implementieren und von „ QProtobufMessage “ erben. Diese Klassen werden automatisch auf der Grundlage einer „ .proto “-Datei mithilfe der CMake-Funktion „qt_add_protobuf“ oder durch direktes Ausführen von „qtprotobufgen“ generiert.
Diese Klasse sollte als Grundlage für spezifische Serializer verwendet werden. Die Eigenschaft „handlers“ enthält alle nachrichtenspezifischen Serializer und sollte bei der Serialisierung/Deserialisierung verwendet werden. Unterklassen sollten den Geltungsbereich der virtuellen Methoden neu implementieren, die von den registrierten Funktionen zur Serialisierung/Deserialisierung der Nachrichten verwendet werden.
Dokumentation zu den Mitgliedstypen
[since 6.8] enum class QAbstractProtobufSerializer::Error
Diese Enumeration enthält mögliche Fehler, die bei der Deserialisierung auftreten können. Wenn ein Fehler auftritt, rufen Sie ` lastErrorString()` auf, um eine für Menschen lesbare Fehlermeldung zu erhalten.
| Konstante | Wert | Beschreibung |
|---|---|---|
QAbstractProtobufSerializer::Error::None | 0 | Es ist kein Fehler aufgetreten. |
QAbstractProtobufSerializer::Error::InvalidHeader | 1 | Beim Versuch, einen Header in der Nachricht zu dekodieren, ist ein Fehler aufgetreten. |
QAbstractProtobufSerializer::Error::UnknownType | 2 | Beim Serialisieren oder Deserialisieren einer Nachricht wurde für ein Nachrichtenfeld kein Deserialisierer gefunden. |
QAbstractProtobufSerializer::Error::UnexpectedEndOfStream | 3 | Beim Deserialisieren einer Nachricht wurde der Datenstrom unerwartet beendet. |
QAbstractProtobufSerializer::Error::InvalidFormat | 4 | Die Daten haben ein ungültiges Format. Beispielsweise stimmt der JSON-Wert nicht mit dem Feldtyp überein. |
Diese Enumeration wurde in Qt 6.8 eingeführt.
Dokumentation der Mitgliedsfunktionen
[constexpr noexcept default] QAbstractProtobufSerializer::QAbstractProtobufSerializer()
Erzeugt standardmäßig eine Instanz von ` QAbstractProtobufSerializer`.
[virtual noexcept] QAbstractProtobufSerializer::~QAbstractProtobufSerializer()
Löscht diese Seite: 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 im „ data “ werden übersprungen.
Siehe auch serialize().
[pure virtual private] bool QAbstractProtobufSerializer::deserializeMessage(QProtobufMessage *message, QByteArrayView data) const
Diese Funktion wird von ` deserialize()` aufgerufen, um ein registriertes Protobuf- message ` aus einem ` QByteArrayView ` ` data` zu deserialisieren. Es kann davon ausgegangen werden, dass ` message ` nicht ` nullptr` ist. Gibt ` true ` zurück, wenn die Deserialisierung erfolgreich war, andernfalls ` false`.
[pure virtual, since 6.8] QAbstractProtobufSerializer::Error QAbstractProtobufSerializer::lastError() const
Gibt den letzten Fehler der 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 die letzte Fehlermeldung der 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 „ QByteArray “. „ message “ darf nicht „ nullptr “ sein.
Siehe auch deserialize().
[pure virtual private] QByteArray QAbstractProtobufSerializer::serializeMessage(const QProtobufMessage *message) const
Diese Funktion wird von ` serialize()` aufgerufen, um ein registriertes Protobuf- message zu serialisieren. ` message ` darf nicht ` nullptr` sein. Gibt ein ` QByteArray ` zurück, das die serialisierte Nachricht enthält.
Makro-Dokumentation
Q_PROTOBUF_OBJECT
Deklariert das Element „propertyOrdering“ in einer Klasse, die von „ QProtobufMessage “ erbt. Dies wird als Teil des vom Tool „qtprotobufgen“ generierten Codes verwendet.
© 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.