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

nl:: Weben:: Profile:: DataManagement_Current:: Befehl

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

Zusammenfassung

Hinweis: Diese Klasse ist für eine bestimmte Detail in Befehl Handhabung zu verbergen. Entscheidung ist gemacht worden , die Details zu verbergen ExchangeContext und Authenticator Validierung, während Verlassen der Umgang mit PacketBuffers auf der Anwendungsschicht. Der Nutzen dieses Wrappers um die Befehlsverarbeitung ist in der Tat begrenzt, hauptsächlich aufgrund der Komplexität/Flexibilität, die mit der Sicherheitsvalidierung und der Datenserialisierung/Deserialisierung verbunden ist.

Die Details für die Befehlsvalidierung sind noch TBD

Um die Wiederholungszeit für die In-Progress, Statusbericht, und auch Antwortnachricht einzustellen, die Anwendungsschicht müßte irgendwie mit dem umgehen ExchangeContext Objekt. Die Best Practice ist immer noch TBD, aber die Anwendungsschicht hat diese drei Möglichkeiten:

1) Erwerben Sie den Exchange - Kontext durch GetExchangeContext und direkt auswerten / einstellen. 2) vorbelegen und konfigurieren Bindung während des Bootens, bevor ein Befehl eintrifft, und konfigurieren es richtig 3) Erstellen Sie eine temporäre Bindung mit dieser Funktion BindingPool :: NewResponderBindingFromExchangeContext

Sowohl in (2) als auch in (3) kann die Anwendungsschicht die Sicherheits-/Zeiteinstellung durch Binding::ConfigureExistingExchangeContext erzwingen. Die Bindung wird nie neue Austausch Kontexte für benutzerdefinierte Befehle zu erzeugen, so dass es nicht in diesem Griff gespeichert werden muss.

Der Anforderungspaketpuffer wird auch nicht in diesem Handle gespeichert, da er nicht offensichtlich verwendet wird. Dies gilt insbesondere, wenn die Anwendungsschicht diesen Befehl verarbeiten und direkt eine Antwort senden kann.

Die Anwendungsschicht würde den Paketpuffer von demselben Rückruf empfangen, den sie dieses Befehls-Handle empfängt. Wenn es beschließt, diesen Befehl asynchron zu behandeln, müsste es sowohl das Befehlshandle als auch den Paketpuffer speichern.

Öffentliche Typen

CommandFlags {
kCommandFlag_MustBeVersionValid = 0x0001,
kCommandFlag_InitiationTimeValid = 0x0002,
kCommandFlag_ActionTimeValid = 0x0004,
kCommandFlag_ExpiryTimeValid = 0x0008,
kCommandFlag_IsOneWay = 0x0010
}
aufzählen
Der Befehl Flag - Bits.
CommandFlags Typdef
Der Befehl Flag - Bits.

Öffentliche Attribute

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

Öffentliche Funktionen

Close (void)
void
GetExchangeContext (void) const
Rufen Sie das Exchange-Kontextobjekt ab, das von diesem eingehenden Befehl verwendet wird.
IsActionTimeValid (void) const
bool
IsExpiryTimeValid (void) const
bool
IsInitiationTimeValid (void) const
bool
IsMustBeVersionValid (void) const
bool
IsOneWay (void) const
bool
SendError (uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR aWeaveError)
SendInProgress (void)
SendResponse (uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer *apPayload)
ValidateAuthenticator ( nl::Weave::System::PacketBuffer *aRequestBuffer)

Öffentliche Typen

Befehlsflaggen

 CommandFlags

Der Befehl Flag - Bits.

Eigenschaften
kCommandFlag_ActionTimeValid

Legen Sie fest, wann die Aktionszeit gültig ist.

kCommandFlag_ExpiryTimeValid

Legen Sie fest, wann die Ablaufzeit gültig ist.

kCommandFlag_InitiationTimeValid

Legen Sie fest, wann die Initialisierungszeit gültig ist.

kCommandFlag_IsOneWay

Festlegen, wenn der Befehl unidirektional ist.

kCommandFlag_MustBeVersionValid

Wird gesetzt, wenn das Versionsfeld gültig ist.

Befehlsflaggen

enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags

Der Befehl Flag - Bits.

Öffentliche Attribute

actionTimeMicroSecond

int64_t actionTimeMicroSecond

Befehlstyp

uint64_t commandType

AblaufZeitMicroSecond

int64_t expiryTimeMicroSecond

InitiationTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

Öffentliche Funktionen

Schließen

void Close(
  void
)

GetExchangeContext

nl::Weave::ExchangeContext * GetExchangeContext(
  void
) const 

Rufen Sie das Exchange-Kontextobjekt ab, das von diesem eingehenden Befehl verwendet wird.

Einzelheiten
Kehrt zurück
Ein Zeiger auf das Exchange-Kontextobjekt, das von diesem eingehenden Befehl verwendet wird

IsActionTimeValid

bool IsActionTimeValid(
  void
) const 

IsExpiryTimeValid

bool IsExpiryTimeValid(
  void
) const 

IsInitiationTimeValid

bool IsInitiationTimeValid(
  void
) const 

IsMustBeVersionValid

bool IsMustBeVersionValid(
  void
) const 

IsOneWay

bool IsOneWay(
  void
) const 

Fehler senden

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

Antwort senden

WEAVE_ERROR SendResponse(
  uint32_t traitInstanceVersion,
  nl::Weave::System::PacketBuffer *apPayload
)

ValidateAuthenticator

WEAVE_ERROR ValidateAuthenticator(
  nl::Weave::System::PacketBuffer *aRequestBuffer
)