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 が存在するか含まれておらず、かつ 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 はハンドルとその子孫をオーバーライドしません。アプリは、このハンドルまたはその祖先の 1 つについて、更新操作の結果とともに kEvent_OnUpdateComplete コールバックを受け取ります。変更は条件付きの場合もあれば、そうでない場合もあります。トレイト インスタンスのローカルコピーがパブリッシャー自体または別のクライアントによって変更されたため、パブリッシャーと同期しなくなった場合、条件付きデータの更新は失われます。条件付きミューテーションと無条件ミューテーションは、同じトレイト インスタンスで同時にはサポートされていません。

詳細
パラメータ
[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
メモリが 1 つもなければパスを保存できません。
Other
エラーに応じた WEAVE_ERROR コード。

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

ロック解除

void Unlock(
  SubscriptionClient *apSubClient
)