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) typedef
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

इवेंट कॉलबैक फ़ंक्शन से, 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
)

शुरू करें

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
)