nl::Weave::TLV::Utilities

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

Сводка

Typedefs

IterateHandler)(const TLVReader &aReader, size_t aDepth, void *aContext) typedef

Функции

Count(const TLVReader & aReader, size_t & aCount)
Подсчитайте количество элементов TLV в указанном средстве чтения TLV, спускаясь в массивы или структуры.
Count(const TLVReader & aReader, size_t & aCount, const bool aRecurse)
Подсчитайте количество элементов TLV в указанном средстве чтения TLV, при необходимости спускаясь в массивы или структуры.
CountHandler(const TLVReader & aReader, size_t aDepth, void *aContext)
Увеличивайте значение счетчика при итерации по данным TLV.
Find(const TLVReader & aReader, const uint64_t & aTag, TLVReader & aResult)
Поиск указанного тега в предоставленном средстве чтения TLV.
Find(const TLVReader & aReader, const uint64_t & aTag, TLVReader & aResult, const bool aRecurse)
Поиск указанного тега в предоставленном средстве чтения TLV с возможностью перехода к массивам или структурам.
Find(const TLVReader & aReader, IterateHandler aPredicate, void *aContext, TLVReader & aResult)
Поиск первого элемента, соответствующего предикату, в средстве чтения TLV, спускающемся в массивы или структуры.
Find(const TLVReader & aReader, IterateHandler aPredicate, void *aContext, TLVReader & aResult, const bool aRecurse)
Поиск первого элемента, соответствующего предикату, в средстве чтения TLV с возможностью перехода к массивам или структурам.
FindHandler(const TLVReader & aReader, size_t aDepth, void *aContext)
Поиск указанного тега в предоставленном средстве чтения TLV.
FindPredicateHandler(const TLVReader & aReader, size_t aDepth, void *aContext)
Iterate(TLVReader & aReader, size_t aDepth, IterateHandler aHandler, void *aContext, bool aRecurse)
Переберите данные TLV, на которые ссылается aReader, и вызовите aHandler для каждого посещенного элемента TLV в контексте aContext.
Iterate(const TLVReader & aReader, IterateHandler aHandler, void *aContext)
Перебирает данные TLV, на которые ссылается aReader, и вызывает aHandler для каждого посещенного элемента TLV в контексте aContext.
Iterate(const TLVReader & aReader, IterateHandler aHandler, void *aContext, const bool aRecurse)
Переберите данные TLV, на которые ссылается aReader, и вызовите aHandler для каждого посещенного элемента TLV в контексте aContext.

Структуры

nl::Weave::TLV::Utilities::FindContext
nl::Weave::TLV::Utilities::FindPredicateContext

Typedefs

IterateHandler

WEAVE_ERROR(* IterateHandler)(const TLVReader &aReader, size_t aDepth, void *aContext)

Функции

Количество

WEAVE_ERROR Count(
  const TLVReader & aReader,
  size_t & aCount
)

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

Сведения
Параметры
[in] aReader
Ссылка только для чтения на средство чтения TLV, для которого нужно подсчитать количество элементов TLV.
[in,out] aCount
Ссылка на хранилище для возвращенного количества. Перед подсчетом инициализируется значением 0, а после успешного подсчета – количеством элементов.
Возвращаемые значения
WEAVE_NO_ERROR
При успешном выполнении.

Количество

WEAVE_ERROR Count(
  const TLVReader & aReader,
  size_t & aCount,
  const bool aRecurse
)

Подсчитывает количество элементов TLV в указанном средстве чтения TLV, при необходимости спускаясь в массивы или структуры.

Сведения
Параметры
[in] aReader
Ссылка только для чтения на средство чтения TLV, для которого нужно подсчитать количество элементов TLV.
[in,out] aCount
Ссылка на хранилище для возвращенного количества. Перед подсчетом инициализируется значением 0, а после успешного подсчета – количеством элементов.
[in] aRecurse
Логическое значение, указывающее, нужно ли спускаться по любым обнаруженным массивам или структурам (true) или нет (false).
Возвращаемые значения
WEAVE_NO_ERROR
При успешном выполнении.

CountHandler

WEAVE_ERROR CountHandler(
  const TLVReader & aReader,
  size_t aDepth,
  void *aContext
)

Увеличивайте значение счетчика при итерации по данным TLV.

Сведения
Параметры
[in] aReader
Ссылка на средство чтения TLV, содержащее данные TLV, для подсчета количества элементов TLV.
[in] aDepth
Текущая глубина данных TLV.
[in,out] aContext
Указатель на контекст, относящийся к обработчику, который является указателем на хранилище для значения счетчика.
Возвращаемые значения
WEAVE_NO_ERROR
При успешном выполнении.
WEAVE_ERROR_INVALID_ARGUMENT
Если aContext имеет значение NULL.

