nl:: बुनें:: प्रोफाइल:: डेटा प्रबंधन_वर्तमान :: आदेश

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

सारांश

नोट: यह वर्ग आदेश से निपटने में एक निश्चित विस्तार को छिपाने के लिए बनाया गया है। निर्णय का ब्यौरा छिपाने के लिए किया गया है ExchangeContext जबकि अनुप्रयोग परत को PacketBuffers की हैंडलिंग छोड़ रहा है, और प्रमाणक सत्यापन। कमांड हैंडलिंग के आसपास इस रैपर की उपयोगिता वास्तव में सीमित है, मुख्य रूप से सुरक्षा सत्यापन और डेटा क्रमांकन/डी-सीरियलाइज़ेशन में शामिल जटिलता/लचीलेपन के कारण।

कमांड सत्यापन के लिए विवरण अभी भी टीबीडी है

प्रगति-के लिए पुनर्संचरण समय, स्थिति रिपोर्ट, और भी रिस्पांस संदेश को समायोजित करने के लिए, अनुप्रयोग परत किसी भी तरह से निपटने के लिए होगा ExchangeContext वस्तु। सबसे अच्छा अभ्यास अभी भी TBD है, लेकिन एप्लिकेशन लेयर में ये तीन विकल्प हैं:

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

(2) और (3) दोनों में, एप्लिकेशन लेयर Binding::ConfigureExistingExchangeContext के माध्यम से सुरक्षा/समय सेटिंग लागू कर सकती है। बाइंडिंग इसलिए यह इस संभाल के भीतर संग्रहीत करने के लिए नहीं है, कस्टम आदेश के लिए नई विनिमय संदर्भों उत्पन्न करने के लिए इस्तेमाल कभी नहीं किया है।

अनुरोध पैकेट बफर भी इस हैंडल के भीतर संग्रहीत नहीं है, क्योंकि इसका कोई स्पष्ट उपयोग नहीं है। यह विशेष रूप से सच है यदि एप्लिकेशन परत इस कमांड को संभाल सकती है और सीधे प्रतिक्रिया भेज सकती है।

एप्लिकेशन परत पैकेट बफर को उसी कॉलबैक से प्राप्त करेगी जो इसे इस कमांड हैंडल को प्राप्त करती है। यदि यह इस कमांड को एसिंक तरीके से संभालने का फैसला करता है, तो इसे कमांड हैंडल और पैकेट बफर दोनों को स्टोर करना होगा।

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

CommandFlags {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
एन्यूम
कमान झंडा बिट्स।
CommandFlags टाइपडीफ
कमान झंडा बिट्स।

सार्वजनिक गुण

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

कमान झंडा बिट्स।

गुण
kCommandFlag_ActionTimeValid

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

kCommandFlag_ExpiryTimeValid

समाप्ति समय मान्य होने पर सेट करें।

kCommandFlag_InitiationTimeValid

सेट करें जब init समय मान्य हो।

kCommandFlag_IsOneWay

सेट करें जब आदेश एकतरफा हो।

kCommandFlag_MustBeVersionValid

संस्करण फ़ील्ड के मान्य होने पर सेट करें।

कमांडफ्लैग्स

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

कमान झंडा बिट्स।

सार्वजनिक गुण

एक्शनटाइममाइक्रोसेकंड

int64_t actionTimeMicroSecond

कमांड टाइप

uint64_t commandType

समाप्ति समयमाइक्रोसेकंड

int64_t expiryTimeMicroSecond

दीक्षा समय माइक्रोसेकंड

int64_t initiationTimeMicroSecond

मस्टबी वर्जन

uint64_t mustBeVersion

सार्वजनिक समारोह

बंद करे

void Close(
  void
)

गेटएक्सचेंजकॉन्टेक्स्ट

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 

त्रुटि भेजें

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

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

प्रतिक्रिया भेजो

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

सत्यापन प्रमाणक

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