nl :: Tejido:: Perfiles: DataManagement_Current :: Mando

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

Resumen

Nota: Esta clase está diseñada para ocultar un cierto detalle en el manejo de comandos. Ha tomado la decisión de ocultar los detalles de ExchangeContext y validación autenticador, dejando el manejo de PacketBuffers a la capa de aplicación. La utilidad de este contenedor en torno al manejo de comandos es de hecho limitada, principalmente debido a la complejidad / flexibilidad involucrada en la validación de seguridad y la serialización / deserialización de datos.

Los detalles para la validación del comando aún están por determinar

Para ajustar el tiempo de retransmisión para el En-Progreso, Informe de estado, y también el mensaje de respuesta, la capa de aplicación tendría que tratar de alguna manera con el ExchangeContext objeto. La mejor práctica aún está por determinar, pero la capa de aplicación tiene estas tres opciones:

1) Adquirir el contexto de cambio a través GetExchangeContext y evaluar directamente / ajustarlo. 2) Pre-asignar y configurar una unión durante el arranque, antes de que llegue cualquier comando y configurar correctamente 3) Crear un temporal Encuadernación de utilizar esta función BindingPool :: NewResponderBindingFromExchangeContext

Tanto en (2) como en (3), la capa de aplicación puede imponer la configuración de seguridad / tiempo mediante Binding :: ConfigureExistingExchangeContext. La unión no se utiliza para generar nuevos contextos de cambio para los comandos personalizados, por lo que no tiene que ser almacenado dentro de este mango.

El búfer de paquetes de solicitud tampoco se almacena dentro de este identificador, porque no hay un uso obvio de él. Esto es especialmente cierto si la capa de aplicación puede manejar este comando y enviar la respuesta directamente.

La capa de aplicación recibiría el búfer de paquetes de la misma devolución de llamada que recibe este identificador de comando. Si decide manejar este comando de manera asincrónica, tendría que almacenar tanto el identificador 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
}
enumeración
Las Comando bits de bandera.
CommandFlags typedef
Las Comando bits de bandera.

Atributos públicos

actionTimeMicroSecond
int64_t
commandType
uint64_t
expiryTimeMicroSecond
int64_t
initiationTimeMicroSecond
int64_t
mustBeVersion
uint64_t

Funciones publicas

Close (void)
void
GetExchangeContext (void) const
Recupere el objeto de contexto de intercambio utilizado por 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

Las Comando bits de bandera.

Propiedades
kCommandFlag_ActionTimeValid

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

kCommandFlag_ExpiryTimeValid

Establecer cuándo es válido el tiempo de caducidad.

kCommandFlag_InitiationTimeValid

Establecer cuándo el tiempo de inicio es válido.

kCommandFlag_IsOneWay

Se establece cuando el comando es unidireccional.

kCommandFlag_MustBeVersionValid

Establecer cuándo el campo de la versión es válido.

CommandFlags

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

Las Comando bits de bandera.

Atributos públicos

actionTimeMicroSecond

int64_t actionTimeMicroSecond

commandType

uint64_t commandType

expiryTimeMicroSecond

int64_t expiryTimeMicroSecond

initionTimeMicroSecond

int64_t initiationTimeMicroSecond

mustBeVersion

uint64_t mustBeVersion

Funciones publicas

Cerca

void Close(
  void
)

GetExchangeContext

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

Recupere el objeto de contexto de intercambio utilizado por este comando entrante.

Detalles
Devoluciones
Un puntero al objeto de contexto de intercambio utilizado por 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 

Enviar error

WEAVE_ERROR SendError(
  uint32_t aProfileId,
  uint16_t aStatusCode,
  WEAVE_ERROR aWeaveError
)

SendInProgress

WEAVE_ERROR SendInProgress(
  void
)

Enviar respuesta

WEAVE_ERROR SendResponse(
  uint32_t traitInstanceVersion,
  nl::Weave::System::PacketBuffer *apPayload
)

ValidateAuthenticator

WEAVE_ERROR ValidateAuthenticator(
  nl::Weave::System::PacketBuffer *aRequestBuffer
)