O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

nl :: Tecer:: Perfis :: DataManagement_Current :: Comando

#include <src/lib/profiles/data-management/Current/Command.h>

Resumo

Nota: Esta classe foi projetada para ocultar alguns detalhes no tratamento de comandos. A decisão foi tomada para ocultar os detalhes de ExchangeContext e validação do autenticador, deixando a manipulação de PacketBuffers para a camada de aplicativo. A utilidade desse wrapper em torno do manuseio 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, Status Report e também a mensagem Response, a camada do aplicativo teria que lidar de alguma forma com o objeto ExchangeContext . A prática recomendada ainda é TBD, mas a camada de aplicativo tem estas três opções:

1) Adquira o Exchange Context através de GetExchangeContext e avalie / ajuste diretamente. 2) Pré-aloque e configure um Binding durante a inicialização, antes que qualquer comando chegue, e configure-o corretamente 3) Crie um Binding temporário 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. O Binding nunca é usado para gerar novos contextos de troca para comandos personalizados, portanto, não precisa ser armazenado neste identificador.

O buffer do pacote de solicitação também não é armazenado neste identificador, pois não há 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 bits do sinalizador de comando .
CommandFlags typedef
Os bits do sinalizador de comando .

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 bits do sinalizador de comando .

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 bits do sinalizador de comando .

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

Fechar

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
)