Spec-Zone.ru › Qt 6.0

<QtCborCommon>

Заголовок <QtCborCommon> содержит определения, общие как для потоковых классов (QCborStreamReader и QCborStreamWriter), так и для QCborValue. Подробнее...

Заголовок: #include <QtCborCommon>

Типы

enum class QCborKnownTags { DateTimeString, UnixTime_t, PositiveBignum, NegativeBignum, Decimal, …, Signature }
enum class QCborSimpleType { False, True, Null, Undefined }
enum class QCborTag { }

Подробное описание

См. также QCborError.

Описание типа

enum class QCborKnownTags

Это перечисление содержит список тегов CBOR, известных на момент реализации Qt. Этот список не претендует на полноту и содержит только те теги, которые либо поддерживаются RFC, либо специально используются реализацией Qt.

Авторitative список поддерживается 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 Карта Encrypt0 в соответствии с RFC 8152 (Подпись и шифрование объектов CBOR).
QCborKnownTags::COSE_Mac0 17 Карта Mac0 в соответствии с RFC 8152 (Подпись и шифрование объектов CBOR).
QCborKnownTags::COSE_Sign1 18 Карта Sign1 в соответствии с RFC 8152 (Подпись и шифрование объектов CBOR).
QCborKnownTags::ExpectedBase64url 21 Указывает, что массив байтов должен быть закодирован с помощью Base64url, если поток преобразуется в JSON.
QCborKnownTags::ExpectedBase64 22 Указывает, что массив байтов должен быть закодирован с помощью Base64, если поток преобразуется в JSON.
QCborKnownTags::ExpectedBase16 23 Указывает, что массив байтов должен быть закодирован с помощью Base16 (hex), если поток преобразуется в JSON.
QCborKnownTags::EncodedCbor 24 Указывает, что массив байтов содержит поток CBOR.
QCborKnownTags::Url 32 Указывает, что строка содержит URL-адрес.
QCborKnownTags::Base64url 33 Указывает, что строка содержит данные, закодированные с помощью Base64url.
QCborKnownTags::Base64 34 Указывает, что строка содержит данные, закодированные с помощью Base64.
QCborKnownTags::RegularExpression 35 Указывает, что строка содержит шаблон регулярного выражения, совместимого с Perl.
QCborKnownTags::MimeMessage 36 Указывает, что строка содержит сообщение MIME (в соответствии с https://tools.ietf.org/html/rfc2045){RFC 2045}.
QCborKnownTags::Uuid 37 Указывает, что массив байтов содержит UUID.
QCborKnownTags::COSE_Encrypt 96 Карта Encrypt в соответствии с RFC 8152 (Подпись и шифрование объектов CBOR).
QCborKnownTags::COSE_Mac 97 Карта Mac в соответствии с RFC 8152 (Подпись и шифрование объектов CBOR).
QCborKnownTags::COSE_Sign 98 Карта Sign в соответствии с RFC 8152 (Подпись и шифрование объектов CBOR).
QCborKnownTags::Signature 55799 Без изменения интерпретации; этот тег может использоваться как самый внешний тег в потоке CBOR в качестве заголовка файла.

Следующие теги интерпретируются QCborValue во время декодирования и будут создавать объекты с расширенными типами Qt, и он будет использовать эти теги при кодировании тех же расширенных типов.

Константа Значение Описание
QCborKnownTags::DateTimeString 0 QDateTime
QCborKnownTags::UnixTime_t 1 QDateTime (только при декодировании)
QCborKnownTags::Url 32 QUrl
QCborKnownTags::Uuid 37 QUuid

Кроме того, если QCborValue, содержащий QByteArray, помечен одним из ExpectedBase64url, ExpectedBase64 или ExpectedBase16, QCborValue будет использовать ожидаемую кодировку при преобразовании в JSON (см. QCborValue::toJsonValue).

См. также QCborTag, QCborStreamWriter::append(QCborTag), QCborStreamReader::isTag(), QCborStreamReader::toTag(), QCborValue::isTag() и QCborValue::tag().

enum class QCborSimpleType

Это перечисление содержит возможные «Простые типы» для CBOR. Простые типы находятся в диапазоне от 0 до 255 и представляют собой типы, которые не несут никакого дополнительного значения.

В настоящее время известны следующие значения:

Константа Значение Описание
QCborSimpleType::False 20 Логическое значение «false».
QCborSimpleType::True 21 Логическое значение «true».
QCborSimpleType::Null 22 Отсутствие значения (null).
QCborSimpleType::Undefined 23 Пропущенное или удаленное значение, обычно ошибка.

Qt CBOR API поддерживает кодирование и декодирование любого простого типа, независимо от того, является ли он одним из перечисленных выше или любым другим значением.

Приложения должны использовать дополнительные значения только в том случае, если опубликована соответствующая спецификация, в противном случае интерпретация и проверка удаленным узлом могут завершиться ошибкой. Значения от 24 до 31 зарезервированы и не должны использоваться.

Текущий authoritative список поддерживается IANA в реестре простых значений.

См. также QCborStreamWriter::append(QCborSimpleType), QCborStreamReader::isSimpleType(), QCborStreamReader::toSimpleType(), QCborValue::isSimpleType(), и QCborValue::toSimpleType().

enum class QCborTag

Этот перечисление не содержит перечислений и используется только для предоставления безопасного доступа к тегу CBOR.

Теги CBOR — это 64-битные числа, которые прикрепляются к общим типам CBOR, чтобы предоставить дополнительный семантический смысл. QCborTag может быть создан из перечисления, найденного в QCborKnownTags, или непосредственно путём предоставления числового представления.

Например, следующее создаёт QCborValue, содержащий массив байтов, помеченный тегом 2.

   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().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qtcborcommon.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API