nl::Weave::Profiles::DataManagement_Current::Command

#include <src/lib/profiles/data-management/Current/Command.h>

Ringkasan

Catatan: Class ini didesain untuk menyembunyikan detail tertentu dalam penanganan perintah. Keputusan telah dibuat untuk menyembunyikan detail ExchangeContext dan validasi pengautentikasi, sekaligus membiarkan penanganan PacketBuffers pada lapisan aplikasi. Utilitas wrapper ini terkait penanganan perintah memang terbatas, terutama karena kompleksitas/fleksibilitas yang terlibat dalam validasi keamanan dan serialisasi/de-serialisasi data.

Detail untuk validasi perintah masih belum ditentukan

Untuk menyesuaikan waktu transmisi ulang untuk pesan Dalam Proses, Laporan Status, dan juga Respons, lapisan aplikasi harus menangani objek ExchangeContext. Praktik terbaik masih belum ditentukan, tetapi lapisan aplikasi memiliki tiga pilihan berikut:

1) Memperoleh Konteks Exchange melalui GetExchangeContext dan langsung mengevaluasi/menyesuaikannya. 2) Alokasikan dan konfigurasi Binding sebelumnya selama booting, sebelum perintah apa pun tiba, dan konfigurasikan dengan benar 3) Buat Binding sementara menggunakan fungsi ini BindingPool::NewResponderBindingFromExchangeContext

Di (2) dan (3), lapisan aplikasi dapat menerapkan pengaturan keamanan/waktu melalui Binding::ConfigureExistingExchangeContext. Binding tidak pernah digunakan untuk membuat konteks pertukaran baru untuk perintah kustom, sehingga tidak harus disimpan dalam handle ini.

Buffering paket permintaan juga tidak disimpan dalam handle ini, karena tidak ada penggunaannya yang jelas. Terutama jika lapisan aplikasi dapat menangani perintah ini dan mengirimkan respons secara langsung.

Lapisan aplikasi akan menerima buffering paket dari callback yang sama dengan yang menerima handle perintah ini. Jika memutuskan untuk menangani perintah ini secara asinkron, ia harus menyimpan tuas perintah dan buffer paket.

Jenis publik

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
Bit flag Command.
CommandFlags typedef
Bit flag Command.

Atribut publik

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

Fungsi publik

Close(void)
void
GetExchangeContext(void) const
Ambil objek konteks exchange yang digunakan oleh perintah masuk ini.
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)

Jenis publik

CommandFlags

 CommandFlags

Bit flag Command.

Properti
kCommandFlag_ActionTimeValid

Tetapkan kapan waktu tindakan valid.

kCommandFlag_ExpiryTimeValid

Setel kapan waktu masa berakhir valid.

kCommandFlag_InitiationTimeValid

Tetapkan ketika waktu init valid.

kCommandFlag_IsOneWay

Menetapkan kapan perintah bersifat satu arah.

kCommandFlag_MustBeVersionValid

Tetapkan saat kolom versi valid.

Atribut publik

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

int64_t expiryTimeMicroSecond

initiationTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

Fungsi publik

Tutup

void Close(
  void
)

GetExchangeContext

nl::Weave::ExchangeContext * GetExchangeContext(
  void
) const 

Ambil objek konteks exchange yang digunakan oleh perintah masuk ini.

Detail
Hasil
Pointer ke objek konteks exchange yang digunakan oleh perintah masuk ini

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
)