nl::Weave::Profiles::DataManagement_Legacy::DMClient

#include <src/lib/profiles/data-management/Legacy/DMClient.h>

Es la clase base abstracta para clientes de WDM específicos de una aplicación.

Resumen

DMClient es el cliente de WDM estándar. De manera opcional, la implementación incluye una suscripción o notificación. Es una combinación de la clase ProtocolEngine de DM, que controla el giro de las comunicaciones y la clase ClientDataManager completamente abstracta, con algunos de los métodos relacionados con las suscripciones implementados para que las capas superiores no tengan que preocuparse por ellos.

Los controladores para tareas relacionadas con las suscripciones actúan principalmente como un adaptador delgado sobre el objeto ClientNotifier. Los implementadores de subclases deben asegurarse de llamar a los métodos de superclase relevantes para poner en marcha la manivela del administrador de suscripciones.

Los métodos de solicitud de DMClient suelen tener 2 firmas, una con un ID de nodo de destino explícito y la otra con un destino especificado. En cualquier caso, la capacidad de enviar un mensaje a un publicador depende de una vinculación preexistente en el cliente, pero, en el primer caso, el ID de destino está destinado a seleccionar entre varios destinos vinculados y, en el segundo, el primer elemento de la tabla de vinculación se selecciona como predeterminado. Esto es útil, por ejemplo, si el cliente estará vinculado a un solo publicador.

Herencia

Hereda de:
  nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine
  nl::Weave::Profiles::DataManagement_Legacy::ClientDataManager

Constructores y destructores

DMClient(void)
El constructor predeterminado para los objetos DMClient.
~DMClient(void)
Destructor para objetos DMClient.
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Solicita una vista de los datos publicados.
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Solicita una vista de los datos del publicador predeterminado.
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Solicita una actualización de los datos publicados.
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Solicita una actualización de los datos del publicador predeterminado.

Atributos protegidos

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

Funciones públicas

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
Solicitar que se cancele una transacción en ejecución
Clear(void)
virtual void
Borra el estado interno asociado con un objeto DMClient.
Finalize(void)
virtual void
Cierra un DMClient en funcionamiento.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Maneja la “finalización” de una vinculación que usa el cliente.

Funciones protegidas

NewUpdate(void)
Update *
NewView(void)
View *

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Solicita una vista de los datos publicados.

Solicite una vista de los datos que residen y que administra un publicador remoto específico.

Detalles
Parámetros
[in] aDestinationId
Es una referencia al ID de nodo de 64 bits del publicador remoto.
[in] aPathList
Una referencia a un objeto ReferencedTLVData que contiene una lista de rutas de acceso codificada en TLV que indica los datos solicitados.
[in] aTxnId
Un identificador para la transacción de WDM configurada a fin de administrar esta operación de vista.
[in] aTimeout
Es el tiempo máximo de espera en milésimas de segundo para la respuesta de la vista.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
WEAVE_ERROR_NO_MEMORY
Si no se pudo asignar una transacción
Qué muestra
De lo contrario, un WEAVE_ERROR que refleja el error en la inicialización o el inicio de la transacción

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Solicita una vista de los datos del publicador predeterminado.

Solicita una vista de los datos que residen y que administra el publicador "predeterminado", es decir, el primer (o único) publicador de la tabla de vinculación del cliente.

Detalles
Parámetros
[in] aPathList
Una referencia a un objeto ReferencedTLVData que contiene una lista de rutas de acceso codificada en TLV que indica los datos solicitados.
[in] aTxnId
Un identificador para la transacción de WDM configurada a fin de administrar esta operación de vista.
[in] aTimeout
Es el tiempo máximo de espera en milésimas de segundo para la respuesta de la vista.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
WEAVE_ERROR_NO_MEMORY
Si no se pudo asignar una transacción
Qué muestra
De lo contrario, un WEAVE_ERROR que refleja el error en la inicialización o el inicio de la transacción

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Solicita una actualización de los datos publicados.

Solicitar que un publicador remoto actualice los datos administrados

