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

nl::Weave::Perfiles::DataManagement_Current::NotificationEngine::NotifyRequestBuilder

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

Esto proporciona una clase de ayuda para redactar notificaciones y abstraer la construcción y la estructura del mensaje de sus consumidores.

Resumen

Esta es una versión más compacta de una clase similar proporcionada en MessageDef.cpp que tiene como objetivo abordar las necesidades de Flash y RAM del dispositivo.

Funciones públicas

Checkpoint(TLV::TLVWriter & aPoint)
Punto de control del estado de la solicitud en un TLVWriter.
EndDataList()
Finaliza la construcción del arreglo de la lista de datos.
EndEventList()
Finalizar la construcción de la lista de eventos
EndNotifyRequest()
Finaliza la construcción de la notificación.
GetWriter(void)
Init(PacketBuffer *aBuf, TLV::TLVWriter *aWriter, SubscriptionHandler *aSubHandler, uint32_t aMaxPayloadSize)
Inicializa el compilador.
MoveToState(NotifyRequestBuilderState aDesiredState)
La función principal de transición de estado.
Rollback(TLV::TLVWriter & aPoint)
Revierte el estado de la solicitud al TLVWriter con punto de control.
StartDataList(void)
Inicia la construcción del array de la lista de datos.
StartEventList()
Inicia la construcción de la lista de eventos.
StartNotifyRequest()
Inicia la construcción de la notificación.
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
En una ruta de acceso de característica, escribe el elemento de datos asociado con esa ruta.

Funciones públicas

Check Point

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

Punto de control del estado de la solicitud en un TLVWriter.

Detalles
Parámetros
[out] aPoint
Es un escritor que controla el estado del escritor TLV.
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente

ListaDeDatosDatos

WEAVE_ERROR EndDataList()

Finaliza la construcción del arreglo de la lista de datos.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor de DataList.
other
No se puede construir el final de la lista de datos.

Lista de eventos de finalización

WEAVE_ERROR EndEventList()

Finalizar la construcción de la lista de eventos

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor de EventList.
other
No se puede construir el final de la lista de datos.

Finalizar solicitud de notificación

WEAVE_ERROR EndNotifyRequest()

Finaliza la construcción de la notificación.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor de notificaciones
other
No se puede construir el final de la notificación.

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Init

WEAVE_ERROR Init(
  PacketBuffer *aBuf,
  TLV::TLVWriter *aWriter,
  SubscriptionHandler *aSubHandler,
  uint32_t aMaxPayloadSize
)

Inicializa el compilador.

Solo se debe llamar una vez.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
other
No se pudo inicializar el compilador.

Mover a estado

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

La función principal de transición de estado.

La función toma el estado deseado (es decir, la fase del compilador de solicitudes de notificaciones a la que queremos llegar) y pasa la solicitud a ese estado. Si el estado deseado es el mismo que el actual, la función no realizará ninguna acción. De lo contrario, se asigna un PacketBuffer (si es necesario). La función primero pasa la solicitud a la solicitud de notificación de nivel superior (ya sea al abrir la estructura de solicitud de notificación TLV o al cerrar el contenedor de datos de TLV actual según sea necesario) y, luego, cuando se pasa la solicitud de notificación, se puede abrir el contenedor de datos de TLV correcto o cerrar la solicitud de notificación general.

Detalles
Parámetros
aDesiredState
El estado deseado para la solicitud debe realizar la transición
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
WEAVE_ERROR_NO_MEMORY
No se pudo hacer la transición al estado porque la memoria no es suficiente.
WEAVE_ERROR_INCORRECT_STATE
Se dañó la máquina del estado interno.
other
Cuando la máquina de estado no pudo registrar el estado en su búfer, probablemente indique una falla de diseño en lugar de un problema en el tiempo de ejecución.

Revertir

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

Revierte el estado de la solicitud al TLVWriter con punto de control.

Detalles
Parámetros
[in] aPoint
Una escritora que captó el estado en algún momento del pasado
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente

ListaDeDatosDeInicio

WEAVE_ERROR StartDataList(
  void
)

Inicia la construcción del array de la lista de datos.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor de Notificar.
other
No se puede construir el principio de la lista de datos.

StartEventList

WEAVE_ERROR StartEventList()

Inicia la construcción de la lista de eventos.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor de Notificar.
other
No se puede construir el principio de la lista de datos.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

Inicia la construcción de la notificación.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el nivel superior del búfer.
other
No se puede construir el final de la notificación.

EscribirElementoDeDatos

WEAVE_ERROR WriteDataElement(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aPropertyPathHandle,
  SchemaVersion aSchemaVersion,
  PropertyPathHandle *aMergeDataHandleSet,
  uint32_t aNumMergeDataHandles,
  PropertyPathHandle *aDeleteHandleSet,
  uint32_t aNumDeleteHandles
)

En una ruta de acceso de característica, escribe el elemento de datos asociado con esa ruta.

De manera opcional, el emisor puede pasar un conjunto de controlador que permite aprovechar la operación de combinación con un conjunto más limitado de nodos secundarios inmediatos del controlador de ruta de propiedad superior.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
other
No se pudo recuperar y escribir el elemento de datos.