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) typedef
void(*
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::Weave::Profiles::DataManagement_Current::CommandSender::InEventParam

Data yang dikembalikan ke pengirim oleh penerima perintah kustom.

nl::Weave::Profiles::DataManagement_Current::CommandSender::OutEventParam

Data yang ditampilkan kembali ke objek CommandSender dari fungsi EventCallback.

nl::Weave::Profiles::DataManagement_Current::CommandSender::SendParams

Mengenkapsulasi argumen untuk diteruskan ke SendCommand().

nl::Weave::Profiles::DataManagement_Current::CommandSender::SynchronizedTraitState

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
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)