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 è infatti limitata, principalmente a causa della complessità/flessibilità implicata nella convalida della sicurezza e nella serializzazione/de-serializzazione dei dati.
I dettagli per la convalida del comando sono ancora da definire
Per regolare i tempi di ritrasmissione per i contenuti In corso, per il report di stato e anche per il messaggio di risposta, il livello dell'applicazione deve gestire in qualche modo l'oggetto ExchangeContext. La soluzione migliore è ancora da definire, ma il livello di applicazione ha queste tre scelte:
1) Acquisisci il contesto di Exchange tramite GetExchangeContext e valutalo/modificalo direttamente. 2) Prealloca e configura un'associazione durante l'avvio, prima che arrivi qualsiasi comando, e configurala correttamente 3) Crea un'associazione temporanea utilizzando questa funzione BindingPool::NewRispondierBindingFromExchangeContext
In entrambi i casi (2) e (3), il livello applicazione può applicare l'impostazione di sicurezza/tempiatura mediante Binding::ConfiguraexistingExchangeContext. L'associazione non viene mai utilizzata per generare nuovi contesti di scambio per i comandi personalizzati, quindi non deve essere archiviata all'interno di questo handle.
Inoltre, il buffer del pacchetto della richiesta non è archiviato all'interno di questo handle, perché non ne è ovvio uso. Ciò è particolarmente vero se il livello dell'applicazione è in grado di gestire questo comando e inviare direttamente la risposta.
Il livello di applicazione riceverebbe il buffer dei pacchetti dallo stesso callback che riceve questo handle di comando. Se decide di gestire questo comando in modo asincrono, dovrà archiviare sia l'handle del 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 Exchange 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
|
Da impostare quando il tempo dell'azione è valido. |
kCommandFlag_ExpiryTimeValid
|
Imposta quando la data di scadenza è valida. |
kCommandFlag_InitiationTimeValid
|
Da impostare quando l'ora di inizializzazione è valida. |
kCommandFlag_IsOneWay
|
Da impostare quando il comando è unidirezionale. |
kCommandFlag_MustBeVersionValid
|
Da impostare quando 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 Exchange 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 )