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 राइटर, और बूलियन का पाथ हैंडल दिया जाता है, जिससे पता चलता है कि वैल्यू शून्य है या मौजूद नहीं है, तो Trait सोर्स से डेटा पाएं. यह डेटा, सूचना बनाएगा.
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)
यह बताता है कि दिए गए प्रॉपर्टीPathHandle में स्थानीय बदलाव हैं.
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 राइटर, और बूलियन का पाथ हैंडल दिया जाता है, जिससे पता चलता है कि वैल्यू शून्य है या मौजूद नहीं है, तो Trait सोर्स से डेटा पाएं. यह डेटा, सूचना बनाएगा.

अगर पाथ हैंडल, लीफ़ नोड नहीं है, तो TDM राइटर को राइटिंग वैल्यू हैंडल करेगा. जैसे, कंटेनर खोलना, स्ट्रक्चर को शून्य करना वगैरह. अगर कोई नॉन-लीफ़ नोड शून्य है या मौजूद नहीं है, तो TDM अपने चिल्ड्रन के लिए GetData को कॉल नहीं करेगा.

यह सुविधा सिर्फ़ उन हैंडल के लिए इस्तेमाल की जाएगी जो शून्य हो सकते हैं, ज़रूरी नहीं हैं, कुछ समय के लिए नहीं हैं या लीफ़ हैं. उम्मीद की जाती है कि हैंडल वाले जिन traits में वे विकल्प चालू हैं वे aIsNull और aIsप्रज़ेंट को पॉप्युलेट करने के लिए सही लॉजिक लागू करेंगे.

ब्यौरा
पैरामीटर
[in] aHandle
वह प्रॉपर्टीPathHandle जिसके बारे में शिकायत की गई है.
[in] aTagToWrite
AHandle के लिए लिखा जाने वाला टैग.
[in,out] aWriter
TLV एलिमेंट लिखने वाला लेखक.
[out] aIsNull
क्या हैंडल रद्द कर दिया गया है? अगर हां, तो TDM शून्य एलिमेंट लिखेगा. अगर aहैंडल लीफ़ नहीं है, तो टीडीएम अपने बच्चों के ऊपर चला जाएगा.
[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
)

यह बताता है कि दिए गए प्रॉपर्टीPathHandle में स्थानीय बदलाव हैं.

NotificationEngine, हैंडल और उसके डिसेंडेंट को तब तक नहीं बदलेगा, जब तक अपडेट के अनुरोध को प्रोसेस नहीं किया जाता. अपडेट की कार्रवाई के नतीजे के साथ, ऐप्लिकेशन को इस हैंडल या इसके किसी ऐनसेस्टर के लिए kEvent_OnUpdateComplete कॉलबैक मिलेंगे. बदलाव कुछ शर्तों के साथ किया जा सकता है या नहीं. अगर Trait के इंस्टेंस की लोकल कॉपी, पब्लिशर के साथ सिंक नहीं की गई है, तो शर्तों के साथ डेटा को अपडेट नहीं किया जा सकेगा. इसकी वजह यह है कि पब्लिशर या किसी दूसरे क्लाइंट ने उसमें बदलाव किया था. एक ही trait इंस्टेंस में, कंडीशनल और बिना शर्त वाले म्यूटेशन एक साथ काम नहीं करते.

ब्यौरा
पैरामीटर
[in] apSubClient
इस सिंक को मैनेज करने वाले SubscriptionClient के लिए पॉइंटर.
[in] aPropertyHandle
इस Trait इंस्टेंस के लिए, कोई मान्य PropertyPathHandle.
[in] aIsConditional
शर्तों के साथ किए गए अपडेट के लिए 'सही' है; नहीं तो 'गलत' है.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर प्रॉपर्टी हैंडल को Trait के मालिक को भेजे जाने वाले, प्रॉपर्टी के सेट में सही तरीके से जोड़ा गया था.
WEAVE_ERROR_INVALID_ARGUMENT
अगर हैंडल या SubscriptionClient पॉइंटर अमान्य है.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
अगर Trait इंस्टेंस को पहले से ही दूसरी शर्त के साथ अपडेट किया जा रहा है.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
अगर aIsConditional सही है, लेकिन Trait इंस्टेंस का कोई मान्य वर्शन नहीं है.
WEAVE_ERROR_WDM_PATH_STORE_FULL
अगर पाथ को सेव करने के लिए मेमोरी न हो.
Other
विफलता के आधार पर WEAVE_ERROR कोड.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

अनलॉक करें

void Unlock(
  SubscriptionClient *apSubClient
)