<QtCborCommon>
<QtCborCommon> 头文件包含流类 (QCborStreamReader 和 QCborStreamWriter) 和 QCborValue 的公共定义。 更多...
头文件 | #include <QtCborCommon> |
类型
枚举类 | QCborKnownTags { DateTimeString, UnixTime_t, PositiveBignum, NegativeBignum, Decimal, …, Signature } |
枚举类 | QCborSimpleType { False, True, Null, Undefined } |
枚举类 | QCborTag { } |
另请参阅QCborError.
类型文档
枚举类 QCborKnownTags
此枚举包含 CBOR 标签列表,在 Qt 实现时已知的。此列表并不完整,仅包含由 RFC 支持或由 Qt 实现专门使用的标签。
权威列表由 IANA 在 CBOR 标签注册表 中维护。
常量 | 值 | 描述 |
---|---|---|
QCborKnownTags::DateTimeString | 0 | 日期和时间字符串,格式根据 RFC 3339,由 RFC 4287 进行精细化。与 Qt::ISODate 和 Qt::ISODateWithMs 格式相同。 |
QCborKnownTags::UnixTime_t | 1 | 自 1970-01-01T00:00Z 以来经过的秒数的数值表示。 |
QCborKnownTags::PositiveBignum | 2 | 任意长度的正数,以网络字节顺序编码的字节数组表示。例如,数字 264 由包含字值 0x01 并随后跟随 8 个零的字节数组表示。 |
QCborKnownTags::NegativeBignum | 3 | 任意长度的负数,编码为该数字的绝对值减一。例如,包含字值 0x02 并随后跟随 8 个零的字节数组表示的数字是 -265 - 1。 |
QCborKnownTags::Decimal | 4 | 十进制分数,编码为两个整数的数组:第一个是 10 的幂的指数,第二个是整数尾数。值 273.15 会编码为数组 [-2, 27315] 。 |
QCborKnownTags::Bigfloat | 5 | 类似于 Decimal,但指数是 2 的幂。 |
QCborKnownTags::COSE_Encrypt0 | 16 | 根据 RFC 8152(CBOR 对象签名和加密)指定的 Encrypt0 映射。 |
QCborKnownTags::COSE_Mac0 | 17 | 根据 RFC 8152(CBOR 对象签名和加密)指定的 Mac0 映射。 |
QCborKnownTags::COSE_Sign1 | 18 | 根据 RFC 8152(CBOR 对象签名和加密)指定的 Sign1 映射。 |
QCborKnownTags::ExpectedBase64url | 21 | 指示字节序列应使用 Base64url 进行编码,如果将流转换为 JSON。 |
QCborKnownTags::ExpectedBase64 | 22 | 指示在将流转换为JSON时,应使用Base64对字节数组进行编码。 |
QCborKnownTags::ExpectedBase16 | 23 | 指示在将流转换为JSON时,应使用Base16(十六进制)对字节数组进行编码。 |
QCborKnownTags::EncodedCbor | 24 | 指示字节数组包含CBOR流。 |
QCborKnownTags::Url | 32 | 指示字符串包含URL。 |
QCborKnownTags::Base64url | 33 | 指示字符串包含使用Base64url编码的数据。 |
QCborKnownTags::Base64 | 34 | 指示字符串包含使用Base64编码的数据。 |
QCborKnownTags::RegularExpression | 35 | 指示字符串包含Perl兼容的正则表达式模式。 |
QCborKnownTags::MimeMessage | 36 | 指示字符串包含MIME消息(根据RFC 2045)。 |
QCborKnownTags::Uuid | 37 | 指示字节数组包含UUID。 |
QCborKnownTags::COSE_Encrypt | 96 | 根据RFC 8152(CBOR对象签名和加密)指定的Encrypt 映射。 |
QCborKnownTags::COSE_Mac | 97 | 根据RFC 8152(CBOR对象签名和加密)指定的Mac 映射。 |
QCborKnownTags::COSE_Sign | 98 | 根据RFC 8152(CBOR对象签名和加密)指定的Sign 映射。 |
QCborKnownTags::Signature | 55799 | 不改变解析;此标签可以作为CBOR流的顶层标签,用作文件头。 |
以下标签在解码期间由QCborValue进行解析,并将生成具有扩展Qt类型的对象;它将在编码相同的扩展类型时使用这些标签。
常量 | 值 | 描述 |
---|---|---|
QCborKnownTags::DateTimeString | 0 | QDateTime |
QCborKnownTags::UnixTime_t | 1 | QDateTime(仅在解码中) |
QCborKnownTags::Url | 32 | QUrl |
QCborKnownTags::Uuid | 37 | QUuid |
此外,如果包含QByteArray的QCborValue使用之一ExpectedBase64url
、ExpectedBase64
或ExpectedBase16
进行标记,则QCborValue将在转换为JSON时使用预期的编码(请参阅QCborValue::toJsonValue)。
参阅QCborTag、QCborStreamWriter::append(QCborTag)、QCborStreamReader::isTag()、QCborStreamReader::toTag()、QCborValue::isTag()和QCborValue::tag()。
枚举类 QCborSimpleType
此枚举包含CBOR的“简单类型”。简单类型从0到255,是不带任何进一步值的类型。
以下值目前已知
常量 | 值 | 描述 |
---|---|---|
QCborSimpleType::False | 20 | 一个“false”布尔值。 |
QCborSimpleType::True | 21 | 一个“true”布尔值。 |
QCborSimpleType::Null | 22 | 值不存在(null)。 |
QCborSimpleType::Undefined | 23 | 缺失或删除的值,通常是一个错误。 |
Qt CBOR API支持对任何简单类型进行编码和解码,无论是上述之一还是任何其他值。
应用程序只能在已发布相应规范的情况下使用其他值,否则远程的解释和验证可能会失败。保留值24到31,不得使用。
当前权威列表由IANA维护在简单值注册处。
参阅QCborStreamWriter::append(QCborSimpleType)、QCborStreamReader::isSimpleType()、QCborStreamReader::toSimpleType()、QCborValue::isSimpleType()和QCborValue::toSimpleType。
枚举类 QCborTag
此枚举没有任何枚举值,仅用作提供带有 CBOR 标签的类型安全访问。
CBOR 标签是附加到通用 CBOR 类型上的 64 位数字,以提供进一步的语义意义。QCborTag 可以由 QCborKnownTags 中的枚举创建或直接通过提供数值表示创建。
例如,以下代码创建了一个包含带有标签 2 的字节数组的 QCborValue。
QCborValue(QCborTag(2), QByteArray("\x01\0\0\0\0\0\0\0\0", 9));
另请参阅QCborKnownTags、QCborStreamWriter::append(QCborTag)、QCborStreamReader::isTag()、QCborStreamReader::toTag()、QCborValue::isTag() 和 QCborValue::tag()。
© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。本提供的文档许可协议下公布的文档受 GNU 自由文档许可证 1.3 版 的条款约束,该许可证由自由软件基金会发布。Qt 及其相应标志是 The Qt Company Ltd 在芬兰以及其他国家和地区的商标。所有其他商标均为其各自所有者所有。