nl::Weave::Profiles::DataManagement_Current::TraitUpdatableDataSink

概要

継承

継承元:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

コンストラクタとデストラクタ

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

パブリック関数

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
ノードへのパスハンドル、TLV ライター、値が null かどうかを示すブール値を指定して、通知を作成するトレイトソースからデータを取得します。
GetSubscriptionClient() __OVERRIDE
virtual SubscriptionClient *
GetUpdateEncoder() __OVERRIDE
virtual UpdateEncoder *
IsUpdatableDataSink(void) __OVERRIDE
virtual bool
Lock(SubscriptionClient *apSubClient)
void
ReadData(TraitDataHandle aTraitDataHandle, PropertyPathHandle aHandle, uint64_t aTagToWrite, TLV::TLVWriter & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom)
SetSubscriptionClient(SubscriptionClient *apSubClient) __OVERRIDE
virtual WEAVE_ERROR
SetUpdateEncoder(UpdateEncoder *apEncoder) __OVERRIDE
virtual WEAVE_ERROR
SetUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle, bool aIsConditional)
指定された PropertyPathHandle がローカルに変更されていることを宣言します。
Unlock(SubscriptionClient *apSubClient)
void

パブリック関数

ClearUpdated

WEAVE_ERROR ClearUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle
)

GetData

virtual WEAVE_ERROR GetData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  bool & aIsNull,
  bool & aIsPresent
) __OVERRIDE

ノードへのパスハンドル、TLV ライター、値が null かどうかを示すブール値を指定して、通知を作成するトレイトソースからデータを取得します。

パスハンドルがリーフノードでない場合、TDM はライターへの値の書き込み(コンテナを開く、構造体を null にするなど)を処理します。非リーフノードが null または存在しない場合、TDM はその子の GetData を呼び出しません。

この関数は、null 許容、オプション、エフェメラル、またはリーフのハンドルに対してのみ呼び出されます。これらのオプションが有効になっているハンドルを持つトレイトには、aIsNull と aIsPresent にデータを入力する適切なロジックが実装されることが想定されます。

詳細
パラメータ
[in] aHandle
対象の PropertyPathHandle。
[in] aTagToWrite
aHandle 用に記述するタグ。
[in,out] aWriter
TLV 要素を書き込むライター。
[out] aIsNull
aHandle が null 化されていますか?「はい」の場合、TDM は null 要素を書き込みます。aHandle がリーフでない場合、TDM はその子をスキップします。
[out] aIsPresent
aHandle が存在するかリーフでない場合、TDM はパスとその子をスキップします。
戻り値
WEAVE_NO_ERROR
成功時。
other
データの取得とライターへの書き込みができませんでした。

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

ロック

void Lock(
  SubscriptionClient *apSubClient
)

ReadData

WEAVE_ERROR ReadData(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  TLV::TLVWriter & aWriter,
  PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom
)

SetSubscriptionClient

virtual WEAVE_ERROR SetSubscriptionClient(
  SubscriptionClient *apSubClient
) __OVERRIDE

SetUpdateEncoder

virtual WEAVE_ERROR SetUpdateEncoder(
  UpdateEncoder *apEncoder
) __OVERRIDE

SetUpdated

WEAVE_ERROR SetUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

指定された PropertyPathHandle がローカルに変更されていることを宣言します。

NotificationEngine では、更新リクエストの処理が完了するまでハンドルとその子孫がオーバーライドされません。アプリケーションは、このハンドルまたはそのいずれかの祖先の kEvent_OnUpdateComplete コールバックを、update オペレーションの結果とともに受け取ります。変更は条件付きであっても、そうでなくてもかまいません。トレイト インスタンスのローカルコピーがパブリッシャー自身または別のクライアントによって変更され、パブリッシャーと同期しなくなった場合、条件付きデータの更新は失われます。条件付きミューテーションと無条件ミューテーションは、同じトレイト インスタンスで同時にサポートされません。

詳細
パラメータ
[in] apSubClient
このシンクを管理する SubscriptionClient へのポインタ。
[in] aPropertyHandle
この Trait インスタンスの有効な PropertyPathHandle。
[in] aIsConditional
条件付き更新の場合は true、それ以外の場合は false です。
戻り値
WEAVE_NO_ERROR
トレイトの所有者に送信されるプロパティのセットにプロパティ ハンドルが正常に追加されたかどうか。
WEAVE_ERROR_INVALID_ARGUMENT
ハンドルまたは SubscriptionClient ポインタが無効な場合。
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
トレイト インスタンスがすでに反対の条件付けで更新されている場合。
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
aIsConditional が true であるのに、トレイト インスタンスに有効なバージョンがない場合。
WEAVE_ERROR_WDM_PATH_STORE_FULL
パスを保存するメモリがない場合、
Other
WEAVE_ERROR コードが出力されます。

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

ロック解除

void Unlock(
  SubscriptionClient *apSubClient
)