nl::Weave::Profiles::DataManagement_Current::CommandSender

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

Resumen

Nota: Esta clase encapsula los detalles del protocolo del envío de comandos, lo que simplifica los mecanismos involucrados en las aplicaciones. La aplicación proporciona un packageBuffer que contiene la carga útil del comando y un conjunto opcional de argumentos que alteran el contenido del encabezado del comando, así como el comportamiento del comando. 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

Esta clase también ayuda a las aplicaciones a inferir si los datos dentro de un TraitDataSink asociado alcanzaron los efectos secundarios del comando (según la versión proporcionada en la respuesta del comando). La aplicación se encarga de administrar el almacenamiento de ese objeto.

Encuadernación de tejido

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

EventCallback

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

Eventos de la API

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

CommunicationError

Se produjo un error mientras se creaba o enviaba el comando, o mientras se esperaba una respuesta. Algunos ejemplos de errores que pueden ocurrir mientras se espera una respuesta son los errores clave o el cierre inesperado de una conexión. El motivo del error se incluirá en el argumento InEventParam del controlador EventCallback.

InProgressReceived

El destinatario puede enviar un mensaje "en curso" , que significa que se recibió Command, pero aún no se completó. Una vez completado, el destinatario enviará una respuesta o un informe de estado. Enviando un mensaje “en curso” no es obligatorio.

StatusReportReceived

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

ResponseReceived

Recibir una respuesta implica que el destinatario de Command manejó el Command correctamente. La respuesta puede contener una carga útil o no. Si la aplicación desea mantener el búfer de paquetes, puede llamar 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::Profiles::DataManagement_Current::CommandSender::InEventParam

Los datos que el destinatario del comando personalizado muestra al remitente.

nl::Weave::Profiles::DataManagement_Current::CommandSender::OutEventParam

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

nl::Weave::Profiles::DataManagement_Current::CommandSender::SendParams

Encapsula argumentos que se pasarán a SendCommand().

nl::Weave::Profiles::DataManagement_Current::CommandSender::SynchronizedTraitState

Tipos públicos

EventCallback

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

EventType

 EventType

Atributos públicos

mAppState

void * mAppState = NULL

mSyncronizedTraitState

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
)