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ının gizlenmesi ve PaketetBuffers'ın işlenmesinin uygulama katmanında bırakılmasına karar verilmiştir. Temel olarak güvenlik doğrulaması ve veri serileştirme/serileştirmeden kaldırma işlemlerinin karmaşıklığı/esnekliği nedeniyle, komut işleme için bu sarmalayıcının kullanımı gerçekten sınırlıdır.
Komut doğrulamanın ayrıntıları henüz belli değil
Devam Ediyor, Durum Raporu ve Yanıt mesajının yeniden iletim zamanlamasını ayarlamak için uygulama katmanının bir şekilde ExchangeContext nesnesiyle ilgilenmesi gerekir. En iyi uygulama henüz belli değil, ancak uygulama katmanında şu üç seçenek bulunuyor:
1) GetExchangeContext yoluyla Exchange Bağlamı'nı edinin ve doğrudan değerlendirin/düzenleyin. 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) Şu BindingPool::NewResponseerBindingFromExchangeContext işlevini kullanarak geçici bir Binding oluşturun.
Hem (2) hem de (3)'te, uygulama katmanı Binding::ConfigureVarExchangeContext aracılığıyla güvenlik/zamanlama ayarını zorunlu kılabilir. Bağlama, hiçbir zaman özel komutlar için yeni exchange bağlamları oluşturmak amacıyla kullanılmaz. Bu nedenle, bu herkese açık kullanıcı adında depolanması gerekmez.
İstek paketi arabelleği de açıkça kullanılmadığı için bu herkese açık kullanıcı adında saklanmaz. Bu durum, özellikle uygulama katmanı bu komutu işleyip doğrudan yanıt gönderebiliyorsa 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şleyicisini hem de paket arabelleğini depolaması gerekir.
Herkese açık türler |
|
---|---|
CommandFlags{
|
enum Command işareti bitleri. |
CommandFlags
|
typedef Command işareti bitleri. |
Herkese açık özellikler |
|
---|---|
actionTimeMicroSecond
|
int64_t
|
commandType
|
uint64_t
|
expiryTimeMicroSecond
|
int64_t
|
initiationTimeMicroSecond
|
int64_t
|
mustBeVersion
|
uint64_t
|
Herkese açık işlevler |
|
---|---|
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şareti bitleri.
Özellikler | |
---|---|
kCommandFlag_ActionTimeValid
|
İşlem zamanının geçerli olduğu zamanı ayarlayın. |
kCommandFlag_ExpiryTimeValid
|
Geçerlilik bitiş zamanının geçerli olduğu zamanı ayarlayın. |
kCommandFlag_InitiationTimeValid
|
Başlatma zamanının geçerli olduğu zamanı ayarlayın. |
kCommandFlag_IsOneWay
|
Komut tek yönlü olduğunda ayarlayın. |
kCommandFlag_MustBeVersionValid
|
Sürüm alanının geçerli olduğu zamanı ayarlayın. |
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
Command işareti 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
Herkese açık işlevler
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 nesnesinin işaretçisi
|
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 )