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)
在進行中的路徑清單中加入私人路徑,並插入當下編碼後的路徑。

結構

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

這個結構會保留 EncodeRequest 方法的 I/O 引數。

公用函式

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()