nl:: Weave:: Profiles:: DataManagement_Current:: Command
#include <src/lib/profiles/data-management/Current/Command.h>
Riepilogo
Nota: questa classe è progettata per nascondere un determinato dettaglio nella gestione dei comandi. È stata presa la decisione di nascondere i dettagli di ExchangeContext e della convalida dell'autenticatore, lasciando la gestione di PacketBuffers al livello dell'applicazione. L’utilità di questo wrapper per la gestione dei comandi è effettivamente limitata, principalmente a causa della complessità/flessibilità coinvolti nella convalida della sicurezza e nella serializzazione/deserializzazione dei dati.
I dettagli per la convalida dei comandi sono ancora da definire
Per regolare i tempi della ritrasmissione per il messaggio In corso, il report sullo stato e anche il messaggio di risposta, il livello di applicazione deve in qualche modo gestire l'oggetto ExchangeContext. La best practice è ancora da definire, ma il livello di applicazione prevede tre opzioni:
1) Acquisisci contesto di scambio tramite GetExchangeContext e valutalo/modificalo direttamente. 2) Pre-alloca e configura un Binding durante l'avvio, prima che arrivi qualsiasi comando, e configuralo correttamente 3) Crea un Binding temporaneo utilizzando questa funzione BindingPool::NewResponderBindingFromExchangeContext
In entrambi i casi (2) e (3), il livello dell'applicazione può applicare l'impostazione di sicurezza/temporanea tramite Binding::ConfiguraExampleExchangeContext. L'elemento Binding non viene mai utilizzato per generare nuovi contesti di scambio per i comandi personalizzati, quindi non deve essere archiviato all'interno di questo handle.
Anche il buffer dei pacchetti della richiesta non è archiviato all'interno di questo handle, poiché non è evidente che non è utilizzato. Ciò è particolarmente vero se il livello dell'applicazione può gestire questo comando e inviare direttamente la risposta.
Il livello dell'applicazione riceverebbe il buffer dei pacchetti dallo stesso callback a cui riceve questo handle. Se decidesse di gestire questo comando in modo asincrono, dovrà archiviare sia l'handle di comando sia il buffer dei pacchetti.
Tipi pubblici |
|
---|---|
CommandFlags{
|
enum I bit del flag Command. |
CommandFlags
|
typedef I bit del flag Command. |
Attributi pubblici |
|
---|---|
actionTimeMicroSecond
|
int64_t
|
commandType
|
uint64_t
|
expiryTimeMicroSecond
|
int64_t
|
initiationTimeMicroSecond
|
int64_t
|
mustBeVersion
|
uint64_t
|
Funzioni pubbliche |
|
---|---|
Close(void)
|
void
|
GetExchangeContext(void) const
|
Recupera l'oggetto di contesto dello scambio utilizzato da questo comando in entrata.
|
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)
|
Tipi pubblici
CommandFlags
CommandFlags
I bit del flag Command.
Proprietà | |
---|---|
kCommandFlag_ActionTimeValid
|
Imposta quando la data e l'ora dell'azione è valida. |
kCommandFlag_ExpiryTimeValid
|
Imposta quando la data di scadenza è valida. |
kCommandFlag_InitiationTimeValid
|
Imposta quando il tempo di inizializzazione è valido. |
kCommandFlag_IsOneWay
|
Impostato quando il comando è unidirezionale. |
kCommandFlag_MustBeVersionValid
|
Imposta il momento in cui il campo della versione è valido. |
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
I bit del flag Command.
Attributi pubblici
actionTimeMicroSecond
int64_t actionTimeMicroSecond
commandType
uint64_t commandType
expiryTimeMicroSecond
int64_t expiryTimeMicroSecond
initiationTimeMicroSecond
int64_t initiationTimeMicroSecond
mustBeVersion
uint64_t mustBeVersion
Funzioni pubbliche
Chiudi
void Close( void )
GetExchangeContext
nl::Weave::ExchangeContext * GetExchangeContext( void ) const
Recupera l'oggetto di contesto dello scambio utilizzato da questo comando in entrata.
Dettagli | |
---|---|
Restituisce |
Un puntatore all'oggetto di contesto dello scambio utilizzato da questo comando in entrata
|
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 )