nl::Weave::Profiles::DataManagement_Legacy::DMClient

#include <src/lib/profiles/data-management/Legacy/DMClient.h>

ऐप्लिकेशन के हिसाब से बने WDM क्लाइंट के लिए ऐब्सट्रैक्ट बेस क्लास.

खास जानकारी

DMClient स्टैंडर्ड WDM क्लाइंट है. लागू करने में वैकल्पिक तौर पर सदस्यता/सूचना शामिल होती है. यह, DM ProtocolEngine क्लास और पूरी तरह से एब्सट्रैक्ट ClientDataManager क्लास को मैनेज करने वाली क्लास का एक मिला-जुला रूप है, जिसमें सदस्यता से जुड़े कुछ तरीके लागू किए जाते हैं, ताकि ज़्यादा लेयर को इस्तेमाल करने के बारे में चिंता न करनी पड़े.

सदस्यता से जुड़े टास्क के लिए हैंडलर, मुख्य तौर पर ClientNotifier ऑब्जेक्ट के बजाय पतले अडैप्टर के तौर पर काम करते हैं. सब-क्लास को लागू करने वाले लोगों को इस बात का ध्यान रखना चाहिए कि वह सही सुपर-क्लास तरीकों को शामिल करे, ताकि सदस्यता मैनेजर को क्रैंक करने में मदद मिल सके.

DMClient के लिए अनुरोध करने के तरीके में आम तौर पर दो हस्ताक्षर होते हैं. एक में डेस्टिनेशन नोड आईडी साफ़ तौर पर बताया जाता है और दूसरा तय किए गए डेस्टिनेशन के साथ. दोनों ही मामलों में, पब्लिशर को मैसेज भेजने की सुविधा क्लाइंट में पहले से मौजूद बाइंडिंग पर निर्भर करती है. हालांकि, पहले मामले में, डेस्टिनेशन आईडी का मकसद एक से ज़्यादा बाउंड डेस्टिनेशन में से किसी को चुनना होता है. साथ ही, दूसरे मामले में, बाइंडिंग टेबल में पहले आइटम को डिफ़ॉल्ट के तौर पर चुना जाता है. उदाहरण के लिए, यह तब फ़ायदेमंद होता है, जब क्लाइंट सिर्फ़ एक पब्लिशर से जुड़ता है.

इनहेरिटेंस

इनसे इनहेरिट की गई:
  nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine
  nl::Weave::Profiles::DataManagement_Legacy::ClientDataManager

कंस्ट्रक्टर और डिस्ट्रक्टर

DMClient(void)
DMClient ऑब्जेक्ट के लिए डिफ़ॉल्ट कंस्ट्रक्टर.
~DMClient(void)
DMClient ऑब्जेक्ट के लिए डिस्ट्रक्टर.
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
पब्लिश किए गए डेटा को देखने का अनुरोध करें.
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
डिफ़ॉल्ट पब्लिशर के डेटा के व्यू का अनुरोध करें.
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
पब्लिश किए गए डेटा को अपडेट करने का अनुरोध करें.
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
डिफ़ॉल्ट पब्लिशर के डेटा में बदलाव करने का अनुरोध करें.

सुरक्षित एट्रिब्यूट

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

सार्वजनिक फ़ंक्शन

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
चल रहे लेन-देन को रद्द करने का अनुरोध करें.
Clear(void)
virtual void
DMClient ऑब्जेक्ट से जुड़ी अंदरूनी स्थिति को मिटाएं.
Finalize(void)
virtual void
ऑपरेटिंग DMClient को बंद करना.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
क्लाइंट जिस बाइंडिंग का इस्तेमाल कर रहा है उसकी "अधूरी है" को मैनेज करें.

सुरक्षित किए गए फ़ंक्शन

NewUpdate(void)
Update *
NewView(void)
View *

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

पब्लिश किए गए डेटा को देखने का अनुरोध करें.

किसी चुनिंदा रिमोट पब्लिशर से जुड़े और मैनेज किए जाने वाले डेटा के व्यू का अनुरोध करें.