Найти

WEAVE_ERROR Find(
  const TLVReader & aReader,
  const uint64_t & aTag,
  TLVReader & aResult
)

Поиск указанного тега в предоставленном средстве чтения TLV.

Сведения
Параметры
[in] aReader
Ссылка только для чтения на средство чтения TLV, в котором нужно найти указанный тег.
[in] aTag
Ссылка только для чтения на тег TLV, который нужно найти.
[out] aResult
Ссылка на хранилище для считывателя TLV, который в случае успеха будет размещен на указанном теге.
Возвращаемые значения
WEAVE_NO_ERROR
При успешном выполнении.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Если указанный тег aTag не найден.

Найти

WEAVE_ERROR Find(
  const TLVReader & aReader,
  const uint64_t & aTag,
  TLVReader & aResult,
  const bool aRecurse
)

Поиск указанного тега в предоставленном средстве чтения TLV с возможностью перехода к массивам или структурам.

Сведения
Параметры
[in] aReader
Ссылка только для чтения на средство чтения TLV, в котором нужно найти указанный тег.
[in] aTag
Ссылка только для чтения на тег TLV, который нужно найти.
[out] aResult
Ссылка на хранилище для считывателя TLV, который в случае успеха будет размещен на указанном теге.
[in] aRecurse
Логическое значение, указывающее, нужно ли спускаться по любым обнаруженным массивам или структурам (true) или нет (false).
Возвращаемые значения
WEAVE_NO_ERROR
При успешном выполнении.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Если указанный тег aTag не найден.

Найти

WEAVE_ERROR Find(
  const TLVReader & aReader,
  IterateHandler aPredicate,
  void *aContext,
  TLVReader & aResult
)

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

aPredicate применяется к каждому посещенному элементу TLV; aPredicate должен возвращать WEAVE_ERROR_MAX для совпадающих элементов, WEAVE_NO_ERROR для несовпадающих элементов и любое другое значение для завершения поиска.

Сведения
Параметры
[in] aReader
Ссылка только для чтения на средство чтения TLV, в котором нужно найти элемент, соответствующий предикату.
[in] aPredicate
Предикат, который будет применяться к каждому элементу TLV. Чтобы обеспечить повторное использование кода, aPredicate имеет тип IterateHandler. Возвращаемое значение aPredicate управляет поиском: WEAVE_ERROR_MAX сигнализирует о том, что нужный элемент найден, WEAVE_NO_ERROR сигнализирует о том, что нужный элемент не найден, а все остальные значения сигнализируют о том, что поиск должен быть прекращен.
[in] aContext
Необязательный указатель на контекстные данные, предоставленные вызывающим абонентом.
[out] aResult
Ссылка на хранилище для считывателя TLV, который в случае успеха будет размещен на указанном теге.
Возвращаемые значения
WEAVE_NO_ERROR
При успешном выполнении.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Если указанный aPredicate не нашел указанный элемент

Найти

WEAVE_ERROR Find(
  const TLVReader & aReader,
  IterateHandler aPredicate,
  void *aContext,
  TLVReader & aResult,
  const bool aRecurse
)

Поиск первого элемента, соответствующего предикату, в средстве чтения TLV с возможностью перехода к массивам или структурам.

aPredicate применяется к каждому посещенному элементу TLV; aPredicate должен возвращать WEAVE_ERROR_MAX для совпадающих элементов, WEAVE_NO_ERROR для несовпадающих элементов и любое другое значение для завершения поиска.

Сведения
Параметры
[in] aReader
Ссылка только для чтения на средство чтения TLV, в котором нужно найти элемент, соответствующий предикату.
[in] aPredicate
Предикат, который будет применяться к каждому элементу TLV. Чтобы обеспечить повторное использование кода, aPredicate имеет тип IterateHandler. Возвращаемое значение aPredicate управляет поиском: WEAVE_ERROR_MAX сигнализирует о том, что нужный элемент найден, WEAVE_NO_ERROR сигнализирует о том, что нужный элемент не найден, а все остальные значения сигнализируют о том, что поиск должен быть прекращен.
[in] aContext
Необязательный указатель на контекстные данные, предоставленные вызывающим абонентом.
[out] aResult
Ссылка на хранилище для считывателя TLV, который в случае успеха будет размещен на указанном теге.
[in] aRecurse
Логическое значение, указывающее, нужно ли спускаться по всем обнаруженным массивам или структурам (true) или нет (false).
Возвращаемые значения
WEAVE_NO_ERROR
При успешном выполнении.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Если указанный aPredicate не нашел указанный элемент.

