O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

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

Propriedades
kCommandFlag_ActionTimeValid

Defina quando o tempo de ação é válido.

kCommandFlag_ExpiryTimeValid

Definido quando o tempo de expiração é válido.

kCommandFlag_InitiationTimeValid

Defina quando o tempo de inicialização é válido.

kCommandFlag_IsOneWay

Definido quando o comando é unilateral.

kCommandFlag_MustBeVersionValid

Definido quando o campo de versão é válido.

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
)