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 { | एन्यूम कमान झंडा बिट्स। |
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
कमान झंडा बिट्स।
कमांडफ्लैग्स
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 )