nl:: बुना::प्रोफ़ाइलें::DataManagement_current::CommandSender

#include <src/lib/profiles/data-management/Current/CommandSender.h>

खास जानकारी

ध्यान दें: इस क्लास में, निर्देशों को भेजने के प्रोटोकॉल की जानकारी होती है. साथ ही, इसमें आवेदन करने के लिए इस्तेमाल होने वाले तरीकों के बारे में बताया जाता है. यह ऐप्लिकेशन, PacketBuffer देता है जिसमें कमांड का पेलोड शामिल है. साथ ही, यह कमांड के व्यवहार के साथ-साथ कमांड हेडर के कॉन्टेंट में बदलाव करने वाले, आर्ग्युमेंट के एक वैकल्पिक सेट भी उपलब्ध कराता है. कमांड हैंडलिंग के आस-पास यह रैपर काम नहीं करता है. इसकी मुख्य वजह यह है कि सुरक्षा की पुष्टि और डेटा को क्रम से लगाने/क्रम से लगाने, और उसका क्रम तय करने में कोई समस्या नहीं आती.

कमांड की पुष्टि करने से जुड़ी जानकारी, अभी भी टीबीडी पर सेट है

अगर क्लास TraitDataSink में मौजूद डेटा, कमांड के जवाब में दिए गए वर्शन के मुताबिक दूसरे पक्षों के डेटा पर असर डालता है, तो भी यह क्लास मदद करती है. इस ऐप्लिकेशन को उस ऑब्जेक्ट के स्टोरेज को मैनेज करने की ज़िम्मेदारी मिलती है.

वीव बाइंडिंग

इस क्लास के एक ऑब्जेक्ट को Weave बाइंडिंग से इंटिग्रेट किया जा सकता है. यह डिफ़ॉल्ट रूप से बाइंडिंग की तरह काम करेगा, ताकि कमांड भेजने के लिए इस्तेमाल किया जा सके. उपयोगकर्ता, SendCommand() के हर कॉल को बाइंडिंग भी दे सकता है. यह डिफ़ॉल्ट बाइंडिंग को बदल देगा. डिफ़ॉल्ट बाइंडिंग देना ज़रूरी नहीं है, हालांकि CommandSender के लिए दी गई कोई भी बाइंडिंग पहले से ही शुरू होनी चाहिए.

इवेंट कॉलबैक

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

एपीआई इवेंट

कमांड भेजने के बाद, ये नतीजे हो सकते हैं:

कनेक्शन से जुड़ी गड़बड़ी

Command बनाते या उसे भेजते समय या जवाब का इंतज़ार करते समय कोई गड़बड़ी हुई. मुख्य समस्याओं या कनेक्शन के अचानक बंद होने जैसी गड़बड़ियों के उदाहरण, किसी जवाब का इंतज़ार करते समय हो सकते हैं. गड़बड़ी की वजह, EventCallback हैंडलर में InEventParam तर्क में शामिल होगी.

प्रगति में पाना

पाने वाला व्यक्ति 'प्रक्रिया जारी है' मैसेज भेज सकता है, जो यह बताता है कि कमांड मिल गया है, लेकिन यह अभी तक पूरा नहीं हुआ है. इसके पूरा होने पर, ईमेल पाने वाला व्यक्ति जवाब या स्टेटस रिपोर्ट भेजेगा. 'प्रक्रिया जारी है' संदेश भेजने की आवश्यकता नहीं है.

स्थिति रिपोर्ट मिल गई

स्थिति रिपोर्ट की रसीद का मतलब है कि कमांड को प्रोसेस करने में कोई गड़बड़ी हुई. स्थिति रिपोर्ट को InEventParam से ऐक्सेस किया जा सकता है.

जवाब मिल गया

जवाब पाने का मतलब है कि 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:: बुना::प्रोफ़ाइल::DataManagement_current::CommandSender::InEventParam

कस्टम निर्देश पाने वाले की ओर से, भेजने वाले को डेटा भेजा गया.

nl:: बुना::प्रोफ़ाइल::DataManagement_current::CommandSender::OutEventParam

इवेंट कॉलबैक फ़ंक्शन से CommandSender ऑब्जेक्ट में डेटा वापस दिखता है.

nl:: बुना::प्रोफ़ाइल::DataManagement_current::CommandSender::SendPrams

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

nl:: बुना::प्रोफ़ाइल::DataManagement_current::CommandSender:: synceddTraitState

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

इवेंट कॉलबैक

void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)

इवेंट टाइप

 EventType

सार्वजनिक विशेषताएं

mAppState

void * mAppState = NULL

mSyncronizedTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

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

डिफ़ॉल्ट इवेंट हैंडलर

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
)

भेजें कमांड

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  ResourceIdentifier & aResourceId,
  uint32_t aProfileId,
  uint32_t aCommandType
)

भेजें कमांड

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  SendParams & aSendParams
)

सेट सिंक्रनाइज़्ड ट्रेट स्टेट

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)