En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Tejido:: Perfiles: DataManagement_Current :: CommandSender

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

Resumen

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

Esta clase también ayuda a las aplicaciones inferir si los datos dentro de un asociado TraitDataSink ha alcanzado a los efectos secundarios de la commmand (basado en la versión que figura en la respuesta del comando). La aplicación es responsable de administrar el almacenamiento de ese objeto.

Armadura de unión

Un objeto de esta clase puede ser inicializado con una armadura de unión , que servirá como predeterminado Encuadernación utilizar para enviar comandos. El usuario también puede proporcionar una unión a cada llamada de sendCommand (), que va a reemplazar el valor predeterminado Encuadernación . No es necesario proporcionar un defecto de unión , sin embargo, cualquier unión suministrada CommandSender ya debe ser inicializado.

EventCallback

El usuario debe definir una función de este tipo si desea estar actualizado sobre los eventos que suceden después del envío del comando (ver "Eventos API" a continuación). Esto puede ser NULL si al usuario no le importa lo que sucede después de que se envía el comando.

Eventos API

Los siguientes eventos son los posibles resultados tras el envío de un comando :

Error de comunicación

Se ha producido un error mientras se forma o enviando el comando , o en espera de una respuesta. 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 estará contenida en el InEventParam argumento al manejador EventCallback.

InProgressReceived

El destinatario puede enviar un 'en curso' mensaje que significa que el comando se ha receieved, pero todavía no ha terminado. Una vez completado, el destinatario enviará una respuesta o un informe de estado. No es necesario enviar un mensaje "en curso".

StatusReportReceived

La recepción de un StatusReport implica que hubo un error en el procesamiento del comando . El StatusReport se puede acceder a través de la InEventParam .

Respuesta recibida

Recibir una respuesta implica que el Comando receptor maneja el comando correctamente. La respuesta puede contener una carga útil o no. Si el applcation desea mantener el búfer de paquetes, puede llamar ExchangeContext :: AddRef () para incrementar el número de ref.

Tipos públicos

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

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 publicas

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

Estructuras

nl :: Armadura :: Perfiles :: DataManagement_Current :: :: CommandSender InEventParam

Datos devueltos al remitente por el destinatario del comando personalizado.

nl :: Armadura :: Perfiles :: DataManagement_Current :: :: CommandSender OutEventParam

Los datos devueltos de nuevo a un CommandSender objeto a partir de una función EventCallback.

nl :: Armadura :: Perfiles :: DataManagement_Current :: :: CommandSender SendParams

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

nl :: Armadura :: 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

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 publicas

Cerca

void Close(
  bool aAbortNow
)

En eso

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
)