nl::Weave::Profiles::DataManagement_Current::Command

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

खास जानकारी

ध्यान दें: इस क्लास को कमांड हैंडलिंग में, कुछ जानकारी को छिपाने के लिए डिज़ाइन किया गया है. यह फ़ैसला, ExchangeContext और पुष्टि करने वाले की पुष्टि करने की जानकारी को छिपाने के लिए किया गया है. यह इसलिए किया गया है, क्योंकि PaetBuffers के हैंडलिंग को ऐप्लिकेशन लेयर पर छोड़ दिया गया है. कमांड हैंडलिंग के लिए इस रैपर का इस्तेमाल सीमित तौर पर किया जा सकता है. इसकी मुख्य वजह है सुरक्षा की पुष्टि करना और डेटा को क्रम से लगाना/डी-सीरियलाइज़ेशन करना मुश्किल होता है.

निर्देश की पुष्टि करने की जानकारी अब भी अभी तय नहीं है

इन-प्रोग्रेस, स्थिति रिपोर्ट, और रिस्पॉन्स मैसेज के लिए, ट्रांसमिशन का समय अडजस्ट करने के लिए, ऐप्लिकेशन लेयर को किसी भी तरह ExchangeContext ऑब्जेक्ट के साथ काम करना होगा. सर्वश्रेष्ठ तरीका अब भी TBD है, लेकिन ऐप्लिकेशन लेयर में ये तीन विकल्प हैं:

1) GetExchangeContext से एक्सचेंज कॉन्टेक्स्ट हासिल करें और सीधे तौर पर उसका आकलन करें या उसमें बदलाव करें. 2) कोई भी निर्देश आने से पहले, बूट अप के दौरान बाइंडिंग को पहले से असाइन और कॉन्फ़िगर करें. साथ ही, उसे ठीक से कॉन्फ़िगर करें 3) इस फ़ंक्शन का इस्तेमाल करके, एक अस्थायी Binding बनाएं: BindingPool::NewResponseBindingFromExchangeContext

(2) और (3), दोनों में ऐप्लिकेशन लेयर, Binding::ConfigureDestinationExchangeContext की मदद से, सुरक्षा/समय सेटिंग लागू कर सकती है. बाइंडिंग का इस्तेमाल, कस्टम कमांड के लिए नए एक्सचेंज कॉन्टेक्स्ट जनरेट करने के लिए कभी नहीं किया जाता. इसलिए, इसे इस हैंडल में सेव करने की ज़रूरत नहीं होती.

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

ऐप्लिकेशन लेयर को उसी कॉलबैक से पैकेट बफ़र मिलेगा जो इसे कमांड हैंडल के तौर पर मिलता है. अगर यह कमांड, एक साथ काम नहीं करने वाले तरीके से हैंडल करने का फ़ैसला करता है, तो इसे कमांड हैंडल और पैकेट बफ़र, दोनों को सेव करना होगा.

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

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
Command फ़्लैग बिट.
CommandFlags typedef
Command फ़्लैग बिट.

सार्वजनिक एट्रिब्यूट

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

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

Close(void)
void
GetExchangeContext(void) const
इस इनकमिंग कमांड में इस्तेमाल किया गया एक्सचेंज कॉन्टेक्स्ट ऑब्जेक्ट वापस पाएं.
IsActionTimeValid(void) const
bool
IsExpiryTimeValid(void) const
bool
IsInitiationTimeValid(void) const
bool
IsMustBeVersionValid(void) const
bool
IsOneWay(void) const
bool
SendError(uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError)
SendInProgress(void)
SendResponse(uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload)
ValidateAuthenticator(nl::Weave::System::PacketBuffer *aRequestBuffer)

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

CommandFlags

 CommandFlags

Command फ़्लैग बिट.

प्रॉपर्टी
kCommandFlag_ActionTimeValid

कार्रवाई का समय मान्य होने पर सेट करें.

kCommandFlag_ExpiryTimeValid

समयसीमा खत्म होने की तारीख मान्य होने पर सेट करें.

kCommandFlag_InitiationTimeValid

इनिट समय के मान्य होने पर सेट करें.

kCommandFlag_IsOneWay

सेट करें कि निर्देश एकतरफ़ा हों.

kCommandFlag_MustBeVersionValid

वर्शन फ़ील्ड के मान्य होने पर सेट करें.

CommandFlags

enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags

Command फ़्लैग बिट.

सार्वजनिक एट्रिब्यूट

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

int64_t expiryTimeMicroSecond

initiationTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

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

बंद करें

void Close(
  void
)

GetExchangeContext

nl::Weave::ExchangeContext * GetExchangeContext(
  void
) const 

इस इनकमिंग कमांड में इस्तेमाल किया गया एक्सचेंज कॉन्टेक्स्ट ऑब्जेक्ट वापस पाएं.

जानकारी
लौटाए गए सामान
एक्सचेंज कॉन्टेक्स्ट ऑब्जेक्ट का पॉइंटर, जिसे यह इनकमिंग कमांड इस्तेमाल करेगा

IsActionTimeValid

bool IsActionTimeValid(
  void
) const 

IsExpiryTimeValid

bool IsExpiryTimeValid(
  void
) const 

IsInitiationTimeValid

bool IsInitiationTimeValid(
  void
) const 

IsMustBeVersionValid

bool IsMustBeVersionValid(
  void
) const 

IsOneWay

bool IsOneWay(
  void
) const 

SendError

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

SendResponse

WEAVE_ERROR SendResponse(
  uint32_t traitInstanceVersion,
  nl::Weave::System::PacketBuffer *apPayload
)

ValidateAuthenticator

WEAVE_ERROR ValidateAuthenticator(
  nl::Weave::System::PacketBuffer *aRequestBuffer
)