Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl::Weave::Profile::DataManagement_Current::CommandSender

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

Fazit

Hinweis: Diese Klasse kapselt die Protokolldetails zum Senden von Befehlen, was die Mechanik vereinfacht, die für Anwendungen erforderlich ist. Die Anwendung stellt einen PacketBuffer mit der Nutzlast des Befehls sowie eine optionale Gruppe von Argumenten zur Verfügung. Diese ändern die Inhalte des Befehlsheaders und das Verhalten des Befehls. Der Nutzen dieses Wrappers bei der Befehlsverarbeitung ist in der Tat begrenzt, vor allem aufgrund der Komplexität/Flexibilität bei der Sicherheitsvalidierung und -archivierung/-deserieierung.

Die Details zur Befehlsvalidierung stehen noch offen.

Mit dieser Klasse können Anwendungen auch ableiten, ob die Daten in einer verknüpften TraitDataSenke dem Nebeneffekt des Commitand-Moduls entsprechen (basierend auf der in der Befehlsantwort angegebenen Version). Die Anwendung ist für die Verwaltung des Speichers dieses Objekts verantwortlich.

Weben Bindung

Ein Objekt dieser Klasse kann mit einer Weave-Bindung versehen werden, die als Standard-Bindung dient, die zum Senden von Befehlen verwendet wird. Außerdem kann der Nutzer für jeden Aufruf von SendCommand() eine Bindung bereitstellen, die die Standardeinstellung Bindung überschreibt. Eine Standardbindung (Bindung) ist nicht erforderlich. Eine an CommandSender bereitgestellte Bindung muss jedoch bereits initialisiert werden.

Ereignis-Callback

Der Nutzer muss eine Funktion dieses Typs definieren, wenn er über Ereignisse informiert werden soll, die nach dem Senden des Befehls auftreten (siehe „API-Ereignisse“). Der Wert kann NULL sein, wenn dem Nutzer nicht wichtig ist, was nach dem Senden des Befehls geschieht.

API-Ereignisse

Nach dem Senden eines Befehls sind folgende Ereignisse möglich:

Kommunikationsfehler

Beim Erstellen oder Senden des Befehls ist ein Fehler aufgetreten. Das ist auch auf die Antwort gewartet. Zu den Fehlern, die beim Warten auf eine Antwort auftreten können, gehören entscheidende Fehler oder unerwartetes Schließen einer Verbindung. Der Grund für den Fehler wird im Argument InEventParam für den EventCallback-Handler angegeben.

In Bearbeitung

Der Empfänger kann eine Benachrichtigung senden, die angibt, dass der Befehl zwar empfangen, aber noch nicht ausgeführt wurde. Der Empfänger sendet dann eine Antwort oder den Statusbericht. Es muss keine &In-3-Nachricht gesendet werden.

StatusBericht wurde empfangen

Wenn Sie einen StatusReport erhalten, ist ein Fehler bei der Verarbeitung des Befehls aufgetreten. Der StatusReport kann über InEventParam aufgerufen werden.

Antwort erhalten

Wenn eine Antwort eingeht, bedeutet das, dass der Befehl Befehl erfolgreich verarbeitet wurde. Die Antwort kann eine Nutzlast enthalten oder nicht. Wenn die Anwendung den Paketpuffer behalten möchte, kann ExchangeContext::AddRef() aufgerufen werden, um die Anzahl der Verweise zu erhöhen.

Öffentliche Typen

EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) Typdef
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

Strebenklemmen

nl::Weave::Profile::DataManagement_Current::CommandSender::InEventParam

Daten, die der Empfänger des benutzerdefinierten Befehls an den Absender zurückgegeben hat

nl::Weave::Profile::DataManagement_Current::CommandSender::OutEventParam

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

nl::Weave::Profile::DataManagement_Current::CommandSender::SendParams

Schließt Argumente ein, die an SendCommand() übergeben werden.

nl::Weave::Profile::DataManagement_Current::CommandSender::SynchrondTraitState

Öffentliche Typen

Ereignis-Callback

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

EventType

 EventType

Öffentliche Attribute

Mobile AppState

void * mAppState = NULL

mSyncronizedTraitState

SynchronizedTraitState * mSyncronizedTraitState = NULL

Öffentliche statische Funktionen

Standard-EventHandler

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
)

Befehl senden

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  ResourceIdentifier & aResourceId,
  uint32_t aProfileId,
  uint32_t aCommandType
)

Befehl senden

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  SendParams & aSendParams
)

SetSyncdTraitState festgelegt

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)