透過集合功能整理內容 你可以依據偏好儲存及分類內容。

NL::編織::簡介::數據管理_當前::特性可更新數據接收器

概括

遺產

繼承自:
  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作家,以及指示值是否為空或不存在布爾,擺脫,將建立一個通知特徵源中的數據。
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

公共職能

清除更新

WEAVE_ERROR ClearUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle
)

獲取數據

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

給定一個路徑處理一個節點, TLV作家,以及指示值是否為空或不存在布爾,擺脫,將建立一個通知特徵源中的數據。

如果路徑句柄不是葉節點,TDM 將處理向編寫器寫入值(如打開容器、取消結構等)。如果非葉節點為空或不存在,TDM 將不會為其子節點調用 GetData。

只會為可為空、可選、臨時或葉子的句柄調用此函數。期望是任何具有啟用這些選項的句柄的特徵都將實現適當的邏輯來填充 aIsNull 和 aIsPresent。

細節
參數
[in] aHandle
有問題的 PropertyPathHandle。
[in] aTagToWrite
要為 aHandle 寫入的標籤。
[in,out] aWriter
作家寫TLV元素。
[out] aIsNull
aHandle 是否無效?如果是,TDM 將寫入一個空元素。如果 aHandle 不是葉子,TDM 將跳過它的孩子。
[out] aIsPresent
aHandle 存在嗎?如果沒有並且 aHandle 不是葉子,TDM 將跳過路徑及其子節點。
返回值
WEAVE_NO_ERROR
關於成功。
other
無法檢索數據並將其寫入寫入器。

獲取訂閱客戶端

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

獲取更新編碼器

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

可更新數據接收器

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

void Lock(
  SubscriptionClient *apSubClient
)

讀取數據

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

設置訂閱客戶端

virtual WEAVE_ERROR SetSubscriptionClient(
  SubscriptionClient *apSubClient
) __OVERRIDE

設置更新編碼器

virtual WEAVE_ERROR SetUpdateEncoder(
  UpdateEncoder *apEncoder
) __OVERRIDE

設置更新

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

聲明給定的 PropertyPathHandle 具有本地修改。

NotificationEngine直到更新請求已經被處理將不會覆蓋手柄及其後代。應用程序將接收此句柄或其祖先之一的 kEvent_OnUpdateComplete 回調以及更新操作的結果。修改可以是有條件的,也可以是無條件的。如果特徵實例的本地副本不再與發布者同步,則條件數據更新將丟失,因為它被發布者本身或另一個客戶端改變了。同一特徵實例中不支持同時進行條件和無條件突變。

細節
參數
[in] apSubClient
的指針SubscriptionClient管理該水槽。
[in] aPropertyHandle
此 Trait 實例的任何有效 PropertyPathHandle。
[in] aIsConditional
條件更新為真;否則為假。
返回值
WEAVE_NO_ERROR
如果屬性句柄已成功添加到要發送給特徵所有者的屬性集。
WEAVE_ERROR_INVALID_ARGUMENT
如果手柄或SubscriptionClient指針是無效的。
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
如果特徵實例已經用相反的條件更新。
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
如果 aIsConditional 為​​真但特徵實例沒有有效版本。
WEAVE_ERROR_WDM_PATH_STORE_FULL
如果沒有內存來存儲路徑。
Other
WEAVE_ERROR 代碼取決於失敗。

特性可更新數據接收器

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

開鎖

void Unlock(
  SubscriptionClient *apSubClient
)