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{
|
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 )