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 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 ser sensible a las necesidades de memoria flash y RAM del dispositivo.

Funciones públicas

Checkpoint(TLV::TLVWriter & aPoint)
Establecer un punto de control del 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)
La función de transición de estado principal.
Rollback(TLV::TLVWriter & aPoint)
Revierte el estado de la solicitud al TLVWriter con control de calidad.
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 creación de la notificación.
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
A partir de una ruta de acceso de trait, escribe el elemento de datos asociado con esa ruta de acceso.

Funciones públicas

Check Point

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

Establecer un punto de control del estado de la solicitud en un TLVWriter

Detalles
Parámetros
[out] aPoint
Un escritor para controlar el estado del escritor de TLV.
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.

EndDataList

WEAVE_ERROR EndDataList()

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

Detalles
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor DataList.
other
No se pudo construir el final de la lista de datos.

EndEventList

WEAVE_ERROR EndEventList()

Finaliza la creación de la lista de eventos.

Detalles
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor EventList.
other
No se pudo construir el final de la lista de datos.

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

Finaliza la construcción de la notificación.

Detalles
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor Notificar
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 de retorno
WEAVE_NO_ERROR
Si tiene éxito.
other
No se pudo inicializar el compilador.

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

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

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 packageBuffer (si es necesario). La función primero hace la transición de la solicitud a la solicitud de notificación de nivel superior (ya sea abriendo la estructura TLV de solicitud de notificación o cerrando el contenedor de datos TLV actual según sea necesario) y, luego, hace la transición de la solicitud de Notificar, ya sea abriendo el contenedor de datos TLV adecuado o cerrando la solicitud general de Notificar.

Detalles
Parámetros
aDesiredState
El estado deseado a la que la solicitud debe pasar
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
WEAVE_ERROR_NO_MEMORY
No se pudo realizar la transición al estado debido a que no hay memoria suficiente.
WEAVE_ERROR_INCORRECT_STATE
Daños en la máquina de estado interno.
other
Cuando la máquina de estado no pudo registrar el estado en su búfer, es probable que indique una falla de diseño en lugar de un problema del tiempo de ejecución.

Revertir

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

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

Detalles
Parámetros
[in] aPoint
Un escritor que capturó el estado en algún momento del pasado
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.

StartDataList

WEAVE_ERROR StartDataList(
  void
)

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

Detalles
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor Notificar,
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 de retorno
WEAVE_NO_ERROR
Si tiene éxito.
WEAVE_ERROR_INCORRECT_STATE
Si la solicitud no está en el contenedor Notificar,
other
No se puede construir el comienzo de la lista de datos.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

Comienza la creación de la notificación.

Detalles
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
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
)

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

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

Detalles
Valores de retorno
WEAVE_NO_ERROR
Si tiene éxito.
other
No se pudo recuperar y escribir el elemento de datos.