Spec-Zone.ru › Qt

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

Авторский список ведется 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 (в соответствии с 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 зарезервированы и не должны использоваться.

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

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

перечисление 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.2/qtcborcommon.html

Spec-Zone.ru

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