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