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

Özellikleri
kCommandFlag_ActionTimeValid

Eylem süresinin ne zaman geçerli olacağını ayarlayın.

kCommandFlag_ExpiryTimeValid

Son kullanma süresinin ne zaman geçerli olduğunu ayarlayın.

kCommandFlag_InitiationTimeValid

Başlangıç ​​zamanının ne zaman geçerli olacağını ayarlayın.

kCommandFlag_IsOneWay

Komutun tek yönlü olduğu zamanı ayarlayın.

kCommandFlag_MustBeVersionValid

Sürüm alanının ne zaman geçerli olacağını ayarlayın.

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
)