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 { | 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.
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 )