nl:: Weave:: Profiles:: DataManagement_Current:: Command
#include <src/lib/profiles/data-management/Current/Command.h>
Zusammenfassung
Hinweis:Diese Klasse ist darauf ausgelegt, ein bestimmtes Detail bei der Befehlsverarbeitung zu verbergen. Es wurde entschieden, die Details von ExchangeContext und der Authenticator-Validierung auszublenden und die Verarbeitung von PacketBuffers der Anwendungsebene zu überlassen. 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.
Um den Zeitpunkt der erneuten Übertragung für "In Bearbeitung", "Statusbericht" und auch für die Antwortnachricht anzupassen, muss die Anwendungsebene das ExchangeContext-Objekt verarbeiten. Die beste Vorgehensweise ist noch nicht festgelegt, aber auf der Anwendungsebene gibt es drei Möglichkeiten:
1) Rufen Sie den Exchange-Kontext über GetExchangeContext ab und werten Sie ihn direkt aus/passen Sie ihn an. 2) Weisen Sie während des Starts ein Binding zu, konfigurieren Sie es vor dem Eintreffen eines Befehls und konfigurieren Sie es ordnungsgemäß. 3) Erstellen Sie eine temporäre Binding mithilfe der Funktion „BindingPool::NewAnswererBindingFromExchangeContext“.
Sowohl in (2) als auch in (3) kann die Anwendungsebene die Sicherheits-/Zeiteinstellungen über Binding::ConfigureExchangeContext erzwingen. Das Binding wird nie verwendet, um neue Austauschkontexte für benutzerdefinierte Befehle zu generieren, sodass sie nicht in diesem Handle gespeichert werden muss.
Der Zwischenspeicher für Anfragepakete wird ebenfalls nicht in diesem Handle gespeichert, da er nicht offensichtlich verwendet wird. Dies gilt insbesondere, wenn die Anwendungsebene diesen Befehl verarbeiten und die Antwort direkt senden kann.
Die Anwendungsebene würde den Paketpuffer von derselben Callback-Funktion empfangen, die sie mit diesem Befehls-Handle empfängt. Wenn dieser Befehl asynchron verarbeitet werden soll, müssen sowohl das Befehls-Handle als auch der Paketpuffer gespeichert werden.
Öffentliche Typen |
|
---|---|
CommandFlags{
|
enum Das Flag Command (Befehl). |
CommandFlags
|
typedef Das Flag Command (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
|
Rufen Sie 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
Das Flag Command (Befehl).
Attribute | |
---|---|
kCommandFlag_ActionTimeValid
|
Legt fest, wann die Aktionszeit gültig ist. |
kCommandFlag_ExpiryTimeValid
|
Legt fest, wann die Ablaufzeit gültig ist. |
kCommandFlag_InitiationTimeValid
|
Legt fest, wann die Init-Zeit gültig ist. |
kCommandFlag_IsOneWay
|
Wird festgelegt, wenn der Befehl einseitig ist. |
kCommandFlag_MustBeVersionValid
|
Legt fest, wann das Versionsfeld gültig ist. |
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
Das Flag Command (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
Rufen Sie 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 )