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
リクエストがコンテナに通知されていない場合。
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
データ要素の取得と書き込みができません。