QProtobufSerializer Class

The QProtobufSerializer class is interface that represents basic functions for serialization/deserialization. More...

Header: #include <QProtobufSerializer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Protobuf)
target_link_libraries(mytarget PRIVATE Qt6::Protobuf)
Since: Qt 6.5
Inherits: QAbstractProtobufSerializer
Status: Technical Preview

Public Functions

QProtobufSerializer()
virtual ~QProtobufSerializer() override
bool deserializeEnum(QtProtobuf::int64 &value, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const
bool deserializeEnumList(QList<QtProtobuf::int64> &value, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const
bool deserializeListObject(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const
bool deserializeMapPair(QVariant &key, QVariant &value, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const
bool deserializeObject(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const
QByteArray serializeEnum(QtProtobuf::int64 value, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
QByteArray serializeEnumList(const QList<QtProtobuf::int64> &value, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
QByteArray serializeListObject(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
QByteArray serializeMapPair(const QVariant &key, const QVariant &value, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
QByteArray serializeObject(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

Reimplemented Public Functions

virtual QProtobufSerializer::DeserializationError deserializationError() const override
virtual QString deserializationErrorString() const override
virtual bool deserializeMessage(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, QByteArrayView data) const override
virtual QByteArray serializeMessage(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering) const override

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.

Member Function Documentation

QProtobufSerializer::QProtobufSerializer()

Constructs a new serializer instance.

[override virtual noexcept] QProtobufSerializer::~QProtobufSerializer()

Destroys the serializer instance.

[override virtual] QProtobufSerializer::DeserializationError QProtobufSerializer::deserializationError() const

Returns the last deserialization error.

[override virtual] QString QProtobufSerializer::deserializationErrorString() const

Returns a human-readable string describing the last deserialization error. If there was no error, an empty string is returned.

bool QProtobufSerializer::deserializeEnum(QtProtobuf::int64 &value, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const

This function deserializes an enum value from a QProtobufSelfcheckIterator it. Returns true if deserialization was successful, otherwise false.

You should not call this function directly.

bool QProtobufSerializer::deserializeEnumList(QList<QtProtobuf::int64> &value, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const

This function deserializes a list of enum value from a QProtobufSelfcheckIterator it. Returns true if deserialization was successful, otherwise false.

You should not call this function directly.

bool QProtobufSerializer::deserializeListObject(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const

This function deserializes an message from byte stream as part of list property, with ordering from a QProtobufSelfcheckIterator it. Returns true if deserialization was successful, otherwise false.

You should not call this function directly.

bool QProtobufSerializer::deserializeMapPair(QVariant &key, QVariant &value, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const

This function deserializes QMap pair of key and value from a QProtobufSelfcheckIterator it. Returns true if deserialization was successful, otherwise false.

You should not call this function directly.

[override virtual] bool QProtobufSerializer::deserializeMessage(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, QByteArrayView data) const

Reimplements: QAbstractProtobufSerializer::deserializeMessage(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, QByteArrayView data) const.

This is called by deserialize() to deserialize a registered Protobuf message message with ordering, from a QByteArrayView data. message can be assumed to not be nullptr. Returns true if deserialization was successful, otherwise false.

bool QProtobufSerializer::deserializeObject(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, QtProtobufPrivate::QProtobufSelfcheckIterator &it) const

Deserialize an message with ordering from a QProtobufSelfcheckIterator it. Returns true if deserialization was successful, otherwise false.

You should not call this function directly.

QByteArray QProtobufSerializer::serializeEnum(QtProtobuf::int64 value, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

This function serializes value as a QByteArray for enum associated with property fieldInfo.

You should not call this function directly.

QByteArray QProtobufSerializer::serializeEnumList(const QList<QtProtobuf::int64> &value, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

This function serializes a list, value, as a QByteArray for enum associated with property fieldInfo.

You should not call this function directly.

QByteArray QProtobufSerializer::serializeListObject(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

This function is called to serialize message as a part of list property with ordering and fieldInfo.

You should not call this function directly.

QByteArray QProtobufSerializer::serializeMapPair(const QVariant &key, const QVariant &value, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

This function serializes QMap pair of key and value with fieldInfo to a QByteArray

You should not call this function directly.

[override virtual] QByteArray QProtobufSerializer::serializeMessage(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering) const

Reimplements: QAbstractProtobufSerializer::serializeMessage(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering) const.

This is called by serialize() to serialize a registered Protobuf message message with ordering. message must not be nullptr. Returns a QByteArray containing the serialized message.

QByteArray QProtobufSerializer::serializeObject(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

Serialize an message with ordering and fieldInfo. Returns a QByteArray containing the serialized message.

You should not call this function directly.

Related Non-Members

template <typename T> void qRegisterProtobufEnumType()

Registers serializers for enumeration type T in QtProtobuf global serializers registry.

This function is normally called by generated code.

template <typename K, typename V> void qRegisterProtobufMapType()

Registers a Protobuf map type K and V. V must be a QProtobufMessage. This function is normally called by generated code.

template <typename T> void qRegisterProtobufType()

Registers a Protobuf type T. This function is normally called by generated code.