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