nl::Weave::TLV::Utilities

此命名空间包含用于管理和使用 Weave TLV 的类型和实用程序接口。

摘要

类型定义符

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)
遍历 aReader 引用的 TLV 数据,并在 aContext 的上下文中为每个已访问的 TLV 元素调用 aHandler
Iterate(const TLVReader & aReader, IterateHandler aHandler, void *aContext)
遍历 aReader 引用的 TLV 数据,并在 aContext 的上下文中为每个已访问的 TLV 元素调用 aHandler
Iterate(const TLVReader & aReader, IterateHandler aHandler, void *aContext, const bool aRecurse)
遍历 aReader 引用的 TLV 数据,并在 aContext 的上下文中为每个已访问的 TLV 元素调用 aHandler

结构体

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

类型定义符

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 表示所需元素尚未找到,所有其他值表示应终止 Saerch。
[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 表示所需元素尚未找到,所有其他值表示应终止 Saerch。
[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
)

遍历 aReader 引用的 TLV 数据,并在 aContext 的上下文中为每个已访问的 TLV 元素调用 aHandler

如果 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
)

遍历 aReader 引用的 TLV 数据,并在 aContext 的上下文中为每个已访问的 TLV 元素调用 aHandler

如果 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
)

遍历 aReader 引用的 TLV 数据,并在 aContext 的上下文中为每个已访问的 TLV 元素调用 aHandler

如果 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