QAbstractProtobufSerializer Class
QAbstractProtobufSerializer 类是表示序列化/反序列化基本功能的接口。更多
头文件: | #include <QAbstractProtobufSerializer> |
CMake.QAbstractProtobufSerializer 类 | find_package(Qt6 REQUIRED COMPONENTS Protobuf) target_link_libraries(mytarget PRIVATE Qt6::Protobuf) |
自 | Qt 6.5 |
继承于 |
注意:该类中的所有函数都是可重入的。
公共类型
(since 6.8) enum class | Error { None, InvalidHeader, UnknownType, UnexpectedEndOfStream, InvalidFormat } |
公共函数
virtual | ~QAbstractProtobufSerializer() |
bool | deserialize(QProtobufMessage *message, QByteArrayView data) const |
(since 6.8) virtual QAbstractProtobufSerializer::Error | lastError() const = 0 |
(since 6.8) virtual QString | lastErrorString() const = 0 |
QByteArray | serialize(const QProtobufMessage *message) const |
宏
详细说明
QProtobufSerializer 类为继承于QProtobufMessage 的实现 protobuf 消息的类注册序列化器/反序列化器。这些类是基于.proto
文件,使用 CMake 函数qt_add_protobuf或直接运行qtprotobufgen自动生成的。
该类应作为特定序列化器的基础。handlers 属性包含所有特定于消息的序列化器,应在序列化/解序列化时使用。继承类应重新实现已注册的消息序列化/解序列化函数所使用的虚拟方法的范围。
成员类型文档
[since 6.8]
enum class QAbstractProtobufSerializer::Error
该枚举包含在反序列化过程中可能发生的错误。发生错误时,请调用lastErrorString() 获取可由人工读取的错误信息。
常量 | 值 | 说明 |
---|---|---|
QAbstractProtobufSerializer::Error::None | 0 | 未发生错误。 |
QAbstractProtobufSerializer::Error::InvalidHeader | 1 | 尝试解码报文头时出错。 |
QAbstractProtobufSerializer::Error::UnknownType | 2 | 在序列化或反序列化报文时,未找到报文字段的反序列化器。 |
QAbstractProtobufSerializer::Error::UnexpectedEndOfStream | 3 | 在反序列化报文时,数据流意外结束。 |
QAbstractProtobufSerializer::Error::InvalidFormat | 4 | 数据格式无效。例如,JSON 值与字段类型不匹配。 |
此枚举在 Qt 6.8 中引入。
成员函数文档
[virtual noexcept]
QAbstractProtobufSerializer::~QAbstractProtobufSerializer()
摧毁QAbstractProtobufSerializer.
bool QAbstractProtobufSerializer::deserialize(QProtobufMessage *message, QByteArrayView data) const
从QByteArray data 反序列化已注册的 Protobuf 消息message 。message 不得是nullptr
。如果反序列化成功,则返回true
,否则返回false
。
data 中的意外/未知属性将被跳过。
另请参阅 serialize() 。
[pure virtual, since 6.8]
QAbstractProtobufSerializer::Error QAbstractProtobufSerializer::lastError() const
返回序列化器实例的最后一次错误。
此函数在 Qt 6.8 中引入。
另请参阅 lastErrorString()。
[pure virtual, since 6.8]
QString QAbstractProtobufSerializer::lastErrorString() const
返回序列化器实例的最后一个错误字符串。
此函数在 Qt 6.8 中引入。
另请参阅 lastError()。
QByteArray QAbstractProtobufSerializer::serialize(const QProtobufMessage *message) const
将已注册的 Protobuf 消息message 序列化为QByteArray 。message 不能是nullptr
。
另请参阅 deserialize().
© 2025 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.