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) 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 ditampilkan kepada pengirim oleh penerima perintah kustom.

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

Data ditampilkan kembali ke objek CommandSender dari fungsi EventCallback.

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

Mengenkapsulasi argumen yang akan 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
)

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
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)