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{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
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
)