nl:: Weave:: Profiles:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
खास जानकारी
ध्यान दें: इस क्लास में, निर्देश भेजने की प्रोटोकॉल जानकारी शामिल होती है. इससे ऐप्लिकेशन इस्तेमाल करने की प्रोसेस आसान हो जाती है. यह ऐप्लिकेशन एक PacketBuffer को उपलब्ध कराता है, जिसमें कमांड का पेलोड होता है. साथ ही, आर्ग्युमेंट का एक वैकल्पिक सेट भी होता है, जो कमांड हेडर के कॉन्टेंट के साथ-साथ कमांड के व्यवहार में भी बदलाव करता है. इस रैपर की मदद कमांड हैंडलिंग का इस्तेमाल सीमित तौर पर किया जा सकता है. इसकी मुख्य वजह, सुरक्षा की पुष्टि और डेटा को क्रम से लगाना/डी-सीरियलाइज़ेशन में मुश्किलें/विकल्प हैं.
निर्देश की पुष्टि करने की जानकारी अब भी तय नहीं की गई है
यह क्लास, ऐप्लिकेशन को यह अनुमान लगाने में भी मदद करती है कि इससे जुड़े TraitDataSink के डेटा ने निर्देश के खराब असर की पहचान कर ली है या नहीं. ऐसा कमांड रिस्पॉन्स में दिए गए वर्शन के आधार पर होता है. ऐप्लिकेशन, उस ऑब्जेक्ट का स्टोरेज मैनेज करने के लिए ज़िम्मेदार है.
वीव बाइंडिंग
इस क्लास के ऑब्जेक्ट को Weave Binding के साथ इंटिग्रेट किया जा सकता है, जो निर्देश भेजने के लिए डिफ़ॉल्ट बाइंडिंग के तौर पर काम करेगा. उपयोगकर्ता, SendCommand() के हर कॉल के लिए एक Binding भी दे सकता है, जो डिफ़ॉल्ट Binding को बदल देगा. डिफ़ॉल्ट बाइंडिंग उपलब्ध कराना ज़रूरी नहीं है. हालांकि, CommandSender को बाइंड करने के लिए दी गई कोई भी बाइंडिंग पहले से ही शुरू होनी चाहिए.
EventCallback
अगर उपयोगकर्ता को निर्देश भेजने के बाद होने वाले इवेंट के बारे में अपडेट चाहिए, तो उन्हें इस तरह का कोई फ़ंक्शन तय करना होगा (नीचे "एपीआई इवेंट" देखें). अगर उपयोगकर्ता को इस बात की परवाह नहीं होती कि निर्देश भेजे जाने के बाद क्या होता है, तो यह वैल्यू शून्य हो सकती है.
एपीआई इवेंट
निर्देश भेजने के बाद, ये इवेंट हो सकते हैं:
CommunicationError
Command बनाते या भेजते समय या जवाब का इंतज़ार करते समय कोई गड़बड़ी हुई. जवाब का इंतज़ार करते समय होने वाली मुख्य गड़बड़ियां या कनेक्शन का अचानक बंद होना, इन गड़बड़ियों के उदाहरण हैं. गड़बड़ी की वजह, EventCallback हैंडलर के InEventParam आर्ग्युमेंट में शामिल होगी.
InProgressReceived
पाने वाला व्यक्ति 'जारी है' भेज सकता है मैसेज दिखाता है जो यह दिखाता है कि Command मिल गया है, लेकिन इसे अभी तक पूरा नहीं किया गया है. पूरा होने के बाद, पाने वाला व्यक्ति जवाब या स्थिति रिपोर्ट भेजेगा. 'जारी है' भेजा जा रहा है संदेश की आवश्यकता नहीं है.
StatusReportReceived
स्टेटस रिपोर्ट मिलने का मतलब है कि कमांड को प्रोसेस करने में कोई गड़बड़ी हुई. स्टेटस रिपोर्ट को InEventParam से ऐक्सेस किया जा सकता है.
ResponseReceived
जवाब मिलने का मतलब है कि Command पाने वाले ने Command को सही तरीके से हैंडल किया है. जवाब में पेलोड हो सकता है या नहीं भी हो सकता है. अगर ऐप्लिकेशन को पैकेट बफ़र रखना है, तो यह रेफ़रंस की संख्या को बढ़ाने के लिए ExchangeContext::AddRef() को कॉल कर सकता है.
सार्वजनिक प्रकार |
|
---|---|
EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
|
टाइपडिफ़void(*
|
EventType
|
enum |
सार्वजनिक विशेषताएं |
|
---|---|
mAppState = NULL
|
void *
|
mSyncronizedTraitState = NULL
|
सार्वजनिक स्टैटिक फ़ंक्शन |
|
---|---|
DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
|
void
|
सार्वजनिक फ़ंक्शन |
|
---|---|
Close(bool aAbortNow)
|
void
|
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
|
|
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
|
void
|
स्ट्रक्चर |
|
---|---|
nl:: |
कस्टम निर्देश पाने वाले ने भेजने वाले को डेटा लौटा दिया है. |
nl:: |
डेटा को एक EventCallback फ़ंक्शन से CommandSender ऑब्जेक्ट में वापस लौटाया गया. |
nl:: |
SendCommand() में पास किए जाने वाले आर्ग्युमेंट को एनकैप्सुलेट करता है. |
nl:: |
सार्वजनिक प्रकार
EventCallback
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
EventType
EventType
सार्वजनिक विशेषताएं
mAppState
void * mAppState = NULL
mSyncronizedTraitState
SynchronizedTraitState * mSyncronizedTraitState = NULL
सार्वजनिक स्टैटिक फ़ंक्शन
DefaultEventHandler
void DefaultEventHandler( void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
सार्वजनिक फ़ंक्शन
बंद करें
void Close( bool aAbortNow )
Init
WEAVE_ERROR Init( nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams )