nl:: Weave:: Profiles:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
खास जानकारी
ध्यान दें:यह क्लास, ऐप्लिकेशन को इस्तेमाल करने के तरीके को आसान बनाते हुए, कमांड भेजने के प्रोटोकॉल की जानकारी को इकट्ठा करती है. यह ऐप्लिकेशन, एक पैकेटबफ़र उपलब्ध कराता है. इसमें कमांड के पेलोड के साथ-साथ, तर्कों का एक वैकल्पिक सेट भी होता है जो कमांड हेडर के कॉन्टेंट और निर्देश के व्यवहार को बदल देता है. कमांड हैंडलिंग के लिए इस रैपर का इस्तेमाल सीमित तौर पर किया जा सकता है. इसकी मुख्य वजह है सुरक्षा की पुष्टि करना और डेटा को क्रम से लगाना/डी-सीरियलाइज़ेशन करना मुश्किल होता है.
निर्देश की पुष्टि करने की जानकारी अब भी अभी तय नहीं है
यह क्लास, ऐप्लिकेशन को यह अनुमान लगाने में भी मदद करती है कि क्या इससे जुड़े TraitDataSink में मौजूद डेटा ने निर्देश (कमांड के जवाब में दिए गए वर्शन के आधार पर) के खराब असर को पकड़ लिया है. ऐप्लिकेशन पर, उस ऑब्जेक्ट के स्टोरेज को मैनेज करने की ज़िम्मेदारी होती है.
वीव बाइंडिंग
इस क्लास के किसी ऑब्जेक्ट को वीव बाइंडिंग से शुरू किया जा सकता है. यह निर्देश भेजने के लिए, डिफ़ॉल्ट बाइंडिंग के तौर पर काम करेगा. उपयोगकर्ता, SendCommand() के हर कॉल के लिए Binding भी दे सकता है, जो डिफ़ॉल्ट Binding को बदल देगा. डिफ़ॉल्ट रूप से Binding देना ज़रूरी नहीं है. हालांकि, CommandSender को दी गई कोई भी बाइंडिंग पहले ही शुरू हो जानी चाहिए.
EventCallback
अगर उपयोगकर्ता, निर्देश भेजने के बाद होने वाले इवेंट के बारे में अपडेट पाना चाहता है, तो उसे इस तरह का फ़ंक्शन तय करना होगा (नीचे "एपीआई इवेंट" देखें). अगर उपयोगकर्ता इस बात से फ़र्क़ नहीं करता कि निर्देश भेजने के बाद क्या होता है, तो यह वैल्यू 'शून्य' हो सकती है.
एपीआई इवेंट
Command भेजने के बाद, ये इवेंट हो सकते हैं:
CommunicationError
Command बनाते या भेजते समय या किसी जवाब का इंतज़ार करते समय कोई गड़बड़ी हुई. जवाब का इंतज़ार करते समय हो सकने वाली गड़बड़ियों के उदाहरण, मुख्य गड़बड़ियां या कनेक्शन का अचानक बंद होना है. गड़बड़ी की वजह को EventCallback हैंडलर के InEventParam आर्ग्युमेंट में शामिल किया जाएगा.
InProgressReceived
मैसेज पाने वाला व्यक्ति 'जारी है' मैसेज भेज सकता है. इससे यह पता चलता है कि कमांड मिल गया है, लेकिन अभी तक पूरा नहीं हुआ है. प्रक्रिया पूरी होने पर, मैसेज पाने वाला व्यक्ति जवाब या स्टेटस रिपोर्ट भेजेगा. 'प्रोसेस जारी है' मैसेज भेजने की ज़रूरत नहीं है.
StatusReportReceived
स्टेटस रिपोर्ट की रसीद मिलने का मतलब है कि कमांड को प्रोसेस करने में कोई गड़बड़ी हुई थी. स्टेटस रिपोर्ट को InEventParam से ऐक्सेस किया जा सकता है.
ResponseReceived
जवाब मिलने का मतलब है कि कमांड पाने वाले ने कमांड को सही तरीके से संभाला है. जवाब में पेलोड शामिल हो सकता है या हो सकता है कि वह न हो. अगर applcation, पैकेट बफ़र बनाए रखना चाहता है, तो वह रेफ़रंस की संख्या बढ़ाने के लिए ExchangeContext::AddRef() को कॉल कर सकता है.
सार्वजनिक टाइप |
|
---|---|
EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
|
typedefvoid(*
|
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:: |
इवेंट कॉलबैक फ़ंक्शन से, 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 )
शुरू करें
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 )