nl:: örgü:: Profiller:: DataManagement_Current:: Komut
#include <src/lib/profiles/data-management/Current/Command.h>
Özet
Not: Bu sınıf komut işleme belli bir ayrıntıyı gizlemek için tasarlanmıştır. Karar ayrıntılarını gizlemek için yapılmıştır ExchangeContext uygulama katmanı PacketBuffers işlenmesini bırakırken ve doğrulayıcı doğrulama. Bu sarmalayıcının komut işleme etrafındaki faydası, esas olarak güvenlik doğrulama ve veri serileştirme/seri hale getirme ile ilgili karmaşıklık/esneklik nedeniyle gerçekten sınırlıdır.
Komut doğrulama için ayrıntılar hala TBD'dir
In-İlerleme yeniden iletim zamanını, Durum Raporu, hem de Tepki mesajı ayarlamak için, uygulama katmanı bir şekilde uğraşmak zorunda olacağını ExchangeContext nesne. En iyi uygulama hala TBD'dir, ancak uygulama katmanı şu üç seçeneğe sahiptir:
1) üzerinden Exchange bağlam Edinme GetExchangeContext doğrudan ayarlamak / değerlendirilmesi. 2) Ön tahsis ve yapılandırmak Bağlama herhangi bir komut gelmeden önce, çizme yukarıya sırasında ve yapılandırmak düzgün 3) geçici oluşturma Bağlanma Bu fonksiyonu BindingPool :: NewResponderBindingFromExchangeContext kullanarak
Hem (2) hem de (3)'te, uygulama katmanı Binding::ConfigureExistingExchangeContext aracılığıyla güvenlik/zamanlama ayarını uygulayabilir. Bağlama bu sap içinde depolanacak zorunda değildir bu yüzden, özel komutlar için yeni döviz bağlamları üretmek için hiçbir zaman kullanılmaz.
İstek paketi arabelleği de bu tanıtıcı içinde saklanmaz, çünkü bunun açık bir kullanımı yoktur. Bu, özellikle uygulama katmanı bu komutu işleyip doğrudan yanıt gönderebiliyorsa geçerlidir.
Uygulama katmanı, bu komut tanıtıcısını aldığı aynı geri aramadan paket arabelleğini alır. Bu komutu zaman uyumsuz bir şekilde işlemeye karar verirse, hem komut tanıtıcısını hem de paket arabelleğini depolaması gerekir.
Genel türler | |
---|---|
CommandFlags { | Sıralama Komut bayrak bitleri. |
CommandFlags | typedef Komut bayrak bitleri. |
Genel özellikler | |
---|---|
actionTimeMicroSecond | int64_t |
commandType | uint64_t |
expiryTimeMicroSecond | int64_t |
initiationTimeMicroSecond | int64_t |
mustBeVersion | uint64_t |
Kamu işlevleri | |
---|---|
Close (void) | void |
GetExchangeContext (void) const | Bu gelen komut tarafından kullanılan değişim bağlamı nesnesini alın. |
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) |
Genel türler
Komut Bayrakları
CommandFlags
Komut bayrak bitleri.
Komut Bayrakları
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
Komut bayrak bitleri.
Genel özellikler
actionTimeMikroSaniye
int64_t actionTimeMicroSecond
komut türü
uint64_t commandType
sona ermeZamanıMikroSaniye
int64_t expiryTimeMicroSecond
başlatmaZamanıMikroSaniye
int64_t initiationTimeMicroSecond
mustBeVersion
uint64_t mustBeVersion
Kamu işlevleri
Kapat
void Close( void )
GetExchangeContext
nl::Weave::ExchangeContext * GetExchangeContext( void ) const
Bu gelen komut tarafından kullanılan değişim bağlamı nesnesini alın.
Ayrıntılar | |
---|---|
İadeler | Bu gelen komut tarafından kullanılan değişim bağlamı nesnesine bir işaretçi |
EylemZamanıGeçerli
bool IsActionTimeValid( void ) const
Sona ErmeZamanıGeçerli
bool IsExpiryTimeValid( void ) const
BaşlatmaZamanıGeçerli
bool IsInitiationTimeValid( void ) const
IsMustBeVersionGeçerli
bool IsMustBeVersionValid( void ) const
IsOneWay
bool IsOneWay( void ) const
Hata gönder
WEAVE_ERROR SendError( uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError )
SendInProgress
WEAVE_ERROR SendInProgress( void )
Cevap Gönder
WEAVE_ERROR SendResponse( uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload )
ValidateAuthenticator
WEAVE_ERROR ValidateAuthenticator( nl::Weave::System::PacketBuffer *aRequestBuffer )