nl:: Weave:: Profiles:: DataManagement_Current:: CommandSender
#include <src/lib/profiles/data-management/Current/CommandSender.h>
Ringkasan
Catatan:Class ini merangkum detail protokol pengiriman perintah, menyederhanakan mekanika yang terlibat untuk aplikasi. Aplikasi ini menyediakan PacketBuffer yang berisi payload perintah serta sekumpulan 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 menemukan efek samping perintah (berdasarkan versi yang diberikan dalam respons perintah). Aplikasi bertanggung jawab untuk mengelola penyimpanan objek tersebut.
Binding Menenun
Objek class ini dapat diinisialisasi dengan Binding Weave, yang akan berfungsi sebagai Binding default yang akan digunakan untuk mengirim Perintah. Pengguna juga dapat memberikan Binding ke setiap panggilan SendCommand(), yang akan mengganti Binding default. Anda tidak perlu menyediakan Binding default, tetapi setiap binding yang diberikan ke CommandSender harus sudah diinisialisasi.
EventCallback
Pengguna harus menentukan fungsi jenis ini jika ingin mendapatkan info terbaru tentang peristiwa yang terjadi setelah pengiriman perintah (lihat "Peristiwa API" di bawah). Ini bisa menjadi NULL jika pengguna tidak peduli dengan apa yang terjadi setelah perintah dikirim.
Peristiwa API
Peristiwa berikut adalah kemungkinan hasil setelah mengirim Perintah:
CommunicationError
Terjadi error saat membuat atau mengirimkan 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 ke pengendali EventCallback.
InProgressReceived
Penerima dapat mengirim laporan 'sedang berlangsung' yang menandakan bahwa Command telah diterima, namun belum selesai. Setelah selesai, penerima akan mengirimkan Respons atau StatusReport. Mengirim 'sedang berlangsung' pesan ini tidak diperlukan.
StatusReportReceived
Menerima StatusReport menyiratkan bahwa ada error dalam memproses Command. StatusReport dapat diakses melalui InEventParam.
ResponseReceived
Menerima Respons menyiratkan bahwa penerima Command berhasil menangani Perintah. Respons dapat berisi payload atau tidak. Jika aplikasi ingin mempertahankan buffer 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 ditampilkan kepada pengirim oleh penerima perintah kustom. |
nl:: |
Data ditampilkan kembali ke objek CommandSender dari fungsi EventCallback. |
nl:: |
Mengenkapsulasi argumen yang akan 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 )
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 )