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

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

Zusammenfassung

Hinweis:Diese Klasse enthält die Protokolldetails zum Senden von Befehlen, wodurch die Mechanismen für Anwendungen vereinfacht werden. Die Anwendung bietet einen PacketBuffer, der die Nutzlast des Befehls sowie einen optionalen Satz von Argumenten enthält, die den Inhalt des Befehlsheaders und das Verhalten des Befehls ändern. Der Nutzen dieses Wrappers für die Befehlsverarbeitung ist tatsächlich begrenzt, hauptsächlich aufgrund der Komplexität/Flexibilität der Sicherheitsvalidierung und Datenserialisierung/Deserialisierung.

Details zur Befehlsvalidierung stehen noch aus

Mit dieser Klasse können Anwendungen außerdem ableiten, ob die Daten in einer verknüpften TraitDataSink die Nebeneffekte des Befehls abgerufen haben (basierend auf der in der Befehlsantwort angegebenen Version). Die Anwendung ist für die Verwaltung des Speichers dieses Objekts verantwortlich.

Weave-Bindung

Ein Objekt dieser Klasse kann mit einer Weave-Binding initialisiert werden, die als standardmäßige Binding zum Senden von Befehlen dient. Der Nutzer kann auch ein Binding für jeden Aufruf von SendCommand() bereitstellen, wodurch die Standardeinstellung Binding überschrieben wird. Es ist nicht erforderlich, eine Standard-Binding anzugeben. Jede an CommandSender bereitgestellte Bindung muss jedoch bereits initialisiert sein.

EventCallback

Der Nutzer muss eine Funktion dieses Typs definieren, wenn er über Ereignisse informiert werden möchte, die nach dem Senden des Befehls eintreten (siehe „API-Ereignisse“ unten). Dieser kann NULL sein, wenn es dem Nutzer egal ist, was nach dem Senden des Befehls geschieht.

API-Ereignisse

Folgende Ereignisse sind möglich, nachdem ein Command gesendet wurde:

CommunicationError

Beim Erstellen oder Senden des Command-Objekts oder beim Warten auf eine Antwort ist ein Fehler aufgetreten. Beispiele für Fehler, die beim Warten auf eine Antwort auftreten können, sind wichtige Fehler oder das unerwartete Schließen einer Verbindung. Die Fehlerursache ist im Argument InEventParam an den EventCallback-Handler enthalten.

InProgressReceived

Der Empfänger kann eine Nachricht mit dem Status "In Bearbeitung" senden. die anzeigt, dass der Command empfangen wurde, aber noch nicht abgeschlossen ist. Anschließend sendet der Empfänger eine Antwort oder einen Statusbericht. „In Bearbeitung“ senden ist nicht erforderlich.

StatusReportReceived

Der Empfang eines Statusberichts deutet darauf hin, dass bei der Verarbeitung des Befehls ein Fehler aufgetreten ist. Der StatusReport kann über den InEventParam aufgerufen werden.

ResponseReceived

Wenn Sie eine Antwort erhalten, bedeutet das, dass der Empfänger von Befehl den Befehl erfolgreich ausgeführt hat. Die Antwort kann eine Nutzlast enthalten oder nicht. Wenn die Anwendung den Paketzwischenspeicher beibehalten möchte, kann sie ExchangeContext::AddRef() aufrufen, um die Anzahl der Verweise zu erhöhen.

Öffentliche Typen

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

Öffentliche Attribute

mAppState = NULL
void *
mSyncronizedTraitState = NULL

Öffentliche statische Funktionen

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

Öffentliche Funktionen

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

Strukturen

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

Daten, die vom Empfänger des benutzerdefinierten Befehls an den Absender zurückgegeben werden.

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

Daten, die von einer EventCallback-Funktion an ein CommandSender-Objekt zurückgegeben werden.

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

Kapselt Argumente, die an SendCommand() übergeben werden sollen.

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

Öffentliche Typen

EventCallback

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

EventType

 EventType

Öffentliche Attribute

mAppState

void * mAppState = NULL

mSyncronizedTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

Öffentliche statische Funktionen

DefaultEventHandler

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

Öffentliche Funktionen

Schließen

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
)