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{
|
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. |
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
Bit flag Command.
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 )