QProtobufBaseSerializer 类

QProtobufBaseSerializer 类是一个接口,表示对象、列表和枚举的序列化和反序列化基本功能。 更多...

头文件 #include <QProtobufBaseSerializer>
CMakefind_package(Qt6 REQUIRED COMPONENTS Protobuf)
target_link_libraries(mytarget PRIVATE Qt6::Protobuf)
Qt 6.7
继承 QAbstractProtobufSerializer
由以下类继承

QProtobufJsonSerializerQProtobufSerializer

状态技术预览

公共函数

virtual booldeserializeEnum(QtProtobuf::int64 &value, const QMetaEnum &metaEnum) const = 0
virtual booldeserializeEnumList(QList<QtProtobuf::int64> &value, const QMetaEnum &metaEnum) const = 0
virtual booldeserializeListObject(QProtobufMessage *message, const QtProtobuf_private::QProtobufPropertyOrdering &ordering) const = 0
virtual booldeserializeMapPair(QVariant &key, QVariant &value) const = 0
virtual booldeserializeObject(QProtobufMessage *message, const QtProtobuf_private::QProtobufPropertyOrdering &ordering) const = 0
virtual voidserializeEnum(QtProtobuf::int64 value, const QMetaEnum &metaEnum, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0
virtual voidserializeEnumList(const QList<QtProtobuf::int64> &value, const QMetaEnum &metaEnum, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0
virtual voidserializeListObject(const QProtobufMessage *message, const QtProtobuf_private::QProtobufPropertyOrdering &ordering, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0
virtual voidserializeMapPair(const QVariant &key, const QVariant &value, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0
virtual voidserializeObject(const QProtobufMessage *message, const QtProtobuf_private::QProtobufPropertyOrdering &ordering, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0

详细说明

QProtobufBaseSerializer类用于为实现protobuf消息的类注册序列化/反序列化器,继承自QProtobufMessage。这些类是基于.proto文件自动生成的,使用CMake函数qt_add_protobuf或直接运行qtprotobufgen生成。

该类应作为特定序列化器的基础。handler属性包含所有特定消息的序列化器,应在序列化/反序列化时使用。派生类应重新实现由注册的消息序列化/反序列化函数使用的虚拟方法的作用域。

成员函数文档

[纯虚函数] bool QProtobufBaseSerializer::deserializeEnum(QtProtobuf::int64 &value, const QMetaEnum &metaEnum) const

此函数从线材中反序列化枚举valuemetaEnum有助于解码枚举值。如果反序列化成功,则返回true,否则返回false

您不应直接调用此函数。

另请参阅QProtobufBaseSerializer::serializeEnum()。

[纯虚函数] bool QProtobufBaseSerializer::deserializeEnumList(QList<QtProtobuf::int64> &value, const QMetaEnum &metaEnum) const

此函数从线材中反序列化枚举值的列表valuemetaEnum有助于解码枚举值。如果反序列化成功,则返回true,否则返回false

您不应直接调用此函数。

另请参阅QProtobufBaseSerializer::serializeEnumList()。

[纯虚函数] bool QProtobufBaseSerializer::deserializeListObject(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering) const

此函数从字节流中将message反序列化作为列表属性的一部分,关联的消息ordering来自线木材。如果反序列化成功,则返回true,否则返回false

您不应直接调用此函数。

另请参阅QProtobufBaseSerializer::serializeListObject()。

[纯虚函数] bool QProtobufBaseSerializer::deserializeMapPair(QVariant &key, QVariant &value) const

此函数从线材中反序列化键值对keyvalue。如果反序列化成功,则返回true,否则返回false

您不应直接调用此函数。

另请参阅QProtobufBaseSerializer::serializeMapPair()。

[纯虚函数] bool QProtobufBaseSerializer::deserializeObject(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering) const

此函数反序列化具有定义 ordering 的已注册 Protobuf 消息 messagemessage 必须不能是 nullptr。如果反序列化成功,则返回 true,否则返回 false

您不应直接调用此函数。

另请参阅 QProtobufBaseSerializer::serializeObject()。

[纯虚函数] void QProtobufBaseSerializer::serializeEnum(QtProtobuf::int64 value, const QMetaEnum &metaEnum, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

此函数将 value 从与属性 fieldInfo 相关的枚举中序列化。 metaEnum 帮助编码枚举值。

您不应直接调用此函数。

另请参阅 QProtobufBaseSerializer::deserializeEnum()。

[纯虚函数] void QProtobufBaseSerializer::serializeEnumList(const QList<QtProtobuf::int64> &value, const QMetaEnum &metaEnum, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

此函数使与属性 fieldInfo 相关的枚举列表的 value 序列化。 metaEnum 帮助编码枚举值。

您不应直接调用此函数。

另请参阅 QProtobufBaseSerializer::deserializeEnumList()。

[纯虚函数] void QProtobufBaseSerializer::serializeListObject(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

此函数将 message 作为更多信息序列化,每个序列化是一次 orderingfieldInfo

您不应直接调用此函数。

另请参阅 QProtobufBaseSerializer::deserializeListObject()。

[纯虚函数] void QProtobufBaseSerializer::serializeMapPair(const QVariant &key, const QVariant &value, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

此函数根据 fieldInfo 将键值对 keyvalue 反序列化,该键值对属于 protobuf 映射记录。

您不应直接调用此函数。

另请参阅 QProtobufBaseSerializer::deserializeMapPair()。

[纯虚函数] void QProtobufBaseSerializer::serializeObject(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const

此函数将具有定义的 orderingfieldInfo 的已注册 Protobuf 消息 message 看作为对象并序列化为 QByteArraymessage 必须不能是 nullptr

您不应直接调用此函数。

另请参阅 QProtobufBaseSerializer::deserializeObject()。

相关非成员函数

template <typename T> void qRegisterProtobufEnumType()

QtProtobuf 全局序列化器注册表中注册枚举类型 T 的序列器。

该函数通常由生成的代码调用。

模板 <typename K, typename V> void qRegisterProtobufMapType()

注册 Protobuf 映射类型 KV。其中 V 必须是 QProtobufMessage 类型。此函数通常由生成代码调用。

template <typename T> void qRegisterProtobufType()

注册 Protobuf 类型 T。此函数通常由生成代码调用。

© 2024 Qt 公司 Ltd. 此处的文档贡献归其各自所有者所有。所提供的文档受免费软件基金会发布的 GNU Free Documentation License 版本 1.3 条款的约束。Qt 以及相应的标志是芬兰及/或其他国家的 The Qt Company Ltd. 的注册商标。所有其他商标均为其各自所有者的财产。