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

Note: All functions in this class are reentrant.

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 build macro qt6_add_protobuf or by running qtprotobufgen directly.

Member Function Documentation

QProtobufSerializer::QProtobufSerializer()

Constructs a new serializer instance.

[override virtual] 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.

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