Detalles
Parámetros
[in] aDestinationId
Es una referencia al ID de nodo de 64 bits del publicador remoto al que se envía la solicitud.
[in] aDataList
Una referencia a un objeto ReferencedTLVData que contiene una lista de datos codificada en TLV con una representación de la actualización que incluye las rutas de acceso a las que se aplicará.
[in] aTxnId
Un identificador para la configuración de la transacción a fin de administrar la solicitud de actualización.
[in] aTimeout
Es el tiempo máximo de espera en milisegundos para recibir el informe de estado correspondiente.
Qué muestra
WEAVE_NO_ERROR si la operación es exitosa o WEAVE_ERROR_NO_MEMORY si no se pudo asignar una transacción de actualización. De lo contrario, muestra un WEAVE_ERROR que refleja una falla de la actualización.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Solicita una actualización de los datos del publicador predeterminado.

Solicitar que un publicador remoto actualice los datos administrados Esta versión dirige la solicitud al publicador que es el destino de la vinculación predeterminada del cliente.

Detalles
Parámetros
[in] aDataList
Una referencia a un objeto ReferencedTLVData que contiene una lista de datos codificada en TLV con una representación de la actualización que incluye las rutas de acceso a las que se aplicará.
[in] aTxnId
Un identificador para la configuración de la transacción a fin de administrar la solicitud de actualización.
[in] aTimeout
Es el tiempo máximo de espera en milisegundos para recibir el informe de estado correspondiente.
Qué muestra
WEAVE_NO_ERROR si la operación es exitosa o WEAVE_ERROR_NO_MEMORY si no se pudo asignar una transacción de actualización. De lo contrario, muestra un WEAVE_ERROR que refleja una falla de la actualización.

Atributos protegidos

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

Funciones públicas

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

Solicitar que se cancele una transacción en ejecución

Este método no genera tráfico de red, sino que libera recursos asignados para las transacciones especificadas.

Detalles
Parámetros
[in] aTxnId
Es el número de la transacción que se cancelará. Si se proporciona kTransactionIdNotspecified, se cancelarán todas las transacciones.
[in] aError
El WEAVE_ERROR que se debe informar al cancelar la transacción.
Qué muestra
WEAVE_NO_ERROR si la operación es exitosa o un WEAVE_ERROR que indica que no se pudo cancelar la transacción

Borrar

virtual void Clear(
  void
)

Borra el estado interno asociado con un objeto DMClient.

En particular, este método borra todos los grupos de transacciones del cliente. Para los clientes que han estado en uso, es preferible el método Finalize(), ya que también cancela suscripciones y limpia las tablas de transacciones y vinculaciones.

Consulta también:
Finalize()

DMClient

 DMClient(
  void
)

El constructor predeterminado para los objetos DMClient.

Borra todo el estado interno. Un DMClient requiere una inicialización adicional con Init() antes de usarlo.

Finalizar

virtual void Finalize(
  void
)

Cierra un DMClient en funcionamiento.

Borra todo el estado operativo asociado con el cliente y quita todas las suscripciones relacionadas del notificador. Después de una llamada a Finalize(), se puede volver a inicializar un DMClient con solo llamar a Init(). El destructor DMClient invoca Finalize(), pero se puede llamar cuando un DMClient requiere una limpieza, p.ej., en caso de fallas o cierre temporal, pero es posible que deba reconstruirse más adelante.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

Maneja la “finalización” de una vinculación que usa el cliente.

Cuando una vinculación falla de forma inesperada, p.ej., si la conexión involucrada en la vinculación se cierra, se llama a este método.

Detalles
Parámetros
[in] aBinding
Un puntero para la Vinculación que se volvió incompleta.
[in] aReport
Es una referencia a un informe de estado que proporciona un motivo de la falla.

~Cliente DM

virtual  ~DMClient(
  void
)

Destructor para objetos DMClient.

Borra todos los estados internos y, si es necesario, cancela las suscripciones pendientes.

Funciones protegidas

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)