Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

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

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

Resumen

Nota: Esta clase está diseñada para ocultar cierto detalle en el manejo de comandos. Se ha tomado la decisión de ocultar los detalles de ExchangeContext y la validación del 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, el Informe de estado y también el mensaje de Respuesta, la capa de aplicación tendría que lidiar de alguna manera con el objeto ExchangeContext . La mejor práctica aún está por determinar, pero la capa de aplicación tiene estas tres opciones:

1) Adquirir el contexto de intercambio a través de GetExchangeContext y evaluarlo / ajustarlo directamente. 2) Asignar previamente y configurar un enlace durante el arranque, antes de que llegue cualquier comando, y configurarlo correctamente 3) Crear un enlace temporal usando esta función BindingPool :: NewResponderBindingFromExchangeContext

Tanto en (2) como en (3), la capa de aplicación puede imponer la configuración de seguridad / tiempo a través de Binding :: ConfigureExistingExchangeContext. El enlace nunca se usa para generar nuevos contextos de intercambio para comandos personalizados, por lo que no tiene que almacenarse dentro de este identificador.

El búfer de paquetes de solicitud tampoco se almacena dentro de este identificador, ya que 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
Los bits de la bandera de comando .
CommandFlags typedef
Los bits de la bandera de comando .

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

Los bits de la bandera de comando .

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

Los bits de la bandera de comando .

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
)