<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