ब्यौरा
पैरामीटर
[in] aDestinationId
रिमोट पब्लिशर के 64-बिट नोड आईडी का रेफ़रंस.
[in] aPathList
ReferencedTLVData ऑब्जेक्ट का रेफ़रंस, जिसमें टीएलवी से एन्कोड किए गए पाथ की सूची मौजूद है. इससे, अनुरोध किए गए डेटा का पता चलता है.
[in] aTxnId
इस व्यू कार्रवाई को मैनेज करने के लिए सेट अप किए गए WDM लेन-देन का आइडेंटिफ़ायर.
[in] aTimeout
व्यू का जवाब मिलने तक इंतज़ार करने का समय, मिलीसेकंड में ज़्यादा से ज़्यादा समय.
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
WEAVE_ERROR_NO_MEMORY
अगर किसी लेन-देन का बंटवारा नहीं किया जा सका.
लौटाए गए सामान
अगर ऐसा नहीं होता है, तो WEAVE_ERROR की इमेज, जो लेन-देन शुरू या शुरू नहीं होने की जानकारी दिखाती है.

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

डिफ़ॉल्ट पब्लिशर के डेटा के व्यू का अनुरोध करें.

उस डेटा के व्यू का अनुरोध करें जो "डिफ़ॉल्ट" पब्लिशर पर रहता है और जिसे मैनेज किया जाता है. यह पब्लिशर, क्लाइंट की बाइंडिंग टेबल में पहले या सिर्फ़ पहले पब्लिशर के तौर पर शामिल होता है.

ब्यौरा
पैरामीटर
[in] aPathList
ReferencedTLVData ऑब्जेक्ट का रेफ़रंस, जिसमें टीएलवी से एन्कोड किए गए पाथ की सूची मौजूद है. इससे, अनुरोध किए गए डेटा का पता चलता है.
[in] aTxnId
इस व्यू कार्रवाई को मैनेज करने के लिए सेट अप किए गए WDM लेन-देन का आइडेंटिफ़ायर.
[in] aTimeout
व्यू का जवाब मिलने तक इंतज़ार करने का समय, मिलीसेकंड में ज़्यादा से ज़्यादा समय.
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
WEAVE_ERROR_NO_MEMORY
अगर किसी लेन-देन का बंटवारा नहीं किया जा सका.
लौटाए गए सामान
अगर ऐसा नहीं होता है, तो WEAVE_ERROR की इमेज, जो लेन-देन शुरू या शुरू नहीं होने की जानकारी दिखाती है.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

पब्लिश किए गए डेटा को अपडेट करने का अनुरोध करें.

अनुरोध करें कि कोई रिमोट पब्लिशर, मैनेजमेंट के तहत डेटा अपडेट करे.

ब्यौरा
पैरामीटर
[in] aDestinationId
उस रिमोट पब्लिशर के 64-बिट नोड आईडी का रेफ़रंस जिसे अनुरोध भेजा जा रहा है.
[in] aDataList
ReferencedTLVData ऑब्जेक्ट का रेफ़रंस, जिसमें टीएलवी-कोड में बदली गई डेटा सूची वाली सूची है. इसमें अपडेट की जानकारी दी गई है. इसमें वे पाथ भी शामिल हैं जिन पर अपडेट लागू किया जाना है.
[in] aTxnId
अपडेट के अनुरोध को मैनेज करने के लिए, सेट अप किए गए लेन-देन का आइडेंटिफ़ायर.
[in] aTimeout
संबंधित स्थिति रिपोर्ट की इंतज़ार करने में लगने वाला ज़्यादा से ज़्यादा समय, मिलीसेकंड में.
लौटाए गए सामान
सफल होने पर WEAVE_NO_ERROR या अगर किसी अपडेट लेन-देन को असाइन नहीं किया जा सका, तो WEAVE_ERROR_NO_MEMORY. अगर ऐसा नहीं है, तो अपडेट न होने पर दिखाने वाला WEAVE_ERROR दिखाएं.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

डिफ़ॉल्ट पब्लिशर के डेटा में बदलाव करने का अनुरोध करें.

अनुरोध करें कि कोई रिमोट पब्लिशर, मैनेजमेंट के तहत डेटा अपडेट करे. यह वर्शन, अनुरोध को उस पब्लिशर को भेजता है जो क्लाइंट की डिफ़ॉल्ट बाइंडिंग का टारगेट है.

