<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::DateTimeString0日期和时间字符串,格式根据 RFC 3339,由 RFC 4287 进行精细化。与 Qt::ISODate 和 Qt::ISODateWithMs 格式相同。
QCborKnownTags::UnixTime_t1自 1970-01-01T00:00Z 以来经过的秒数的数值表示。
QCborKnownTags::PositiveBignum2任意长度的正数,以网络字节顺序编码的字节数组表示。例如,数字 264 由包含字值 0x01 并随后跟随 8 个零的字节数组表示。
QCborKnownTags::NegativeBignum3任意长度的负数,编码为该数字的绝对值减一。例如,包含字值 0x02 并随后跟随 8 个零的字节数组表示的数字是 -265 - 1。
QCborKnownTags::Decimal4十进制分数,编码为两个整数的数组:第一个是 10 的幂的指数,第二个是整数尾数。值 273.15 会编码为数组 [-2, 27315]
QCborKnownTags::Bigfloat5类似于 Decimal,但指数是 2 的幂。
QCborKnownTags::COSE_Encrypt016根据 RFC 8152(CBOR 对象签名和加密)指定的 Encrypt0 映射。
QCborKnownTags::COSE_Mac017根据 RFC 8152(CBOR 对象签名和加密)指定的 Mac0 映射。
QCborKnownTags::COSE_Sign118根据 RFC 8152(CBOR 对象签名和加密)指定的 Sign1 映射。
QCborKnownTags::ExpectedBase64url21指示字节序列应使用 Base64url 进行编码,如果将流转换为 JSON。
QCborKnownTags::ExpectedBase6422指示在将流转换为JSON时,应使用Base64对字节数组进行编码。
QCborKnownTags::ExpectedBase1623指示在将流转换为JSON时,应使用Base16(十六进制)对字节数组进行编码。
QCborKnownTags::EncodedCbor24指示字节数组包含CBOR流。
QCborKnownTags::Url32指示字符串包含URL。
QCborKnownTags::Base64url33指示字符串包含使用Base64url编码的数据。
QCborKnownTags::Base6434指示字符串包含使用Base64编码的数据。
QCborKnownTags::RegularExpression35指示字符串包含Perl兼容的正则表达式模式。
QCborKnownTags::MimeMessage36指示字符串包含MIME消息(根据RFC 2045)。
QCborKnownTags::Uuid37指示字节数组包含UUID。
QCborKnownTags::COSE_Encrypt96根据RFC 8152(CBOR对象签名和加密)指定的Encrypt映射。
QCborKnownTags::COSE_Mac97根据RFC 8152(CBOR对象签名和加密)指定的Mac映射。
QCborKnownTags::COSE_Sign98根据RFC 8152(CBOR对象签名和加密)指定的Sign映射。
QCborKnownTags::Signature55799不改变解析;此标签可以作为CBOR流的顶层标签,用作文件头。

以下标签在解码期间由QCborValue进行解析,并将生成具有扩展Qt类型的对象;它将在编码相同的扩展类型时使用这些标签。

常量描述
QCborKnownTags::DateTimeString0QDateTime
QCborKnownTags::UnixTime_t1QDateTime(仅在解码中)
QCborKnownTags::Url32QUrl
QCborKnownTags::Uuid37QUuid

此外,如果包含QByteArrayQCborValue使用之一ExpectedBase64urlExpectedBase64ExpectedBase16进行标记,则QCborValue将在转换为JSON时使用预期的编码(请参阅QCborValue::toJsonValue)。

参阅QCborTagQCborStreamWriter::append(QCborTag)、QCborStreamReader::isTag()、QCborStreamReader::toTag()、QCborValue::isTag()和QCborValue::tag()。

枚举类 QCborSimpleType

此枚举包含CBOR的“简单类型”。简单类型从0到255,是不带任何进一步值的类型。

以下值目前已知

常量描述
QCborSimpleType::False20一个“false”布尔值。
QCborSimpleType::True21一个“true”布尔值。
QCborSimpleType::Null22值不存在(null)。
QCborSimpleType::Undefined23缺失或删除的值,通常是一个错误。

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));

另请参阅QCborKnownTagsQCborStreamWriter::append(QCborTag)、QCborStreamReader::isTag()、QCborStreamReader::toTag()、QCborValue::isTag() 和 QCborValue::tag()。

© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。本提供的文档许可协议下公布的文档受 GNU 自由文档许可证 1.3 版 的条款约束,该许可证由自由软件基金会发布。Qt 及其相应标志是 The Qt Company Ltd 在芬兰以及其他国家和地区的商标。所有其他商标均为其各自所有者所有。