nl::Weave::TLV::实用工具

此命名空间包含用于管理和处理 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::实用工具::FindContext
nl::Weave::TLV::实用工具::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 类型。谓词的返回值用于控制搜索: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 类型。谓词的返回值用于控制搜索: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
)

迭代 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