- Qt 6.5
- Qt Protobuf
- C++ Classes
- QtProtobuf (Technical Preview)
- QProtobufSerializer
- Qt 6.5.2 Reference Documentation

# 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

- List of all members, including inherited members

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

## Related Non-Members

void | qRegisterProtobufEnumType()
void | qRegisterProtobufMapType()
void | qRegisterProtobufType()

## 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.