nl:: Menenun:: Profil:: DataManagement_Current:: Perintah
#include <src/lib/profiles/data-management/Current/Command.h>
Ringkasan
Catatan: Kelas ini dirancang untuk menyembunyikan detail tertentu dalam penanganan perintah. Keputusan telah dibuat untuk menyembunyikan rincian ExchangeContext dan authenticator validasi, sementara meninggalkan penanganan PacketBuffers ke lapisan aplikasi. Utilitas pembungkus ini di sekitar penanganan perintah memang terbatas, terutama karena kompleksitas/fleksibilitas yang terlibat dalam validasi keamanan dan serialisasi/de-serialisasi data.
Detail untuk validasi perintah masih TBD
Untuk menyesuaikan waktu pengiriman ulang untuk In-Progress, Status Report, dan juga pesan Response, lapisan aplikasi harus entah bagaimana berurusan dengan ExchangeContext objek. Praktik terbaik masih TBD, tetapi lapisan aplikasi memiliki tiga pilihan berikut:
1) Memperoleh Konteks Bursa melalui GetExchangeContext dan langsung mengevaluasi / menyesuaikan. 2) Pre-mengalokasikan dan mengkonfigurasi Binding saat boot, sebelum perintah apapun tiba, dan mengkonfigurasi dengan benar 3) Buat sementara Binding menggunakan fungsi ini BindingPool :: NewResponderBindingFromExchangeContext
Di kedua (2) dan (3), lapisan aplikasi dapat menerapkan pengaturan keamanan/waktu melalui Binding::ConfigureExistingExchangeContext. The Binding tidak pernah digunakan untuk menghasilkan konteks pertukaran baru untuk perintah kustom, sehingga tidak harus disimpan dalam menangani ini.
Buffer paket permintaan juga tidak disimpan dalam pegangan ini, karena tidak ada penggunaannya yang jelas. Ini terutama benar jika lapisan aplikasi dapat menangani perintah ini dan mengirimkan respons secara langsung.
Lapisan aplikasi akan menerima buffer paket dari panggilan balik yang sama dengan yang menerima pegangan perintah ini. Jika memutuskan untuk menangani perintah ini secara asinkron, ia harus menyimpan pegangan perintah dan buffer paket.
Tipe publik | |
---|---|
CommandFlags { | enum The Command bendera bit. |
CommandFlags | typedef The Command bendera bit. |
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 pertukaran 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) |
Tipe publik
Bendera Perintah
CommandFlags
The Command bendera bit.
Bendera Perintah
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
The Command bendera bit.
Atribut publik
actionTimeMicroSecond
int64_t actionTimeMicroSecond
jenis perintah
uint64_t commandType
ExpiryTimeMicroSecond
int64_t expiryTimeMicroSecond
inisiasiWaktuMicroSecond
int64_t initiationTimeMicroSecond
mustBeVersion
uint64_t mustBeVersion
Fungsi publik
Menutup
void Close( void )
GetExchangeContext
nl::Weave::ExchangeContext * GetExchangeContext( void ) const
Ambil objek konteks pertukaran yang digunakan oleh perintah masuk ini.
rincian | |
---|---|
Kembali | Pointer ke objek konteks pertukaran yang digunakan oleh perintah masuk ini |
IsActionTimeValid
bool IsActionTimeValid( void ) const
IsExpiryTimeValid
bool IsExpiryTimeValid( void ) const
ApakahInitiationTimeValid
bool IsInitiationTimeValid( void ) const
IsHarusBeVersionValid
bool IsMustBeVersionValid( void ) const
IsOneWay
bool IsOneWay( void ) const
KirimError
WEAVE_ERROR SendError( uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError )
KirimInProgress
WEAVE_ERROR SendInProgress( void )
KirimRespon
WEAVE_ERROR SendResponse( uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload )
Validasi Authenticator
WEAVE_ERROR ValidateAuthenticator( nl::Weave::System::PacketBuffer *aRequestBuffer )