nl:: Weave:: Profiles:: DataManagement_Current:: Command
#include <src/lib/profiles/data-management/Current/Command.h>
Özet
Not: Bu sınıf, komut işlemede belirli bir ayrıntıyı gizlemek için tasarlanmıştır. ExchangeContext ve kimlik doğrulayıcı doğrulaması ayrıntıları gizlenirken, PacketBuffers'ın işlenmesi uygulama katmanında bırakılmaya karar verilmiştir. Bu sarmalayıcının komut işlemeye yönelik kullanımı aslında sınırlıdır. Bunun başlıca nedeni de güvenlik doğrulaması ve veri serileştirme/serileştirme işlemindeki karmaşıklık/esnekliktir.
Komut doğrulama ayrıntıları henüz belli değil
Devam Ediyor, Durum Raporu ve Yanıt iletisi için yeniden iletim zamanlamasını ayarlamak için uygulama katmanının bir şekilde ExchangeContext nesnesiyle ilgilenmesi gerekir. En iyi uygulama henüz belirlenmedi olsa da uygulama katmanında şu üç seçenek vardır:
1) Exchange Bağlamını GetExchangeContext aracılığıyla edinin ve doğrudan değerlendirin/ayarlayın. 2) Başlatma sırasında herhangi bir komut gelmeden önce Binding'i önceden ayırıp yapılandırın ve uygun şekilde yapılandırın 3) BindingPool::NewReplyerBindingFromExchangeContext işlevini kullanarak bu işlevi kullanarak geçici bir Binding oluşturun.
Hem (2) hem de (3)'te uygulama katmanı, Binding::ConfigureAvailableExchangeContext aracılığıyla güvenlik/zamanlama ayarını zorunlu kılabilir. Binding, özel komutlar için yeni exchange bağlamları oluşturmak amacıyla hiçbir zaman kullanılmaz. Bu nedenle, bu herkese açık kullanıcı adında depolanmasına gerek yoktur.
Ayrıca istek paketi arabelleği, bariz bir şekilde kullanılmadığı için bu tutma yeri içinde de depolanmaz. Bu durum özellikle uygulama katmanının bu komutu işleyip yanıtı doğrudan gönderebildiği durumlarda geçerlidir.
Uygulama katmanı, paket arabelleğini bu komut işleyicisini aldığı geri çağırmadan alır. Bu komutu eş zamansız bir şekilde işlemeye karar verirse hem komut işleyiciyi hem de paket arabelleğini depolaması gerekir.
Herkese açık türler |
|
---|---|
CommandFlags{
|
enum Command işaret bitleri. |
CommandFlags
|
typedef Command işaret bitleri. |
Herkese açık ö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 exchange 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)
|
Herkese açık türler
CommandFlags
CommandFlags
Command işaret bitleri.
Özellikler | |
---|---|
kCommandFlag_ActionTimeValid
|
İşlem zamanının ne zaman geçerli olacağını ayarlayın. |
kCommandFlag_ExpiryTimeValid
|
Geçerlilik süresinin ne zaman geçerli olacağını ayarlayın. |
kCommandFlag_InitiationTimeValid
|
Başlatma zamanının ne zaman geçerli olacağını ayarlayın. |
kCommandFlag_IsOneWay
|
Komut tek yönlü olacak şekilde ayarlayın. |
kCommandFlag_MustBeVersionValid
|
Sürüm alanının ne zaman geçerli olacağını ayarlayın. |
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
Command işaret bitleri.
Herkese açık özellikler
actionTimeMicroSecond
int64_t actionTimeMicroSecond
commandType
uint64_t commandType
expiryTimeMicroSecond
int64_t expiryTimeMicroSecond
initiationTimeMicroSecond
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 exchange bağlam nesnesini alın.
Ayrıntılar | |
---|---|
İadeler |
Bu gelen komut tarafından kullanılan exchange bağlam nesnesine işaret eden
|
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 )