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{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
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
)