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 表示没有找到需要的元素,所有其他值表示应该终止相应元素。
[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
)

遍历 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 不同)