Spec-Zone.ru › Qt 5.12

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

class="valuelist">
Константа Значение Описание
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, и будут использоваться при кодировании тех же расширенных типов.

class="valuelist">
Константа Значение Описание
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 и являются типами, которые не несут дополнительного значения.

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

class="valuelist">
Константа Значение Описание
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

Spec-Zone.ru

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