QGrpcSerializationFormat Class

The QGrpcSerializationFormat class holds the protobuf message serializer and the associated content-type suffix. More...

Header: #include <QGrpcSerializationFormat>
CMake: find_package(Qt6 REQUIRED COMPONENTS Grpc)
target_link_libraries(mytarget PRIVATE Qt6::Grpc)
Since: Qt 6.8

This class is equality-comparable.

Public Functions

QGrpcSerializationFormat(QtGrpc::SerializationFormat format = {})
QGrpcSerializationFormat(QByteArrayView suffix, std::shared_ptr<QAbstractProtobufSerializer> serializer)
QGrpcSerializationFormat(const QGrpcSerializationFormat &other)
QGrpcSerializationFormat(QGrpcSerializationFormat &&other)
~QGrpcSerializationFormat()
std::shared_ptr<QAbstractProtobufSerializer> serializer() const
QByteArrayView suffix() const
(since 6.8) void swap(QGrpcSerializationFormat &other)
(since 6.8) QVariant operator QVariant() const
QGrpcSerializationFormat &operator=(QGrpcSerializationFormat &&other)
QGrpcSerializationFormat &operator=(const QGrpcSerializationFormat &other)
(since 6.8) QDebug operator<<(QDebug debug, const QGrpcSerializationFormat &sfmt)

Detailed Description

The QGrpcSerializationFormat class contains the serializer used for serializing and deserializing protobuf messages, as well as the associated content-type suffix, which indicates the message encoding in transport. For HTTP/2 specific details see the Content-Type section.

Note: The content-type is transport, and therefore implementation specific.

The class can be constructed using one of the SerializationFormat presets or a custom suffix and serializer:

QGrpcSerializationFormat jsonFormat(QtGrpc::SerializationFormat::Json);

This creates a QProtobufJsonSerializer with the json suffix. For HTTP/2 transportation this results in the application/grpc+json content-type.

class DummySerializer : public QAbstractProtobufSerializer
{
    ...
};
QGrpcSerializationFormat dummyFormat("dummy", std::make_shared<DummySerializer>());

This uses DummySerializer for encoding and decoding messages with the dummy suffix. For HTTP/2 transportation this results in the application/grpc+dummy content-type.

Note: Custom serializers require server support for the specified format.

See also QGrpcChannelOptions::serializationFormat.

Member Function Documentation

QGrpcSerializationFormat::QGrpcSerializationFormat(QtGrpc::SerializationFormat format = {})

Constructs a new QGrpcSerializationFormat with the specified preset format.

The default format used is SerializationFormat::Default.

[explicit] QGrpcSerializationFormat::QGrpcSerializationFormat(QByteArrayView suffix, std::shared_ptr<QAbstractProtobufSerializer> serializer)

Constructs a new QGrpcSerializationFormat with a custom content type specified by suffix and a protobuf message serializer.

QGrpcSerializationFormat::QGrpcSerializationFormat(const QGrpcSerializationFormat &other)

Constructs a copy of other.

[noexcept] QGrpcSerializationFormat::QGrpcSerializationFormat(QGrpcSerializationFormat &&other)

Move-constructs a new QGrpcSerializationFormat from other.

Note: The moved-from object other is placed in a partially-formed state, in which the only valid operations are destruction and assignment of a new value.

[noexcept] QGrpcSerializationFormat::~QGrpcSerializationFormat()

Destroys the QGrpcSerializationFormat.

std::shared_ptr<QAbstractProtobufSerializer> QGrpcSerializationFormat::serializer() const

Returns the serializer for this serialization format.

/sa QAbstractProtobufSerializer

[noexcept] QByteArrayView QGrpcSerializationFormat::suffix() const

Returns the content type suffix for this serialization format.

[noexcept, since 6.8] void QGrpcSerializationFormat::swap(QGrpcSerializationFormat &other)

Swaps other with this object. This operation is very fast and never fails.

This function was introduced in Qt 6.8.

[since 6.8] QVariant QGrpcSerializationFormat::operator QVariant() const

Constructs a new QVariant from this object.

This function was introduced in Qt 6.8.

[noexcept] QGrpcSerializationFormat &QGrpcSerializationFormat::operator=(QGrpcSerializationFormat &&other)

Move-assigns other to this QGrpcSerializationFormat instance and returns a reference to it.

Note: The moved-from object other is placed in a partially-formed state, in which the only valid operations are destruction and assignment of a new value.

QGrpcSerializationFormat &QGrpcSerializationFormat::operator=(const QGrpcSerializationFormat &other)

Assigns the other QGrpcSerializationFormat object to this one.

Related Non-Members

[since 6.8] QDebug operator<<(QDebug debug, const QGrpcSerializationFormat &sfmt)

Writes sfmt to the specified stream debug.

This function was introduced in Qt 6.8.

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