nl::Weave::Profiles::DataManagement_Current::UpdateEncoder

#include <src/lib/profiles/data-management/Current/UpdateEncoder.h>

這個物件會對 WDM UpdateRequest 和 PartialUpdateRequest 酬載進行編碼。

摘要

請注意,這兩種請求的格式相同;只能根據訊息類型區分,而訊息類型則不在這個物件的範圍內。

編碼會由 EncodeRequest 方法同步完成。另一種公開方法是 InsertInProgressUpdateItem,SchemaEngine 需要將字典推送回佇列時,會呼叫此方法。

建構函式和解構函式

UpdateEncoder()
~UpdateEncoder()

公開函式

EncodeRequest(Context & aContext)
將 WDM 更新要求酬載編碼。
InsertInProgressUpdateItem(const TraitPath & aItem)
在進行中的路徑清單中新增私人路徑,在目前的編碼之後插入該路徑。

Structs

nl::Weave::Profiles::DataManagement_Current::UpdateEncoder::Context

這個結構會將 I/O 引數保存至 EncodeRequest 方法。

公開函式

EncodeRequest

WEAVE_ERROR EncodeRequest(
  Context & aContext
)

將 WDM 更新要求酬載編碼。

請參閱 UpdateEncoder::Context。PacketBuffer 的資料長度只會在成功時更新,但不會保留緩衝區內容。

詳細資料
傳回值
WEAVE_NO_ERROR
至少一個 DataElement 已在酬載的 DataList 中編碼。
WEAVE_ERROR_BUFFER_TOO_SMALL
酬載無法容納第一個 DataElement
WEAVE_ERROR_INVALID_ARGUMENT
aContext 使用無效的值初始化。
other
較低層級物件 (TLVWriter、SchemaEngine 等) 的其他錯誤。

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

在進行中的路徑清單中新增私人路徑,在目前的編碼之後插入該路徑。

此方法旨在由 SchemaEngine 呼叫此方法,因為它會掃遍結構定義樹狀結構,且需要將字典傳回清單。

詳細資料
參數
[in] aItem
要插入的 TraitPath
傳回值
WEAVE_NO_ERROR
已成功插入項目。
WEAVE_NO_MEMORY
TraitPathStore 中沒有可插入的項目。

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()