ब्यौरा
पैरामीटर
[in] aDataList
ReferencedTLVData ऑब्जेक्ट का रेफ़रंस, जिसमें टीएलवी-कोड में बदली गई डेटा सूची वाली सूची है. इसमें अपडेट की जानकारी दी गई है. इसमें वे पाथ भी शामिल हैं जिन पर अपडेट लागू किया जाना है.
[in] aTxnId
अपडेट के अनुरोध को मैनेज करने के लिए, सेट अप किए गए लेन-देन का आइडेंटिफ़ायर.
[in] aTimeout
संबंधित स्थिति रिपोर्ट की इंतज़ार करने में लगने वाला ज़्यादा से ज़्यादा समय, मिलीसेकंड में.
लौटाए गए सामान
सफल होने पर WEAVE_NO_ERROR या अगर किसी अपडेट लेन-देन को असाइन नहीं किया जा सका, तो WEAVE_ERROR_NO_MEMORY. अगर ऐसा नहीं है, तो अपडेट न होने पर दिखाने वाला WEAVE_ERROR दिखाएं.

सुरक्षित एट्रिब्यूट

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

सार्वजनिक फ़ंक्शन

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

चल रहे लेन-देन को रद्द करने का अनुरोध करें.

यह तरीका नेटवर्क ट्रैफ़िक जनरेट नहीं करता, बल्कि सिर्फ़ खास लेन-देन के लिए असाइन किए गए संसाधन रिलीज़ करता है

ब्यौरा
पैरामीटर
[in] aTxnId
रद्द किए जाने वाले लेन-देन की संख्या. अगर kTransactionIdNotDetails दिया गया है, तो सभी लेन-देन रद्द कर दिए जाएंगे.
[in] aError
लेन-देन रद्द करते समय रिपोर्ट करने के लिए WEAVE_ERROR.
लौटाए गए सामान
लेन-देन रद्द न हो पाने की जानकारी देने वाला WEAVE_NO_ERROR या WEAVE_ERROR की जानकारी.

क्लियर

virtual void Clear(
  void
)

DMClient ऑब्जेक्ट से जुड़ी अंदरूनी स्थिति को मिटाएं.

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

यह भी देखें:
फ़ाइनल करें()

DMClient

 DMClient(
  void
)

DMClient ऑब्जेक्ट के लिए डिफ़ॉल्ट कंस्ट्रक्टर.

पूरी अंदरूनी स्थिति हटा देता है. DMClient का इस्तेमाल करने से पहले, Init() के साथ आगे की कार्रवाई शुरू करना ज़रूरी है.

फ़ाइनल करें

virtual void Finalize(
  void
)

ऑपरेटिंग DMClient को बंद करना.

यह क्लाइंट से जुड़ी सारी ऑपरेटिंग स्थिति हटा देता है और नोटिफ़िकेशन से मिलती-जुलती सभी सदस्यताएं हटा देता है. फ़ाइनलाइज़() को कॉल करने के बाद, DMClient को आसानी से Init() कॉल करके फिर से शुरू किया जा सकता है. फ़ाइनलाइज़() को DMClient डिस्ट्रक्टर से शुरू किया जाता है.हालांकि, इसे उस स्थिति में कॉल किया जा सकता है जहां DMClient को क्लीनअप की ज़रूरत होती है. उदाहरण के लिए, ऐसा नहीं हो पाने पर या कुछ समय के लिए बंद होने पर, लेकिन बाद में इसे बदलना पड़ सकता है.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

क्लाइंट जिस बाइंडिंग का इस्तेमाल कर रहा है उसकी "अधूरी है" को मैनेज करें.

जब कोई बाइंडिंग अचानक काम करना बंद कर देती है, जैसे कि अगर बाइंडिंग में शामिल कनेक्शन बंद हो जाता है, तो यह तरीका कॉल किया जाता है.

ब्यौरा
पैरामीटर
[in] aBinding
बाइंडिंग का पॉइंटर जो पूरा नहीं हो पाया.
[in] aReport
स्टेटस रिपोर्ट का रेफ़रंस, जो सफल न होने की वजह बताता है.

~DMClient

virtual  ~DMClient(
  void
)

DMClient ऑब्जेक्ट के लिए डिस्ट्रक्टर.

इससे सभी इंटरनल स्टेटस हट जाते हैं. साथ ही, ज़रूरी होने पर 'मंज़ूरी बाकी है' वाली सदस्यताएं रद्द हो जाती हैं.

सुरक्षित किए गए फ़ंक्शन

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)