nl::Weave::Profiles::DataManagement_Current::NotificationEngine::NotifyRequestBuilder

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

Esto proporciona una clase auxiliar para redactar notificaciones y abstraer la construcción y estructura del mensaje a los consumidores.

Resumen

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

Funciones públicas

Checkpoint(TLV::TLVWriter & aPoint)
Controla el estado de la solicitud en un TLVWriter.
EndDataList()
Finaliza la construcción del array de la lista de datos.
EndEventList()
Finaliza la creació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)
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 creación de la lista de eventos.
StartNotifyRequest()
Comienza la construcción de la notificación.
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
Con una ruta de acceso trait, escribe el elemento de datos asociado con esa ruta.

Funciones públicas

Check Point

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

Controla el estado de la solicitud en un TLVWriter.

Detalles
Parámetros
[out] aPoint
Un escritor que controla el estado del escritor de TLV
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.

EndDataList

WEAVE_ERROR EndDataList()

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

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
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.

EndEventList

WEAVE_ERROR EndEventList()

Finaliza la creación de la lista de eventos.

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

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

Finaliza la construcción de la notificación.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor Notify.
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 es exitosa.
other
No se pudo inicializar el compilador.

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

Función principal de transición de estado

La función toma el estado deseado (es decir, la fase del compilador de solicitudes de notificación que queremos alcanzar) y pasa la solicitud a ese estado. Si el estado deseado es el mismo que el estado actual, la función no hace nada. 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 abriendo la estructura del TLV de la solicitud de notificación o cerrando el contenedor de datos TLV actual según sea necesario) y, luego, realiza la transición de la solicitud de notificación abriendo el contenedor de datos de TLV adecuado o cerrando la solicitud general de notificación.

Detalles
Parámetros
aDesiredState
El estado deseado al que debe pasar la solicitud
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
WEAVE_ERROR_NO_MEMORY
No se pudo pasar al estado debido a que la memoria es insuficiente.
WEAVE_ERROR_INCORRECT_STATE
Daño en la máquina de estado interna.
other
Cuando la máquina de estado no puede registrar el estado en su búfer, es probable que indique una falla de diseño en lugar de un problema de 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
Un escritor que capturó el estado en algún momento del pasado
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.

StartDataList

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 es exitosa.
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor Notify.
other
No se puede construir el comienzo de la lista de datos.

StartEventList

WEAVE_ERROR StartEventList()

Inicia la creación de la lista de eventos.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor Notify.
other
No se puede construir el comienzo de la lista de datos.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

Comienza la construcción de la notificación.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
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.

WriteDataElement

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

Con una ruta de acceso trait, escribe el elemento de datos asociado con esa ruta.

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

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación es exitosa.
other
No se pudo recuperar ni escribir el elemento de datos.