nl::Weave::Perfiles::DataManagement_Current::CommandSender

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

Resumen

Nota: Esta clase encapsula los detalles del protocolo para enviar comandos, lo que simplifica los mecanismos necesarios para las aplicaciones. La aplicación brinda un PacketBuffer que contiene la carga útil del comando y un conjunto opcional de argumentos que alteran el contenido del encabezado del comando y el comportamiento del comando. La utilidad de este wrapper en torno al manejo de comandos es limitada, principalmente debido a la complejidad o flexibilidad que implica la validación de seguridad y la serialización o deserialización de datos.

Aún no se ha definido el detalle de la validación de comandos

Esta clase también ayuda a las aplicaciones a inferir si los datos dentro de un TraitDataReceptor asociado se ponen al día con los efectos secundarios del comando (en función de la versión proporcionada en la respuesta del comando). La aplicación es responsable de administrar el almacenamiento de ese objeto.

Vinculación de Weave

Un objeto de esta clase se puede inicializar con una Binding de Weave, que funcionará como la Binding predeterminada para usar al enviar comandos. El usuario también puede proporcionar una vinculación a cada llamada de SendCommand(), lo que anulará la vinculación predeterminada. No es necesario proporcionar una vinculación predeterminada; sin embargo, ya se debe inicializar cualquier vinculación proporcionada a CommandSender.

EventCallback

El usuario debe definir una función de este tipo si desea actualizarse sobre eventos que ocurren después de que se envía el comando (consulta los eventos de la API a continuación). Puede ser NULO si al usuario no le importa lo que sucede después de que se envía el comando.

Eventos de API

Los siguientes eventos son los posibles resultados después de enviar un Command:

Error de comunicación

Se produjo un error al formar o enviar el comando o mientras se esperaba una respuesta. Algunos ejemplos de errores que pueden ocurrir mientras esperas una respuesta son errores clave o un cierre inesperado de una conexión. El argumento InEventParam del controlador de EventCallback contendrá el motivo del error.

En curso recibido

El destinatario puede enviar el mensaje "En curso" que indica que se recibió el comando, pero aún no se completó. Una vez finalizado, el destinatario enviará un Response o StatusReport. No es necesario enviar un mensaje de &en curso.

Se recibió el informe de estado

La recepción de un StatusReport implica que se produjo un error durante el procesamiento del Command. Se puede acceder a StatusReport a través de InEventParam.

Respuesta recibida

Si recibes una respuesta, significa que el receptor de comando administró correctamente el comando Command. La respuesta puede contener una carga útil o no. Si la aplicación desea conservar el búfer de paquetes, es posible que llame a ExchangeContext::AddRef() para aumentar el recuento de referencias.

Tipos públicos

EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam) typedef
void(*
EventType enum

Atributos públicos

mAppState = NULL
void *
mSyncronizedTraitState = NULL

Funciones estáticas públicas

DefaultEventHandler(void *aAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void

Funciones públicas

Close(bool aAbortNow)
void
Init(nl::Weave::Binding *aBinding, const EventCallback aEventCallback, void *const aAppState)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, ResourceIdentifier & aResourceId, uint32_t aProfileId, uint32_t aCommandType)
SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding *aBinding, SendParams & aSendParams)
SetSynchronizedTraitState(SynchronizedTraitState *aTraitState)
void

Structs

nl::Weave::Perfiles::DataManagement_Current::CommandSender::InEventParam

Datos que el destinatario del comando personalizado mostró al remitente.

nl::Weave::Perfiles::DataManagement_Current::CommandSender::OutEventParam

Los datos regresan a un objeto CommandSender desde una función EventCallback.

nl::Weave::Perfiles::DataManagement_Current::CommandSender::SendParams

Encapsula argumentos para pasar a SendCommand().

nl::Weave::Perfiles::DataManagement_Current::CommandSender::SynchronizedTraitState

Tipos públicos

EventCallback

void(* EventCallback)(void *const aAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutEventParam)

Tipo de evento

 EventType

Atributos públicos

Estado de las apps para dispositivos móviles

void * mAppState = NULL

Estado de mSyncronizedTrait

SynchronizedTraitState * mSyncronizedTraitState = NULL

Funciones estáticas públicas

DefaultEventHandler.

void DefaultEventHandler(
  void *aAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

Funciones públicas

Cerrar

void Close(
  bool aAbortNow
)

Init

WEAVE_ERROR Init(
  nl::Weave::Binding *aBinding,
  const EventCallback aEventCallback,
  void *const aAppState
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  ResourceIdentifier & aResourceId,
  uint32_t aProfileId,
  uint32_t aCommandType
)

SendCommand

WEAVE_ERROR SendCommand(
  nl::Weave::PacketBuffer *aPayload,
  nl::Weave::Binding *aBinding,
  SendParams & aSendParams
)

SetSynchronizedTraitState

void SetSynchronizedTraitState(
  SynchronizedTraitState *aTraitState
)