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 der Mechanismus für Anwendungen vereinfacht wird. Die Anwendung stellt einen PacketBuffer bereit, der die Nutzlast des Befehls sowie eine optionale Reihe von Argumenten enthält, die den Inhalt des Befehlsheaders sowie das Verhalten des Befehls ändern. Der Nutzen dieses Wrappers für die Befehlsverarbeitung ist in der Tat begrenzt, hauptsächlich aufgrund der Komplexität/Flexibilität der Sicherheitsvalidierung und Datenserialisierung/Deserialisierung.

Die Details für die Befehlsvalidierung stehen noch aus.

Diese Klasse hilft Anwendungen auch, abzuleiten, ob die Daten innerhalb einer zugehörigen TraitDataSink die Nebenwirkungen des Befehls aufgeholt haben (basierend auf der Version, die in der Befehlsantwort bereitgestellt wird). Die Anwendung ist für die Verwaltung des Speichers dieses Objekts verantwortlich.

Weave-Bindung

Ein Objekt dieser Klasse kann mit einer Weave-Bindung initialisiert werden, die als Standard-Bindung zum Senden von Befehlen dient. Der Nutzer kann auch ein Binding für jeden Aufruf von SendCommand() angeben, wodurch die standardmäßige 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 auftreten (siehe „API-Ereignisse“ unten). Dieser Wert kann NULL sein, wenn es für den Nutzer nicht wichtig ist, was nach dem Senden des Befehls geschieht.

API-Ereignisse

Folgende Ereignisse sind mögliche Ergebnisse nach dem Senden eines Command:

CommunicationError

Beim Erstellen oder Senden von Command (Befehl) 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 für den EventCallback-Handler enthalten.

InProgressReceived

Der Empfänger kann eine Nachricht senden, die angezeigt wird, wenn der Befehl empfangen, aber noch nicht abgeschlossen wurde. Anschließend sendet der Empfänger eine Antwort oder einen StatusReport. Es ist nicht erforderlich, die Nachricht „In Bearbeitung“ zu senden.

StatusReportReceived

Der Erhalt eines StatusReport deutet darauf hin, dass bei der Verarbeitung von Command ein Fehler aufgetreten ist. Der StatusReport kann über InEventParam aufgerufen werden.

ResponseReceived

Der Erhalt einer Antwort deutet darauf hin, dass der Command-Empfänger den Command erfolgreich ausgeführt hat. Die Antwort kann eine Nutzlast enthalten oder nicht. Wenn die Anwendung den Paketpuffer 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 der Empfänger des benutzerdefinierten Befehls an den Absender zurückgibt.

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 ein, 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
)