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 सोर्स से डेटा हासिल करें जो सूचना बनाने की कोशिश करेगा.

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

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

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

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

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

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

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

अनलॉक करें

void Unlock(
  SubscriptionClient *apSubClient
)