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::Weave::Profiles::DataManagement_Current::CommandSender::InEventParam

कस्टम निर्देश पाने वाले ने भेजने वाले को डेटा लौटा दिया है.

nl::Weave::Profiles::DataManagement_Current::CommandSender::OutEventParam

डेटा को एक EventCallback फ़ंक्शन से CommandSender ऑब्जेक्ट में वापस लौटाया गया.

nl::Weave::Profiles::DataManagement_Current::CommandSender::SendParams

SendCommand() में पास किए जाने वाले आर्ग्युमेंट को एनकैप्सुलेट करता है.

nl::Weave::Profiles::DataManagement_Current::CommandSender::SynchronizedTraitState

सार्वजनिक प्रकार

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
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)