QProtobufBaseSerializer 类
QProtobufBaseSerializer 类是一个接口,表示对象、列表和枚举的序列化和反序列化基本功能。 更多...
头文件 | #include <QProtobufBaseSerializer> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Protobuf) target_link_libraries(mytarget PRIVATE Qt6::Protobuf) |
自 | Qt 6.7 |
继承 | QAbstractProtobufSerializer |
由以下类继承 | |
状态 | 技术预览 |
公共函数
virtual bool | deserializeEnum(QtProtobuf::int64 &value, const QMetaEnum &metaEnum) const = 0 |
virtual bool | deserializeEnumList(QList<QtProtobuf::int64> &value, const QMetaEnum &metaEnum) const = 0 |
virtual bool | deserializeListObject(QProtobufMessage *message, const QtProtobuf_private::QProtobufPropertyOrdering &ordering) const = 0 |
virtual bool | deserializeMapPair(QVariant &key, QVariant &value) const = 0 |
virtual bool | deserializeObject(QProtobufMessage *message, const QtProtobuf_private::QProtobufPropertyOrdering &ordering) const = 0 |
virtual void | serializeEnum(QtProtobuf::int64 value, const QMetaEnum &metaEnum, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0 |
virtual void | serializeEnumList(const QList<QtProtobuf::int64> &value, const QMetaEnum &metaEnum, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0 |
virtual void | serializeListObject(const QProtobufMessage *message, const QtProtobuf_private::QProtobufPropertyOrdering &ordering, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0 |
virtual void | serializeMapPair(const QVariant &key, const QVariant &value, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0 |
virtual void | serializeObject(const QProtobufMessage *message, const QtProtobuf_private::QProtobufPropertyOrdering &ordering, const QtProtobuf_private::QProtobufPropertyOrderingInfo &fieldInfo) const = 0 |
相关非成员函数
void | qRegisterProtobufEnumType() |
void | qRegisterProtobufMapType() |
void | qRegisterProtobufType() |
详细说明
QProtobufBaseSerializer类用于为实现protobuf消息的类注册序列化/反序列化器,继承自QProtobufMessage。这些类是基于.proto文件自动生成的,使用CMake函数qt_add_protobuf或直接运行qtprotobufgen生成。
该类应作为特定序列化器的基础。handler属性包含所有特定消息的序列化器,应在序列化/反序列化时使用。派生类应重新实现由注册的消息序列化/反序列化函数使用的虚拟方法的作用域。
成员函数文档
[纯虚函数]
bool QProtobufBaseSerializer::deserializeEnum(QtProtobuf::int64 &value, const QMetaEnum &metaEnum) const
此函数从线材中反序列化枚举value。metaEnum有助于解码枚举值。如果反序列化成功,则返回true
,否则返回false
。
您不应直接调用此函数。
另请参阅QProtobufBaseSerializer::serializeEnum()。
[纯虚函数]
bool QProtobufBaseSerializer::deserializeEnumList(QList<QtProtobuf::int64> &value, const QMetaEnum &metaEnum) const
此函数从线材中反序列化枚举值的列表value。metaEnum有助于解码枚举值。如果反序列化成功,则返回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
此函数从线材中反序列化键值对key和value。如果反序列化成功,则返回true
,否则返回false
。
您不应直接调用此函数。
另请参阅QProtobufBaseSerializer::serializeMapPair()。
[纯虚函数]
bool QProtobufBaseSerializer::deserializeObject(QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering) const
此函数反序列化具有定义 ordering 的已注册 Protobuf 消息 message。 message 必须不能是 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 作为更多信息序列化,每个序列化是一次 ordering 和 fieldInfo。
您不应直接调用此函数。
另请参阅 QProtobufBaseSerializer::deserializeListObject()。
[纯虚函数]
void QProtobufBaseSerializer::serializeMapPair(const QVariant &key, const QVariant &value, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
此函数根据 fieldInfo 将键值对 key 和 value 反序列化,该键值对属于 protobuf 映射记录。
您不应直接调用此函数。
另请参阅 QProtobufBaseSerializer::deserializeMapPair()。
[纯虚函数]
void QProtobufBaseSerializer::serializeObject(const QProtobufMessage *message, const QtProtobufPrivate::QProtobufPropertyOrdering &ordering, const QtProtobufPrivate::QProtobufPropertyOrderingInfo &fieldInfo) const
此函数将具有定义的 ordering 和 fieldInfo 的已注册 Protobuf 消息 message 看作为对象并序列化为 QByteArray。 message 必须不能是 nullptr
。
您不应直接调用此函数。
相关非成员函数
template <typename T> void qRegisterProtobufEnumType()
在 QtProtobuf 全局序列化器注册表中注册枚举类型 T
的序列器。
该函数通常由生成的代码调用。
模板 <typename K, typename V> void qRegisterProtobufMapType()
注册 Protobuf 映射类型 K
和 V
。其中 V
必须是 QProtobufMessage 类型。此函数通常由生成代码调用。
template <typename T> void qRegisterProtobufType()
注册 Protobuf 类型 T。此函数通常由生成代码调用。
© 2024 Qt 公司 Ltd. 此处的文档贡献归其各自所有者所有。所提供的文档受免费软件基金会发布的 GNU Free Documentation License 版本 1.3 条款的约束。Qt 以及相应的标志是芬兰及/或其他国家的 The Qt Company Ltd. 的注册商标。所有其他商标均为其各自所有者的财产。