Google is committed to advancing racial equity for Black communities. See how.
Эта страница переведена с помощью Cloud Translation API.
Switch to English

nl :: Плетение :: TLV

Определения для работы с данными, закодированными в формате Weave TLV .

Резюме

Weave TLV - это обобщенный метод кодирования простых структурированных данных. Он имеет много общих свойств с широко используемым форматом сериализации JSON, будучи значительно более компактным по сети.

Перечисления

@71 перечислить
@73 перечислить
@74 {
AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
перечислить
@75 перечислить
TLVCommonProfiles {
kProfileIdNotSpecified = 0xFFFFFFFF
}
перечислить
TLVElementType перечислить
TLVFieldSize перечислить
TLVTagControl перечислить
TLVTagFields перечислить
TLVType перечислить
Перечисление, определяющее тип элемента TLV .

Переменные

kWeaveTLVCopyChunkSize = 16
const size_t
Копирует элемент TLV из объекта чтения в средство записи.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Функции

CommonTag (uint32_t tagNum)
uint64_t
Создает представление API общего тега TLV профиля.
ContextTag (uint8_t tagNum)
uint64_t
Создает представление API для контекстно-зависимого тега TLV .
GetTLVFieldSize (uint8_t type)
TLVFieldSize
IsContextTag (uint64_t tag)
bool
Возвращает истину, если предоставленный тег является контекстно-зависимым тегом.
IsProfileTag (uint64_t tag)
bool
Возвращает true, если предоставленный тег является тегом, зависящим от профиля.
IsSpecialTag (uint64_t tag)
bool
IsValidTLVType (uint8_t type)
bool
Возвращает истину, если указанный тип TLV действителен.
ProfileIdFromTag (uint64_t tag)
uint32_t
Возвращает идентификатор профиля из тега TLV .
ProfileNumFromTag (uint64_t tag)
uint16_t
Возвращает номер профиля из тега TLV .
ProfileTag (uint32_t profileId, uint32_t tagNum)
uint64_t
Создает API-представление тега TLV, зависящего от профиля, из идентификатора профиля и номера тега.
ProfileTag (uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Создает представление API для тега TLV, зависящего от профиля, из идентификатора поставщика, номера профиля и номера тега.
TLVFieldSizeToBytes (TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength (uint8_t type)
bool
Возвращает истину, если указанный тип TLV подразумевает наличие связанного поля длины.
TLVTypeHasValue (uint8_t type)
bool
Возвращает истину, если указанный тип TLV подразумевает наличие связанного поля значения.
TLVTypeIsContainer (uint8_t type)
bool
Возвращает истину, если указанный тип TLV является контейнером.
TLVTypeIsString (uint8_t type)
bool
Возвращает истину, если указанный тип TLV является UTF8 или байтовой строкой.
TagNumFromTag (uint64_t tag)
uint32_t
Возвращает номер тега из тега TLV .
VendorIdFromTag (uint64_t tag)
uint16_t
Возвращает идентификатор поставщика из тега TLV .

Классы

nl :: Weave :: TLV :: CircularTLVReader
nl :: Weave :: TLV :: CircularTLVWriter
nl :: Weave :: TLV :: TLVReader

Предоставляет эффективный анализатор памяти для данных, закодированных в формате Weave TLV .

nl :: Weave :: TLV :: TLVUpdater

Предоставляет унифицированный интерфейс чтения / записи для редактирования / добавления / удаления элементов в кодировке TLV .

nl :: Weave :: TLV :: TLVWriter

Предоставляет кодировщик с эффективным использованием памяти для записи данных в формате Weave TLV .

nl :: Weave :: TLV :: WeaveCircularTLVBuffer

WeaveCircularTLVBuffer предоставляет циклическое хранилище дляnl :: Weave :: TLV :: TLVWriter и nl :: Weave :: TLVTLVReader.

Пространства имён

nl :: Weave :: TLV :: Отладка

Это пространство имен включает типы и интерфейсы для отладки и регистрации Weave TLV .

nl :: Weave :: TLV :: Утилиты

Это пространство имен включает типы и служебные интерфейсы для управления и работы с Weave TLV .

Перечисления

@ 71

 @71

@ 73

 @73

@ 74

 @74
Характеристики
AnonymousTag

Значение, обозначающее элемент TLV , у которого нет тега (т. Е.

анонимный элемент).

@ 75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Характеристики
kProfileIdNotSpecified

Используется для обозначения отсутствия идентификатора профиля в переменной или члене.

По сути, это то же самое, что и значение kWeaveProfile_NotSpecified, определенное в WeaveProfiles.h.

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

Перечисление, определяющее тип элемента TLV .

Переменные

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Копирует элемент TLV из объекта чтения в средство записи.

Метод CopyElement () кодирует новый элемент TLV , тип и значение которого взяты из объектаTLVReader . При вызове метода ожидается, что предоставленный объект чтения будет расположен на исходном элементе TLV . Новый закодированный элемент будет иметь тот же тип и содержимое, что и входной контейнер, однако для тега будет установлен указанный аргумент. Если предоставленный элемент является контейнером TLV (структура, массив или путь), все содержимое контейнера будет скопировано.

Подробности
Параметры
[in] tag
Тег TLV, который должен быть закодирован с контейнером, или AnonymousTag если контейнер должен быть закодирован без тега. Значения тегов должны быть построены с одной из функций определения тегов ProfileTag () , ContextTag () или CommonTag () .
[in] reader
Ссылка на объектTLVReader, идентифицирующий предварительно закодированный элемент TLV , тип и значение которого должны быть скопированы.
Возвращаемые значения
WEAVE_NO_ERROR
Если метод удался.
WEAVE_ERROR_INCORRECT_STATE
Если поставляемый считыватель не расположен на элементе.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Если контейнерный писатель был открыт на текущем писателе и еще не закрыт.
WEAVE_ERROR_TLV_UNDERRUN
Если базовое кодирование TLV, связанное с предоставленным считывателем, закончилось преждевременно.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Если предоставленный считыватель обнаружил недопустимый или неподдерживаемый тип элемента TLV .
WEAVE_ERROR_INVALID_TLV_TAG
Если предоставленный считыватель обнаружил тег TLV в недопустимом контексте, или если предоставленный тег является недопустимым или несоответствующим в контексте, в котором записывается новый контейнер.
WEAVE_ERROR_BUFFER_TOO_SMALL
Если при записи значение превысит ограничение на максимальное количество байтов, указанное при инициализации модуля записи.
WEAVE_ERROR_NO_MEMORY
Если попытка выделить выходной буфер не удалась из-за нехватки памяти.
other
Другие ошибки Weave или платформы, возвращаемые сконфигурированными функциями GetNewBuffer () или FinalizeBuffer () или функцией GetNextBuffer (), связанной с объектом чтения.

sTagSizes

const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }

Функции

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Создает представление API общего тега TLV профиля.

Подробности
Параметры
[in] tagNum
Номер тега общего профиля, присвоенный тегу.
Возврат
64-битное целое число, представляющее тег.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Создает представление API для контекстно-зависимого тега TLV .

Подробности
Параметры
[in] tagNum
Номер тега, зависящий от контекста, присвоенный тегу.
Возврат
64-битное целое число, представляющее тег.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Возвращает истину, если предоставленный тег является контекстно-зависимым тегом.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Возвращает true, если предоставленный тег является тегом, зависящим от профиля.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Возвращает истину, если указанный тип TLV действителен.

Подробности
Возврат
true если указанный тип TLV действителен; в противном случае - false .

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Возвращает идентификатор профиля из тега TLV .

Подробности
Параметры
[in] tag
Представление в API тега TLV, зависящего от профиля.
Возврат
Идентификатор профиля.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Возвращает номер профиля из тега TLV .

Подробности
Параметры
[in] tag
Представление в API тега TLV, зависящего от профиля.
Возврат
Соответствующий номер профиля.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Создает API-представление тега TLV, зависящего от профиля, из идентификатора профиля и номера тега.

Подробности
Параметры
[in] profileId
Идентификатор профиля, в котором определен тег.
[in] tagNum
Номер тега для конкретного профиля, присвоенный тегу.
Возврат
64-битное целое число, представляющее тег.

ProfileTag

uint64_t ProfileTag(
  uint16_t vendorId,
  uint16_t profileNum,
  uint32_t tagNum
)

Создает представление API для тега TLV, зависящего от профиля, из идентификатора поставщика, номера профиля и номера тега.

Подробности
Параметры
[in] vendorId
Идентификатор поставщика, который определил тег.
[in] profileNum
Номер, присвоенный поставщиком профилю, в котором определен тег.
[in] tagNum
Номер тега для конкретного профиля, присвоенный тегу.
Возврат
64-битное целое число, представляющее тег.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Возвращает истину, если указанный тип TLV подразумевает наличие связанного поля длины.

Подробности
Возврат
true если указанный тип TLV подразумевает наличие связанного поля длины; в противном случае - false .

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Возвращает истину, если указанный тип TLV подразумевает наличие связанного поля значения.

Подробности
Возврат
true если указанный тип TLV подразумевает наличие связанного поля значения; в противном случае - false .

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Возвращает истину, если указанный тип TLV является контейнером.

Подробности
Возврат
true если указанный тип TLV является контейнером; в противном случае - false .

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Возвращает истину, если указанный тип TLV является UTF8 или байтовой строкой.

Подробности
Возврат
true если указанный тип TLV является UTF8 или байтовой строкой; в противном случае - false .

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Возвращает номер тега из тега TLV .

Подробности
Параметры
[in] tag
Представление API зависящего от профиля или контекста тега TLV .
Возврат
Соответствующий номер тега.
Смотрите также:
IsProfileTag () и IsContextTag ()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Возвращает идентификатор поставщика из тега TLV .

Подробности
Параметры
[in] tag
Представление в API тега TLV, зависящего от профиля.
Возврат
Связанный идентификатор поставщика.