nl ::織り方::プロファイル:: 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
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であるか存在しない場合、TDMはその子に対してGetDataを呼び出しません。

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

詳細
パラメーター
[in] aHandle
問題のPropertyPathHandle。
[in] aTagToWrite
aHandleに書き込むタグ。
[in,out] aWriter
書くために作家のTLVに要素を。
[out] aIsNull
aHandleは無効になっていますか?はいの場合、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
パスを保存するメモリがない場合。
Other
失敗に応じてWEAVE_ERRORコード。

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

ロックを解除する

void Unlock(
  SubscriptionClient *apSubClient
)