nl::Weave::Profiles::DataManagement_Current::NotificationEngine::NotifyRequestBuilder

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

これは、通知を作成し、そのコンシューマーからのメッセージの構築と構造を抽象化するためのヘルパークラスを提供します。

概要

これは、MessageDef.cpp に用意されている同様のクラスのよりコンパクトなバージョンで、デバイスのフラッシュと RAM のニーズに敏感になることを目的としています。

パブリック関数

Checkpoint(TLV::TLVWriter & aPoint)
リクエストの状態を TLVWriter にチェックポイントを設定します。
EndDataList()
データリスト配列の作成を終了します。
EndEventList()
イベントリストの作成を終了します。
EndNotifyRequest()
通知の作成を終了します。
GetWriter(void)
Init(PacketBuffer *aBuf, TLV::TLVWriter *aWriter, SubscriptionHandler *aSubHandler, uint32_t aMaxPayloadSize)
ビルダーを初期化します。
MoveToState(NotifyRequestBuilderState aDesiredState)
メインの状態遷移関数。
Rollback(TLV::TLVWriter & aPoint)
リクエストの状態をチェックポイントが設定された TLVWriter にロールバックします。
StartDataList(void)
データリスト配列の作成を開始します。
StartEventList()
イベントリストの作成を開始します。
StartNotifyRequest()
通知の作成を開始します。
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
トレイトパスがあれば、そのパスに関連するデータ要素を書き出します。

パブリック関数

チェックポイント

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

リクエストの状態を TLVWriter にチェックポイントを設定します。

詳細
パラメータ
[out] aPoint
TLV ライターの状態をチェックポイントにするライター。
戻り値
WEAVE_NO_ERROR
成功時。

EndDataList

WEAVE_ERROR EndDataList()

データリスト配列の作成を終了します。

詳細
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
リクエストが DataList コンテナにない場合。
other
データリストの末尾を作成できません。

EndEventList

WEAVE_ERROR EndEventList()

イベントリストの作成を終了します。

詳細
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
リクエストが EventList コンテナにない。
other
データリストの末尾を作成できません。

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

通知の作成を終了します。

詳細
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
リクエストが Notify コンテナにない場合。
other
通知の最後を構築できません。

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

init

WEAVE_ERROR Init(
  PacketBuffer *aBuf,
  TLV::TLVWriter *aWriter,
  SubscriptionHandler *aSubHandler,
  uint32_t aMaxPayloadSize
)

ビルダーを初期化します。

1 回だけ呼び出します。

詳細
戻り値
WEAVE_NO_ERROR
成功時。
other
ビルダーを初期化できませんでした。

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

メインの状態遷移関数。

この関数は目的の状態(到達する通知リクエスト ビルダーのフェーズ)を取得し、リクエストをその状態に遷移します。望ましい状態が現在の状態と同じ場合、この関数は何も行いません。それ以外の場合は、PacketBuffer が割り当てられます(必要な場合)。この関数は、まずリクエストを最上位の通知リクエストに移行し(必要に応じて、通知リクエストの TLV 構造を開くか、現在の TLV データコンテナをクローズします)、次に適切な TLV データコンテナを開くか、包括的な Notify リクエストを閉じることで Notify リクエストを移行します。

詳細
パラメータ
aDesiredState
リクエストの遷移先の望ましい状態
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_NO_MEMORY
メモリ不足のため、この状態に移行できませんでした。
WEAVE_ERROR_INCORRECT_STATE
内部ステートマシンの破損。
other
ステートマシンがバッファに状態を記録できなかった場合は、実行時の問題ではなく、設計上の欠陥を示している可能性があります。

ロールバック

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

リクエストの状態をチェックポイントが設定された TLVWriter にロールバックします。

詳細
パラメータ
[in] aPoint
過去のある時点で状態をキャプチャしたライター
戻り値
WEAVE_NO_ERROR
成功時。

StartDataList

WEAVE_ERROR StartDataList(
  void
)

データリスト配列の作成を開始します。

詳細
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
リクエストが Notify コンテナにない場合。
other
データリストの先頭を構築できません。

StartEventList

WEAVE_ERROR StartEventList()

イベントリストの作成を開始します。

詳細
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
リクエストが Notify コンテナにない場合。
other
データリストの先頭を構築できません。

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

通知の作成を開始します。

詳細
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
リクエストがバッファの最上位レベルにない場合。
other
通知の最後を構築できません。

WriteDataElement

WEAVE_ERROR WriteDataElement(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aPropertyPathHandle,
  SchemaVersion aSchemaVersion,
  PropertyPathHandle *aMergeDataHandleSet,
  uint32_t aNumMergeDataHandles,
  PropertyPathHandle *aDeleteHandleSet,
  uint32_t aNumDeleteHandles
)

トレイトパスがあれば、そのパスに関連するデータ要素を書き出します。

呼び出し元は、オプションでハンドルセットを渡すこともできます。これにより、親プロパティ パスハンドルの直接の子ノードのセットを絞り込んだマージ操作を利用できます。

詳細
戻り値
WEAVE_NO_ERROR
成功時。
other
データ要素の取得と書き込みができません。