qtgrpc/src/protobuf/qprotobufbaseserializer.cpp

157 lines
5.6 KiB
C++

// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "qprotobufbaseserializer.h"
QT_BEGIN_NAMESPACE
/*!
\class QProtobufBaseSerializer
\inmodule QtProtobuf
\since 6.7
\brief The QProtobufBaseSerializer class is an interface that represents
basic functions for serializing/deserializing objects, lists, and enums.
The QProtobufBaseSerializer class registers serializers/deserializers for
classes implementing a protobuf message, inheriting \l QProtobufMessage. These
classes are generated automatically, based on a \c{.proto} file, using the CMake
function \l qt_add_protobuf or by running
\l {The qtprotobufgen Tool} {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.
*/
/*!
\fn void QProtobufBaseSerializer::serializeObject(const QProtobufMessage *message,
const QtProtobufPrivate::QProtobufPropertyOrdering &ordering,
const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
This function serializes a registered Protobuf message \a message
with defined \a ordering and \a fieldInfo, that is recognized
like an object, into a QByteArray. \a message must not be \nullptr.
You should not call this function directly.
\sa QProtobufBaseSerializer::deserializeObject()
*/
/*!
\fn bool QProtobufBaseSerializer::deserializeObject(QProtobufMessage *message,
const QtProtobufPrivate::QProtobufPropertyOrdering &ordering) const
This function deserializes a registered Protobuf message \a message
with defined \a ordering. \a message must not be \nullptr.
Returns \c true if deserialization was successful, otherwise \c false.
You should not call this function directly.
\sa QProtobufBaseSerializer::serializeObject()
*/
/*!
\fn void QProtobufBaseSerializer::serializeListObject(const QProtobufMessage *message,
const QtProtobufPrivate::QProtobufPropertyOrdering &ordering,
const QtProtobufPrivate::QProtobufPropertyOrderingInfo
&fieldInfo) const
This function serializes \a message as part of a list of messages one by one
with \a ordering and \a fieldInfo.
You should not call this function directly.
\sa QProtobufBaseSerializer::deserializeListObject()
*/
/*!
\fn bool QProtobufBaseSerializer::deserializeListObject(QProtobufMessage *message,
const QtProtobufPrivate::QProtobufPropertyOrdering &ordering) const
This function deserializes an \a message from byte stream as part of list property, with
the associated message \a ordering from a wire.
Returns \c true if deserialization was successful, otherwise \c false.
You should not call this function directly.
\sa QProtobufBaseSerializer::serializeListObject()
*/
/*!
\fn void QProtobufBaseSerializer::serializeMapPair(const QVariant &key, const QVariant &value,
const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
This function serializes pair of \a key and \a value, that belong as a protobuf map record,
according to \a fieldInfo.
You should not call this function directly.
\sa QProtobufBaseSerializer::deserializeMapPair()
*/
/*!
\fn bool QProtobufBaseSerializer::deserializeMapPair(QVariant &key, QVariant &value) const
This function deserializes a pair of \a key and \a value from a wire.
Returns \c true if deserialization was successful, otherwise \c false.
You should not call this function directly.
\sa QProtobufBaseSerializer::serializeMapPair()
*/
/*!
\fn void QProtobufBaseSerializer::serializeEnum(QtProtobuf::int64 value,
const QMetaEnum &metaEnum,
const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
This function serializes \a value from enum associated with property \a fieldInfo.
\a metaEnum helps to encode the enum value.
You should not call this function directly.
\sa QProtobufBaseSerializer::deserializeEnum()
*/
/*!
\fn bool QProtobufBaseSerializer::deserializeEnum(QtProtobuf::int64 &value,
const QMetaEnum &metaEnum) const
This function deserializes an enum \a value from a wire. \a metaEnum helps to decode the enum
value.
Returns \c true if deserialization was successful, otherwise \c false.
You should not call this function directly.
\sa QProtobufBaseSerializer::serializeEnum()
*/
/*!
\fn void QProtobufBaseSerializer::serializeEnumList(const QList<QtProtobuf::int64> &value,
const QMetaEnum &metaEnum,
const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
This function serializes a list, \a value, for enum list associated with property \a fieldInfo.
\a metaEnum helps to encode the enum value.
You should not call this function directly.
\sa QProtobufBaseSerializer::deserializeEnumList()
*/
/*!
\fn bool QProtobufBaseSerializer::deserializeEnumList(QList<QtProtobuf::int64> &value,
const QMetaEnum &metaEnum) const
This function deserializes a list of enum \a value from a wire. \a metaEnum helps to decode
the enum value.
Returns \c true if deserialization was successful, otherwise \c false.
You should not call this function directly.
\sa QProtobufBaseSerializer::serializeEnumList()
*/
QT_END_NAMESPACE