nl:: Weave:: Profiles:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
Ringkasan
Catatan: Class ini merangkum detail protokol pengiriman perintah, sehingga menyederhanakan mekanisme yang diperlukan untuk aplikasi. Aplikasi menyediakan PacketBuffer yang berisi payload perintah serta serangkaian argumen opsional yang mengubah konten header perintah serta perilaku perintah. 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
Class ini juga membantu aplikasi menyimpulkan apakah data dalam TraitDataSink terkait telah menangkap efek samping perintah tersebut (berdasarkan versi yang diberikan dalam respons perintah). Aplikasi bertanggung jawab untuk mengelola penyimpanan objek tersebut.
Binding Anyaman
Objek class ini dapat diinisialisasi dengan Binding Weave, yang akan berfungsi sebagai Binding default yang digunakan untuk mengirim Perintah. Pengguna juga dapat menyediakan Binding ke setiap panggilan SendCommand(), yang akan mengganti Binding default. Anda tidak perlu menyediakan Binding default, tetapi binding apa pun yang disediakan ke CommandSender harus sudah diinisialisasi.
EventCallback
Pengguna harus menentukan fungsi jenis ini jika ingin mendapatkan informasi terbaru tentang peristiwa yang terjadi setelah pengiriman perintah (lihat "Peristiwa API" 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:
CommunicationError
Terjadi error saat membuat atau mengirim Command, 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 ke pengendali EventCallback.
InProgressReceived
Penerima dapat mengirim pesan 'dalam proses' yang menandakan bahwa Perintah telah diterima, tetapi belum selesai. Setelah selesai, penerima akan mengirimkan Response atau StatusReport. Tidak perlu mengirim pesan 'sedang berlangsung'.
StatusReportReceived
Penerimaan StatusReport menyiratkan bahwa terjadi error saat memproses Command. StatusReport dapat diakses melalui InEventParam.
ResponseReceived
Menerima Respons menyiratkan bahwa penerima Command berhasil menangani Command. Respons dapat berisi payload atau tidak. Jika aplikasi ingin mempertahankan buffering paket, aplikasi dapat memanggil ExchangeContext::AddRef() untuk meningkatkan 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 dikembalikan ke pengirim oleh penerima perintah kustom. |
nl:: |
Data yang ditampilkan kembali ke objek CommandSender dari fungsi EventCallback. |
nl:: |
Mengenkapsulasi argumen untuk diteruskan ke SendCommand(). |
nl:: |
Jenis publik
EventCallback
void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)
EventType
EventType
Atribut publik
mAppState
void * mAppState = NULL
mSyncronizedTraitState
SynchronizedTraitState * mSyncronizedTraitState = NULL
Fungsi statis publik
DefaultEventHandler
void DefaultEventHandler( void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam )
Fungsi publik
Tutup
void Close( bool aAbortNow )
Inisiasi
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 )