nl :: Tecer:: Perfis :: DataManagement_Current :: Comando
#include <src/lib/profiles/data-management/Current/Command.h>
Resumo
Nota: Esta classe é projetado para esconder um certo detalhe no manuseio de comando. Decisão foi tomada para esconder os detalhes de ExchangeContext e validação autenticador, deixando a manipulação de PacketBuffers para a camada de aplicação. A utilidade desse wrapper em torno do tratamento de comandos é realmente limitada, principalmente devido à complexidade / flexibilidade envolvida na validação de segurança e serialização / desserialização de dados.
Os detalhes para validação do comando ainda são TBD
Para ajustar o tempo de retransmissão para o In-Progress, Relatório de Status, e também a mensagem de resposta, a camada de aplicação teria de lidar de alguma forma com o ExchangeContext objeto. A prática recomendada ainda é TBD, mas a camada de aplicativo tem estas três opções:
1) Adquirir o Contexto troca através GetExchangeContext e avaliar / ajustá-la directamente. 2) Pré-alocar e configurar uma ligação durante o arranque, antes de qualquer comando chega, e configurá-lo corretamente 3) Criar um temporária de ligação usando esta função BindingPool :: NewResponderBindingFromExchangeContext
Em (2) e (3), a camada de aplicativo pode impor a configuração de segurança / tempo por meio de Binding :: ConfigureExistingExchangeContext. A ligação nunca é usado para gerar novos contextos de câmbio para comandos personalizados, por isso não tem que ser armazenado dentro desta alça.
O buffer do pacote de solicitação também não é armazenado neste identificador, pois não há um uso óbvio dele. Isso é especialmente verdadeiro se a camada de aplicativo puder lidar com esse comando e enviar uma resposta diretamente.
A camada de aplicação receberia o buffer de pacote do mesmo retorno de chamada que recebe este identificador de comando. Se ele decidir manipular esse comando de maneira assíncrona, terá que armazenar o identificador do comando e o buffer do pacote.
Tipos públicos | |
---|---|
CommandFlags { | enum Os Comandos bandeira bits. |
CommandFlags | typedef Os Comandos bandeira bits. |
Atributos públicos | |
---|---|
actionTimeMicroSecond | int64_t |
commandType | uint64_t |
expiryTimeMicroSecond | int64_t |
initiationTimeMicroSecond | int64_t |
mustBeVersion | uint64_t |
Funções públicas | |
---|---|
Close (void) | void |
GetExchangeContext (void) const | Recupere o objeto de contexto de troca usado por este comando de entrada. |
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) |
Tipos públicos
CommandFlags
CommandFlags
Os Comandos bandeira bits.
CommandFlags
enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags
Os Comandos bandeira bits.
Atributos públicos
actionTimeMicroSecond
int64_t actionTimeMicroSecond
commandType
uint64_t commandType
expiryTimeMicroSecond
int64_t expiryTimeMicroSecond
InitiationTimeMicroSecond
int64_t initiationTimeMicroSecond
mustBeVersion
uint64_t mustBeVersion
Funções públicas
Perto
void Close( void )
GetExchangeContext
nl::Weave::ExchangeContext * GetExchangeContext( void ) const
Recupere o objeto de contexto de troca usado por este comando de entrada.
Detalhes | |
---|---|
Devoluções | Um ponteiro para o objeto de contexto de troca usado por este comando de entrada |
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 )