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)
透過 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

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 為空值。

尋找

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 為空值。
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
如果與 WEAVE_NO_ERROR 不同,aHandler 傳回的最後一個值

疊代

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
如果與 WEAVE_NO_ERROR 不同,aHandler 傳回的最後一個值

疊代

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
如果與 WEAVE_NO_ERROR 不同,aHandler 傳回的最後一個值