QAbstractProtobufSerializer Class
The QAbstractProtobufSerializer class is interface that represents basic functions for serialization/deserialization. More...
Header: | #include <QAbstractProtobufSerializer> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Protobuf) target_link_libraries(mytarget PRIVATE Qt6::Protobuf) |
Since: | Qt 6.5 |
Inherited By: |
Note: All functions in this class are reentrant.
Public Types
(since 6.8) enum class | Error { None, InvalidHeader, UnknownType, UnexpectedEndOfStream, InvalidFormat } |
Public Functions
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 |
Macros
Detailed Description
The QProtobufSerializer class registers serializers/deserializers for classes implementing a protobuf message, inheriting QProtobufMessage. These classes are generated automatically, based on a .proto
file, using the CMake function qt_add_protobuf or by running qtprotobufgen directly.
This class should be used as a base for specific serializers. The handlers property contains all message-specific serializers and should be used while serialization/deserialization. Inherited classes should reimplement scope of virtual methods that used by registered message serialization/deserialization functions.
Member Type Documentation
[since 6.8]
enum class QAbstractProtobufSerializer::Error
This enum contains possible errors that can occur during deserialization. When an error occurs, call lastErrorString() to get a human-readable error message.
Constant | Value | Description |
---|---|---|
QAbstractProtobufSerializer::Error::None | 0 | No error occurred. |
QAbstractProtobufSerializer::Error::InvalidHeader | 1 | Something went wrong while attempting to decode a header in the message. |
QAbstractProtobufSerializer::Error::UnknownType | 2 | While serializing or deserializing a message, no deserializer was found for a message field. |
QAbstractProtobufSerializer::Error::UnexpectedEndOfStream | 3 | While deserializing a message, the stream ended unexpectedly. |
QAbstractProtobufSerializer::Error::InvalidFormat | 4 | The data has invalid format. For example the JSON value doesn't match the field type. |
This enum was introduced in Qt 6.8.
Member Function Documentation
[virtual noexcept]
QAbstractProtobufSerializer::~QAbstractProtobufSerializer()
Destroys this QAbstractProtobufSerializer.
bool QAbstractProtobufSerializer::deserialize(QProtobufMessage *message, QByteArrayView data) const
Deserializes a registered Protobuf message message from a QByteArray data. message must not be nullptr
. Returns true
if deserialization was successful, otherwise false
.
Unexpected/unknown properties in the data are skipped.
See also serialize().
[pure virtual, since 6.8]
QAbstractProtobufSerializer::Error QAbstractProtobufSerializer::lastError() const
Returns the last error for the serializer instance.
This function was introduced in Qt 6.8.
See also lastErrorString().
[pure virtual, since 6.8]
QString QAbstractProtobufSerializer::lastErrorString() const
Returns the last error string for the serializer instance.
This function was introduced in Qt 6.8.
See also lastError().
QByteArray QAbstractProtobufSerializer::serialize(const QProtobufMessage *message) const
Serializes a registered Protobuf message message into a QByteArray. message must not be nullptr
.
See also deserialize().
Macro Documentation
Q_PROTOBUF_OBJECT
Declares the propertyOrdering member in a class inheriting QProtobufMessage. This is used as part of the code generated by the qtprotobufgen tool.