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

#include <src/lib/profiles/data-management/Current/CommandSender.h>

Podsumowanie

Uwaga: ta klasa zawiera szczegóły protokołu wysyłania poleceń, co upraszcza działanie aplikacji. Aplikacja udostępnia pakiet PacketBuffer zawierający ładunek polecenia, a także opcjonalny zestaw argumentów, które zmieniają zawartość nagłówka polecenia oraz działanie polecenia. Przydatność tego opakowania w przypadku obsługi poleceń jest rzeczywiście ograniczona, głównie ze względu na złożoność/elastyczność związane z weryfikacją zabezpieczeń oraz serializacją/deserializacją danych.

Szczegóły weryfikacji polecenia są nadal do ustalenia

Ta klasa pomaga aplikacjom określić, czy dane w powiązanym obiekcie TraitDataSink są zgodne z efektami ubocznymi polecenia (na podstawie wersji podanej w odpowiedzi polecenia). Aplikacja odpowiada za zarządzanie przechowywaniem tego obiektu.

Wiązanie splotowe

Obiekt tej klasy można zainicjować za pomocą wiązania Weave, które będzie używane jako domyślne Wiązanie używane do wysyłania poleceń. Użytkownik może też określić Wiązanie z każdym wywołaniem funkcji SendCommand(), które zastąpi domyślne Binding. Nie musisz podawać domyślnego Binding, ale wszystkie powiązania podane w CommandSender muszą już być zainicjowane.

EventCallback

Jeśli użytkownik chce otrzymywać informacje o zdarzeniach, które mają miejsce po wysłaniu polecenia, musi zdefiniować funkcję tego typu (patrz „Zdarzenia interfejsu API” poniżej). Ta wartość może mieć wartość NULL, jeśli użytkownik nie interesuje się, co dzieje się po wysłaniu polecenia.

Zdarzenia API

Po wysłaniu polecenia możliwe są następujące zdarzenia:

CommunicationError

Podczas tworzenia lub wysyłania polecenia albo oczekiwania na odpowiedź wystąpił błąd. Przykładami błędów, które mogą wystąpić podczas oczekiwania na odpowiedź, są kluczowe błędy lub nieoczekiwane zakończenie połączenia. Przyczyna błędu będzie podana w argumencie InEventParam modułu obsługi EventCallback.

InProgressReceived

Odbiorca może wysłać wiadomość o stanie „w toku”, która oznacza, że polecenie zostało odebrane, ale nie zostało jeszcze ukończone. Gdy skończysz, odbiorca wyśle odpowiedź lub raport stanu. Wysyłanie wiadomości o stanie „w toku” nie jest wymagane.

StatusReportReceived

Otrzymanie raportu StatusReport oznacza, że podczas przetwarzania polecenia wystąpił błąd. Raport StatusReport można uzyskać przez InEventParam.

ResponseReceived

Otrzymanie odpowiedzi oznacza, że odbiorca polecenia prawidłowo obsługuje polecenie. Odpowiedź może zawierać ładunek, ale nie musi. Jeśli aplikacja chce zachować bufor pakietów, może wywołać metodę ExchangeContext::AddRef() w celu zwiększenia liczby odwołań.

Typy publiczne

EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) typedef
void(*
EventType enum | typ wyliczeniowy

Atrybuty publiczne

mAppState = NULL
void *
mSyncronizedTraitState = NULL

Publiczne funkcje statyczne

DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void

Funkcje publiczne

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

Konstrukcja

nl::Weave::Profiles::DataManagement_Current::CommandSender::InEventParam

Dane zwrócone nadawcy przez odbiorcę niestandardowego polecenia.

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

Dane zwrócone do obiektu CommandSender z funkcji EventCallback.

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

Obejmuje argumenty, które mają zostać przekazane do metody SendCommand().

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

Typy publiczne

EventCallback

void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)

EventType

 EventType

Atrybuty publiczne

mAppState

void * mAppState = NULL

mSyncronizedTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

Publiczne funkcje statyczne

DefaultEventHandler

void DefaultEventHandler(
  void *aAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

Funkcje publiczne

Zamknij

void Close(
  bool aAbortNow
)

Zainicjuj

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
)