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