nl::Weave::Profiles::DataManagement_Current::Command

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

Zusammenfassung

Hinweis:Diese Klasse dient dazu, bestimmte Details bei der Befehlsverarbeitung zu verbergen. Es wurde beschlossen, die Details von ExchangeContext und der Authenticator-Validierung auszublenden, während die Verarbeitung von PacketBuffers der Anwendungsebene überlassen wird. 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

Um den Zeitpunkt der erneuten Übertragung für den Status "In Bearbeitung", den Statusbericht und die Antwortnachricht anzupassen, muss die Anwendungsebene mit dem Objekt ExchangeContext umgehen. Die beste Vorgehensweise ist noch nicht festgelegt, aber die Anwendungsschicht hat diese drei Auswahlmöglichkeiten:

1) Rufen Sie den Exchange-Kontext über GetExchangeContext ab und bewerten/passen Sie ihn direkt. 2) Weisen Sie ein Binding beim Start vor, bevor ein Befehl eintrifft, und konfigurieren Sie es und konfigurieren Sie es ordnungsgemäß. 3) Erstellen Sie eine temporäre Binding mit der Funktion „BindingPool::NewReplyerBindingFromExchangeContext“.

Sowohl in (2) als auch in (3) kann die Anwendungsebene die Sicherheits-/Zeiteinstellung durch Binding::ConfigureVorhandeneExchangeContext erzwingen. Binding wird nie zum Generieren neuer Austauschkontexte für benutzerdefinierte Befehle verwendet und muss daher nicht in diesem Handle gespeichert werden.

Der Zwischenspeicher des Anfragepakets wird ebenfalls nicht in diesem Handle gespeichert, da er nicht offensichtlich verwendet wird. Dies gilt insbesondere, wenn die Anwendungsschicht diesen Befehl verarbeiten und die Antwort direkt senden kann.

Die Anwendungsschicht empfängt den Paketzwischenspeicher von demselben Callback, den sie diesen Befehls-Handle empfängt. Wenn dieser Befehl asynchron verarbeitet werden soll, müssen sowohl das Befehls-Handle als auch der Paketzwischenspeicher gespeichert werden.

Öffentliche Typen

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
Die Bits des Flags Befehl.
CommandFlags typedef
Die Bits des Flags Befehl.

Ö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
Ruft das von diesem eingehenden Befehl verwendete Exchange-Kontextobjekt ab.
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

CommandFlags

 CommandFlags

Die Bits des Flags Befehl.

Attribute
kCommandFlag_ActionTimeValid

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

kCommandFlag_ExpiryTimeValid

Legt fest, wann die Ablaufzeit gültig ist.

kCommandFlag_InitiationTimeValid

Legt fest, wann die Initialisierungszeit gültig ist.

kCommandFlag_IsOneWay

Wird festgelegt, wenn der Befehl in eine Richtung erfolgt.

kCommandFlag_MustBeVersionValid

Legt fest, wann das Versionsfeld gültig ist.

CommandFlags

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

Die Bits des Flags Befehl.

Öffentliche Attribute

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

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 

Ruft das von diesem eingehenden Befehl verwendete Exchange-Kontextobjekt ab

Details
Rückgabe
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 

SendError

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

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

SendResponse

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

ValidateAuthenticator

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