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

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

Resumen

Nota: Esta clase está diseñada para ocultar un determinado detalle en el control de comandos. Se tomó la decisión de ocultar los detalles de ExchangeContext y de la validación del autenticador, y se dejó a la capa de la aplicación la administración de PacketBuffers. La utilidad de este wrapper para el control de comandos es limitada, principalmente debido a la complejidad y flexibilidad que implica la validación de seguridad y la serialización o deserialización de datos.

Los detalles de la validación del comando aún no están por definir

Para ajustar el tiempo de retransmisión del informe En progreso, del Informe de estado y también del mensaje de respuesta, la capa de aplicación tendrá que gestionar el objeto ExchangeContext de alguna manera. Todavía no se conoce la mejor práctica, pero la capa de aplicación tiene las siguientes tres opciones:

1) Adquiere el contexto de Exchange mediante GetExchangeContext y evalúalo o ajústalo directamente. 2) Asigna previamente y configura una vinculación durante el inicio, antes de que llegue cualquier comando, y configúrala correctamente 3) Crea una vinculación temporal con la función BindingPool::NewResponderBindingFromExchangeContext

En los dos sistemas (2) y (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 dentro de este controlador.

El búfer del paquete de solicitud tampoco se almacena en este controlador, ya que no se usa de forma evidente. Esto es especialmente cierto si la capa de la aplicación puede controlar este comando y enviar una respuesta directamente.

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

Tipos públicos

CommandFlags{
  kCommandFlag_MustBeVersionValid = 0x0001,
  kCommandFlag_InitiationTimeValid = 0x0002,
  kCommandFlag_ActionTimeValid = 0x0004,
  kCommandFlag_ExpiryTimeValid = 0x0008,
  kCommandFlag_IsOneWay = 0x0010
}
enum
Los bits que indican Command.
CommandFlags typedef
Los bits que indican 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 que indican Command.

Propiedades
kCommandFlag_ActionTimeValid

Se establece cuándo es válido el tiempo de la acción.

kCommandFlag_ExpiryTimeValid

Establece cuándo es válida la hora de vencimiento.

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 versión es válido.

CommandFlags

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

Los bits que indican 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
Qué muestra
Un puntero para el 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
)