<QtCborCommon>
В заголовке <QtCborCommon> содержатся определения, общие как для потоковых классов (QCborStreamReader и QCborStreamWriter), так и для QCborValue. Подробнее...
Классы
| класс | QCborError |
Типы
| перечисление | QCborKnownTags { DateTimeString, UnixTime_t, PositiveBignum, NegativeBignum, ..., Signature } |
| перечисление | QCborSimpleType { False, True, Null, Undefined } |
| перечисление | QCborTag { } |
Классы
класс QCborError
Класс QCborError хранит информацию об ошибке, возникшей при разборе или валидации потока CBOR.
Примечание: Все функции в этом классе являются перевзойдёнными.
Этот класс был представлен в Qt 5.12.
См. также QCborStreamReader, QCborValue и QCborParserError.
Документация типов
перечисление QCborKnownTags
Этот перечисление содержит список тегов CBOR, известных на момент реализации Qt. Этот список не является полным и содержит только те теги, которые либо поддерживаются RFC, либо используются в реализации Qt.
Авторитетный список поддерживается IANA в реестре тегов CBOR.
| Константа | Значение | Описание |
|---|---|---|
DateTimeString |
0 |
Строка даты и времени, отформатированная в соответствии с RFC 3339, как уточнено в RFC 4287. Это тот же формат, что и Qt::ISODate и Qt::ISODateWithMs. |
UnixTime_t |
1 |
Числовое представление секунд, прошедших с 1970-01-01T00:00Z. |
PositiveBignum |
2 |
Положительное число произвольной длины, закодированное как массив байтов в сетевом порядке байтов. Например, число 264 представлено массивом байтов, содержащим значение байта 0x01, за которым следуют 8 нулевых байтов. |
NegativeBignum |
3 |
Отрицательное число произвольной длины, закодированное как абсолютное значение этого числа минус один. Например, массив байтов, содержащий значение байта 0x02, за которым следуют 8 нулевых байтов, представляет число -265 - 1. |
Decimal |
4 |
Десятичная дробь, закодированная как массив двух целых чисел: первое — показатель степени 10, второе — целая мантисса. Значение 273,15 будет закодировано как массив [-2, 27315]. |
Bigfloat |
5 |
Аналогично Decimal, но показатель степени — это степень двойки. |
COSE_Encrypt0 |
16 |
Карта Encrypt0, как указано в RFC 8152 (CBOR Object Signing and Encryption). |
COSE_Mac0 |
17 |
Карта Mac0, как указано в RFC 8152 (CBOR Object Signing and Encryption). |
COSE_Sign1 |
18 |
Карта Sign1, как указано в RFC 8152 (CBOR Object Signing and Encryption). |
ExpectedBase64url |
21 |
Указывает, что массив байтов должен быть закодирован с помощью Base64url, если поток преобразуется в JSON. |
ExpectedBase64 |
22 |
Указывает, что массив байтов должен быть закодирован с помощью Base64, если поток преобразуется в JSON. |
ExpectedBase16 |
23 |
Указывает, что массив байтов должен быть закодирован с использованием Base16 (hex), если поток преобразуется в JSON. |
EncodedCbor |
24 |
Указывает, что массив байтов содержит поток CBOR. |
Url |
32 |
Указывает, что строка содержит URL. |
Base64url |
33 |
Указывает, что строка содержит данные, закодированные с помощью Base64url. |
Base64 |
34 |
Указывает, что строка содержит данные, закодированные с помощью Base64. |
RegularExpression |
35 |
Указывает, что строка содержит шаблон регулярных выражений, совместимый с Perl. |
MimeMessage |
36 |
Указывает, что строка содержит сообщение MIME (в соответствии с https://tools.ietf.org/html/rfc2045){RFC 2045}. |
Uuid |
37 |
Указывает, что массив байтов содержит UUID. |
COSE_Encrypt |
96 |
Карта Encrypt, как указано в RFC 8152 (CBOR Object Signing and Encryption). |
COSE_Mac |
97 |
Карта Mac, как указано в RFC 8152 (CBOR Object Signing and Encryption). |
COSE_Sign |
98 |
Карта Sign, как указано в RFC 8152 (CBOR Object Signing and Encryption). |
Signature |
55799 |
Без изменений в интерпретации; этот тег может использоваться в качестве внешнего тега в потоке CBOR в качестве заголовка файла. |
Следующие теги интерпретируются QCborValue во время декодирования и приведут к созданию объектов со расширенными типами Qt, и будут использоваться при кодировании тех же расширенных типов.
| Константа | Значение | Описание |
|---|---|---|
DateTimeString |
0 |
QDateTime |
UnixTime_t |
1 |
QDateTime (только при декодировании) |
Url |
32 |
QUrl |
Uuid |
37 |
QUuid |
Кроме того, если QCborValue, содержащий QByteArray, помечен одним из ExpectedBase64url, ExpectedBase64 или ExpectedBase16, QCborValue будет использовать ожидаемую кодировку при преобразовании в JSON (см. QCborValue::toJsonValue).
См. такжеQCborTag, QCborStreamWriter::append(QCborTag), QCborStreamReader::isTag(), QCborStreamReader::toTag(), QCborValue::isTag(), и QCborValue::tag().
перечисление QCborSimpleType
Это перечисление содержит возможные "Простые типы" для CBOR. Простые типы находятся в диапазоне от 0 до 255 и являются типами, которые не несут дополнительного значения.
В настоящее время известны следующие значения:
| Константа | Значение | Описание |
|---|---|---|
False |
? | Логическое значение "false". |
True |
? | Логическое значение "true". |
Null |
? | Отсутствие значения (null). |
Undefined |
? | Отсутствующее или удалённое значение, обычно ошибка. |
API Qt CBOR поддерживает кодирование и декодирование любого Простого типа, будь то один из указанных выше или любое другое значение.
Приложения должны использовать только дополнительные значения, если соответствующий стандарт был опубликован, в противном случае интерпретация и проверка удалённым устройством могут не удаться. Значения с 24 по 31 зарезервированы и не должны использоваться.
Текущий авторитетный список поддерживается IANA в реестре простых значений.
См. также QCborStreamWriter::append(QCborSimpleType), QCborStreamReader::isSimpleType(), QCborStreamReader::toSimpleType(), QCborValue::isSimpleType(), и QCborValue::toSimpleType().
enum 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-5.12/qtcborcommon.html