FindHandler

WEAVE_ERROR FindHandler(
  const TLVReader & aReader,
  size_t aDepth,
  void *aContext
)

Поиск указанного тега в предоставленном средстве чтения TLV.

Сведения
Параметры
[in] aReader
Ссылка только для чтения на средство чтения TLV, в котором нужно найти указанный тег.
[in] aDepth
Текущая глубина данных TLV.
[in,out] aContext
Указатель на контекст, относящийся к обработчику.
Возвращаемые значения
WEAVE_NO_ERROR
При успешном выполнении.
WEAVE_ERROR_INVALID_ARGUMENT
Если aContext имеет значение NULL.
WEAVE_ERROR_MAX
Если указанный тег найден.

FindPredicateHandler

WEAVE_ERROR FindPredicateHandler(
  const TLVReader & aReader,
  size_t aDepth,
  void *aContext
)

Поэтапная настройка и тестирование

WEAVE_ERROR Iterate(
  TLVReader & aReader,
  size_t aDepth,
  IterateHandler aHandler,
  void *aContext,
  bool aRecurse
)

Перебирает данные TLV, на которые ссылается aReader, и вызывает aHandler для каждого посещенного элемента TLV в контексте aContext.

Итерация прерывается, если aHandler возвращает что-либо, кроме WEAVE_NO_ERROR.

Сведения
Параметры
[in] aReader
Ссылка на средство чтения TLV, содержащее данные TLV для итерации.
[in] aDepth
Текущая глубина данных TLV.
[in] aHandler
Обратный вызов, который нужно вызвать для текущего элемента TLV.
[in,out] aContext
Необязательный указатель на контекстные данные, предоставленные вызывающим абонентом.
[in] aRecurse
Логическое значение, указывающее, нужно ли спускаться по любым обнаруженным массивам или структурам (true) или нет (false).
Возвращаемые значения
WEAVE_END_OF_TLV
При успешном переходе к концу кодировки TLV или к концу контейнера TLV.
The
последнее значение, возвращенное aHandler, если оно отличается от WEAVE_NO_ERROR.

Поэтапная настройка и тестирование

WEAVE_ERROR Iterate(
  const TLVReader & aReader,
  IterateHandler aHandler,
  void *aContext
)

Перебирает данные TLV, на которые ссылается aReader, и вызывает aHandler для каждого посещенного элемента TLV в контексте aContext.

Итерация прерывается, если aHandler возвращает что-либо, кроме WEAVE_NO_ERROR.

Сведения
Параметры
[in] aReader
Ссылка на средство чтения TLV, содержащее данные TLV для итерации.
[in] aHandler
Обратный вызов, который нужно вызвать для текущего элемента TLV.
[in,out] aContext
Необязательный указатель на контекстные данные, предоставленные вызывающим абонентом.
Возвращаемые значения
WEAVE_END_OF_TLV
При успешном переходе к концу кодировки TLV или к концу контейнера TLV.
WEAVE_ERROR_INVALID_ARGUMENT
Если aHandler имеет значение NULL.
The
Последнее значение, возвращенное aHandler, если оно отличается от WEAVE_NO_ERROR.

Поэтапная настройка и тестирование

WEAVE_ERROR Iterate(
  const TLVReader & aReader,
  IterateHandler aHandler,
  void *aContext,
  const bool aRecurse
)

Переберите данные TLV, на которые ссылается aReader, и вызовите aHandler для каждого посещенного элемента TLV в контексте aContext.

Итерация прерывается, если aHandler возвращает что-либо, кроме WEAVE_NO_ERROR.

Сведения
Параметры
[in] aReader
Ссылка на средство чтения TLV, содержащее данные TLV для итерации.
[in] aHandler
Обратный вызов, который нужно вызвать для текущего элемента TLV.
[in,out] aContext
Необязательный указатель на контекстные данные, предоставленные вызывающим абонентом.
[in] aRecurse
Логическое значение, указывающее, нужно ли спускаться по любым обнаруженным массивам или структурам (true) или нет (false).
Возвращаемые значения
WEAVE_END_OF_TLV
При успешном переходе к концу кодировки TLV или к концу контейнера TLV.
WEAVE_ERROR_INVALID_ARGUMENT
Если aHandler имеет значение NULL.
The
последнее значение, возвращенное aHandler, если оно отличается от WEAVE_NO_ERROR.