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 bufor PacketBuffer zawierający ładunek polecenia, a także opcjonalny zestaw argumentów, które zmieniają zawartość nagłówka polecenia oraz jego działanie. Przydatność tego otoki w zakresie obsługi poleceń jest w rzeczywistości ograniczona, głównie ze względu na złożoność i elastyczność procesu weryfikacji zabezpieczeń oraz w trakcie serializacji i usuwania zserializacji danych.

Szczegóły weryfikacji polecenia są nadal do ustalenia

Ta klasa pomaga też aplikacjom w określaniu, czy dane w powiązanym obiekcie TraitDataSink dotarły do efektów ubocznych polecenia (na podstawie wersji podanej w odpowiedzi na polecenie). Aplikacja odpowiada za zarządzanie pamięcią tego obiektu.

Wiązanie

Obiekt tej klasy można zainicjować za pomocą komponentu Weave Binding, które będzie służyło jako domyślne wiązanie używane do wysyłania poleceń. Użytkownik może też dodać element Binding do każdego wywołania funkcji SendCommand(), który zastępuje domyślne ustawienie Wiązanie. Podanie domyślnego ustawienia Binding (Wiązanie) nie jest konieczne, jednak każde powiązanie udostępnione do funkcji CommandSender musi być już zainicjowane.

EventCallback

Jeśli użytkownik chce otrzymywać informacje o zdarzeniach, które zachodzą po wysłaniu polecenia, użytkownik musi zdefiniować funkcję tego typu (patrz „Zdarzenia interfejsu API” poniżej). Może to być wartość NULL, jeśli użytkownikowi nie jest obojętne, co stanie się po wysłaniu polecenia.

Zdarzenia interfejsu API

Po wysłaniu polecenia możliwe są te zdarzenia:

CommunicationError

Podczas tworzenia lub wysyłania polecenia lub 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 zamknięcie połączenia. Przyczyna błędu będzie zawarta w argumencie InEventParam w module obsługi zdarzenia EventCallback.

InProgressReceived

Odbiorca może wysłać stan „w toku” informujący, że polecenie Command zostało odebrane, ale nie zostało jeszcze ukończone. Po zakończeniu tej operacji odbiorca wyśle odpowiedź lub raport Stanu. Wysyłanie „w toku” .

StatusReportReceived

Otrzymanie raportu StatusReport oznacza, że podczas przetwarzania polecenia Command wystąpił błąd. Dostęp do raportu StatusReport można uzyskać poprzez parametr InEventParam.

ResponseReceived

Otrzymanie odpowiedzi oznacza, że adresat Command prawidłowo obsługiwał Command. Odpowiedź może zawierać ładunek lub nie. Jeśli aplikacja chce zachować bufor pakietów, może wywołać funkcję ExchangeContext::AddRef(), aby zwiększyć liczbę odesł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

Struktura

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

Dane zwrócone do nadawcy przez odbiorcę polecenia niestandardowego.

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 przekazywane do funkcji 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
)

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
)