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

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

Cela fournit une classe d'assistance permettant de composer des notifications, ce qui élimine la construction et la structure du message pour les consommateurs.

Résumé

Il s'agit d'une version plus compacte d'une classe similaire fournie dans MessageDef.cpp. Elle vise à être sensible aux besoins de mémoire flash et RAM de l'appareil.

Fonctions publiques

Checkpoint(TLV::TLVWriter & aPoint)
Effectuez un point de contrôle de l'état de la requête dans TLVWriter.
EndDataList()
Terminez la construction du tableau de liste de données.
EndEventList()
Mettez fin à la création de la liste d'événements.
EndNotifyRequest()
Terminez la construction de la notification.
GetWriter(void)
Init(PacketBuffer *aBuf, TLV::TLVWriter *aWriter, SubscriptionHandler *aSubHandler, uint32_t aMaxPayloadSize)
Initialise le compilateur.
MoveToState(NotifyRequestBuilderState aDesiredState)
Fonction principale de transition d'état.
Rollback(TLV::TLVWriter & aPoint)
Effectuez un rollback de l'état de la requête dans le TLVWriter avec point de contrôle.
StartDataList(void)
Lance la construction du tableau de la liste de données.
StartEventList()
Démarre la construction de la liste d'événements.
StartNotifyRequest()
Démarrez la construction de la notification.
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
À partir d'un chemin de caractéristique, écrivez l'élément de données associé à ce chemin.

Fonctions publiques

Check Point

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

Effectuez un point de contrôle de l'état de la requête dans TLVWriter.

Détails
Paramètres
[out] aPoint
Rédacteur dans lequel vérifier l'état du rédacteur TLV.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.

EndDataList

WEAVE_ERROR EndDataList()

Terminez la construction du tableau de la liste de données.

Détails
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INCORRECT_STATE
Si la requête ne se trouve pas dans le conteneur DataList
other
Impossible de construire la fin de la liste de données.

EndEventList

WEAVE_ERROR EndEventList()

Mettez fin à la création de la liste d'événements.

Détails
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INCORRECT_STATE
Si la requête ne se trouve pas dans le conteneur EventList.
other
Impossible de construire la fin de la liste de données.

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

Terminez la construction de la notification.

Détails
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INCORRECT_STATE
Si la requête ne se trouve pas au niveau de l'option "Notifier le conteneur".
other
Impossible de construire la fin de la notification.

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Init

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

Initialise le compilateur.

Ne doit être appelé qu'une seule fois.

Détails
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
other
Impossible d'initialiser le compilateur.

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

Fonction principale de transition d'état.

La fonction prend l'état souhaité (c'est-à-dire la phase du générateur de requêtes de notification à atteindre) et fait passer la requête à cet état. Si l'état souhaité est identique à l'état actuel, la fonction n'a aucun effet. Sinon, un PacketBuffer est alloué (si nécessaire). La fonction fait d'abord passer la requête à la demande de notification de premier niveau (soit en ouvrant la structure TLV de la demande de notification, soit en fermant le conteneur de données TLV actuel selon les besoins), puis en ouvrant le conteneur de données TLV approprié ou en fermant la requête globale Notifier, la fonction fait passer la demande Notifier.

Détails
Paramètres
aDesiredState
État souhaité auquel la demande doit passer.
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_NO_MEMORY
Impossible de passer à l'état en raison d'une mémoire insuffisante.
WEAVE_ERROR_INCORRECT_STATE
La machine à états interne est endommagée.
other
Lorsque la machine d'état n'a pas pu enregistrer l'état dans son tampon, cela indique probablement un défaut de conception plutôt qu'un problème d'exécution.

Rollback

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

Effectuez un rollback de l'état de la requête dans le TLVWriter avec point de contrôle.

Détails
Paramètres
[in] aPoint
Un écrivain qui a capturé l'État en question à un moment donné
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.

StartDataList

WEAVE_ERROR StartDataList(
  void
)

Lance la construction du tableau de la liste de données.

Détails
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INCORRECT_STATE
si la requête ne se trouve pas dans le conteneur Notifier ;
other
Impossible de construire le début de la liste de données.

StartEventList

WEAVE_ERROR StartEventList()

Démarre la construction de la liste d'événements.

Détails
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INCORRECT_STATE
si la requête ne se trouve pas dans le conteneur Notifier ;
other
Impossible de construire le début de la liste de données.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

Démarrez la construction de la notification.

Détails
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
WEAVE_ERROR_INCORRECT_STATE
Si la requête ne se trouve pas au niveau supérieur du tampon.
other
Impossible de construire la fin de la notification.

WriteDataElement

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

À partir d'un chemin de caractéristique, écrivez l'élément de données associé à ce chemin.

L'appelant peut également éventuellement transmettre un ensemble de handle, ce qui permet d'exploiter l'opération de fusion avec un ensemble plus restreint de nœuds enfants immédiats du handle de chemin d'accès à la propriété parente.

Détails
Valeurs renvoyées
WEAVE_NO_ERROR
En cas de réussite.
other
Impossible de récupérer et d'écrire l'élément de données.