nl::Weave::Profiles::DataManagement_Current::Command

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

Resumen

Nota: Esta clase se diseñó para ocultar cierto detalle en el manejo de comandos. Se tomó la decisión de ocultar los detalles de ExchangeContext y la validación del autenticador, al tiempo que se dejó a la capa de la aplicación el control de packageBuffers. La utilidad de este wrapper en torno al manejo de comandos es ciertamente limitada, principalmente debido a la complejidad y flexibilidad involucradas en la validación de la seguridad y la serialización/deserialización de datos.

Los detalles para la validación de comandos aún están por definirse

Para ajustar el tiempo de retransmisión del informe de estado, en curso y también del mensaje de respuesta, la capa de aplicación tendría que tratar de alguna manera con el objeto ExchangeContext. Aún no se ha definido la práctica recomendada, pero la capa de aplicación tiene estas tres opciones:

1) Adquirir el contexto de intercambio a través de GetExchangeContext y evaluarlo o ajustarlo directamente 2) Asignar previamente y configurar una vinculación durante el inicio, antes de que llegue cualquier comando, y configurarla correctamente 3) Crear una vinculación temporal con esta función BindingPool::NewResponderBindingFromExchangeContext

Tanto en (2) como en (3), la capa de aplicación puede aplicar la configuración de seguridad o tiempo a través de Binding::ConfigureExistingExchangeContext. La vinculación nunca se usa para generar nuevos contextos de intercambio para comandos personalizados, por lo que no tiene que almacenarse en este controlador.

El búfer del paquete de solicitud tampoco se almacena dentro de este controlador, ya que no hay un uso evidente de él. Esto es especialmente cierto si la capa de la aplicación puede controlar este comando y enviar la respuesta directamente.

La capa de la aplicación recibirá el búfer de paquetes de la misma devolución de llamada que recibe este controlador de comando. Si decide manejar este comando de forma asíncrona, tendría que almacenar tanto el controlador del comando como el búfer de paquetes.

Tipos públicos

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
Los bits de la marca Command.
CommandFlags typedef
Los bits de la marca Command.

Atributos públicos

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

Funciones públicas

Close(void)
void
GetExchangeContext(void) const
Recupera el objeto de contexto de intercambio que usa este comando entrante.
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

Los bits de la marca Command.

Propiedades
kCommandFlag_ActionTimeValid

Establece cuándo el tiempo de acción es válido.

kCommandFlag_ExpiryTimeValid

Se establece cuando la hora de vencimiento es válida.

kCommandFlag_InitiationTimeValid

Se establece cuando el tiempo de inicio es válido.

kCommandFlag_IsOneWay

Se establece cuando el comando es unidireccional.

kCommandFlag_MustBeVersionValid

Se establece cuando el campo de la versión es válido.

CommandFlags

enum nl::Weave::Profiles::DataManagement_Current::Command::CommandFlags CommandFlags

Los bits de la marca Command.

Atributos públicos

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

int64_t expiryTimeMicroSecond

initiationTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

Funciones públicas

Cerrar

void Close(
  void
)

GetExchangeContext

nl::Weave::ExchangeContext * GetExchangeContext(
  void
) const 

Recupera el objeto de contexto de intercambio que usa este comando entrante.

Detalles
Resultado que se muestra
Un puntero al objeto de contexto de intercambio que usa este comando entrante

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
)