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
ペイロードの DataList で少なくとも 1 つの DataElement がエンコードされている。
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()