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 寫入器和布林值指出該值是否為空值,請從建立通知的特徵來源取得資料。
|
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 寫入器和布林值指出該值是否為空值,請從建立通知的特徵來源取得資料。
如果路徑控點不是分葉節點,TDM 會處理將值寫入寫入器的情況 (例如開啟容器、讓結構體無效等)。如果非分葉節點為空值或不存在,TDM 不會為其子項呼叫 GetData。
系統只會針對可為空值、選用、暫時或分葉的控點呼叫此函式。預期啟用這些選項的特徵,都會導入適當的邏輯來填入 aIsNull 和 aIsPresent 的組合。
詳細說明 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回值 |
|
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 回呼。修改可以符合條件。如果特徵例項的本機副本不再與發布商同步,導致該副本已由發布商或其他用戶端變更,條件式資料更新就會遺失。在同一個特徵執行個體中,無法同時使用條件式和無條件異動。
詳細說明 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回值 |
|