En Google, luchamos por la equidad racial de la comunidad negra. Más información
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

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, simplificando la mecánica involucrada para las 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 a inferir si los datos dentro de un TraitDataSink asociado se han puesto al día con los efectos secundarios del comando (según la versión proporcionada en la respuesta del comando). La aplicación es responsable de administrar el almacenamiento de ese objeto.

Encuadernación de tejido

Un objeto de esta clase se puede inicializar con un Weave Binding , que servirá como el Binding predeterminado que se utilizará para enviar comandos. El usuario también puede proporcionar un enlace a cada llamada de SendCommand (), que anulará el enlace predeterminado. No es necesario proporcionar un enlace predeterminado, sin embargo, cualquier enlace proporcionado a CommandSender ya debe estar 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 después de enviar un comando :

Error de comunicación

Ocurrió un error mientras formaba o enviaba el comando , o mientras esperaba 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 al procesar el comando . Se puede acceder al StatusReport a través de 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 la aplicación desea mantener el búfer de paquetes, puede llamar a ExchangeContext :: AddRef () para incrementar el recuento de referencias.

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 :: Weave :: Profiles :: DataManagement_Current :: CommandSender :: InEventParam

Datos devueltos al remitente por el destinatario del comando personalizado.

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

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

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

Encapsula los 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)

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
)