nl:: Weave:: Profil:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
Ringkasan
Catatan:Class ini merangkum detail protokol untuk mengirim perintah, sehingga menyederhanakan mekanika yang digunakan untuk aplikasi. Aplikasi ini menyediakan PacketBuffer yang berisi payload perintah serta kumpulan argumen opsional yang mengubah isi header perintah dan perilaku perintah. Utilitas wrapper ini seputar penanganan perintah memang terbatas, terutama karena kompleksitas/fleksibilitas yang terlibat dalam validasi keamanan dan serialisasi/de-serialisasi data.
Detail untuk validasi perintah masih tersedia
Class ini juga membantu aplikasi menyimpulkan apakah data dalam TraitDataSink terkait telah menangkap efek samping komunikasi (berdasarkan versi yang diberikan dalam respons perintah). Aplikasi bertanggung jawab untuk mengelola penyimpanan objek tersebut.
Menenun Binding
Objek class ini dapat diinisialisasi dengan Binding Weave, yang akan berfungsi sebagai Binding default untuk digunakan untuk mengirim Perintah. Pengguna juga dapat memberikan Binding ke setiap panggilan SendCommand(), yang akan menggantikan Binding default. Anda tidak perlu memberikan Binding default, tetapi binding apa pun yang disediakan untuk CommandSender harus sudah diinisialisasi.
Callback Peristiwa
Pengguna harus menentukan fungsi dari jenis ini jika mereka ingin diperbarui tentang peristiwa yang terjadi setelah pengiriman perintah (lihat "API Events" di bawah). Ini bisa menjadi NULL jika pengguna tidak peduli apa yang terjadi setelah perintah dikirim.
Peristiwa API
Peristiwa berikut adalah kemungkinan hasil setelah mengirim Command:
Error Komunikasi
Terjadi error saat membentuk atau mengirim Perintah, atau saat menunggu respons. Contoh error yang dapat terjadi saat menunggu respons adalah error utama atau penutupan koneksi yang tidak terduga. Alasan error akan dimuat dalam argumen InEventParam untuk pengendali EventCallback.
Dalam Proses Diterima
Penerima dapat mengirim pesan 'dalam proses' yang menandakan bahwa Perintah telah diterima, tetapi belum selesai. Setelah selesai, penerima akan mengirim Respons atau StatusReport. Mengirim pesan 'dalam proses' tidak diperlukan.
StatusLaporan Diterima
Penerimaan StatusReport menunjukkan bahwa terjadi error saat memproses Command. StatusReport dapat diakses melalui InEventParam.
Respons Diterima
Menerima Respons menyiratkan bahwa penerima Command berhasil menangani Command. Respons dapat berisi payload atau tidak. Jika aplikasi ingin mempertahankan buffer paket, aplikasi dapat memanggil ExchangeContext::AddRef() untuk menambah jumlah ref.
Jenis publik |
|
---|---|
EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
|
typedefvoid(*
|
EventType
|
enum |
Atribut publik |
|
---|---|
mAppState = NULL
|
void *
|
mSyncronizedTraitState = NULL
|
Fungsi statis publik |
|
---|---|
DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
|
void
|
Fungsi publik |
|
---|---|
Close(bool aAbortNow)
|
void
|
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
|
|
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
|
|
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
|
void
|
Struct |
|
---|---|
nl:: |
Data yang ditampilkan kepada pengirim oleh penerima perintah kustom. |
nl:: |
Data yang ditampilkan kembali ke objek CommandSender dari fungsi EventCallback. |
nl:: |
Enkapsulasi argumen yang akan diteruskan ke SendCommand(). |
nl:: |
Jenis publik
Callback Peristiwa
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
Jenis Peristiwa
EventType
Atribut publik
mAppState
void * mAppState = NULL
mSyncronizedTraitState
SynchronizedTraitState * mSyncronizedTraitState = NULL
Fungsi statis publik
PengendaliPeristiwaDefault
void DefaultEventHandler( void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
Fungsi publik
Tutup
void Close( bool aAbortNow )
Init
WEAVE_ERROR Init( nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType )
SendCommand
WEAVE_ERROR SendCommand( nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams )