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

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

Dies bietet eine Hilfsklasse zum Schreiben von Benachrichtigungen und Abstrahierung der Konstruktion und Struktur der Nachricht von den Nutzern.

Zusammenfassung

Dies ist eine kompaktere Version einer ähnlichen Klasse, die in MessageDef.cpp bereitgestellt wird und auf die Flash- und RAM-Anforderungen des Geräts reagiert.

Öffentliche Funktionen

Checkpoint(TLV::TLVWriter & aPoint)
Prüft den Anfragestatus in einen TLVWriter.
EndDataList()
Beendet die Konstruktion des Datenlisten-Arrays.
EndEventList()
Hiermit wird die Erstellung der Ereignisliste beendet.
EndNotifyRequest()
Die Erstellung der Benachrichtigung beenden.
GetWriter(void)
Init(PacketBuffer *aBuf, TLV::TLVWriter *aWriter, SubscriptionHandler *aSubHandler, uint32_t aMaxPayloadSize)
Initialisiert den Builder.
MoveToState(NotifyRequestBuilderState aDesiredState)
Die Funktion für den Hauptzustandsübergang.
Rollback(TLV::TLVWriter & aPoint)
Führen Sie ein Rollback des Anfragestatus in den Prüfpunkt TLVWriter durch.
StartDataList(void)
Startet die Konstruktion des Datenlistenarrays.
StartEventList()
Startet die Erstellung der Ereignisliste.
StartNotifyRequest()
Beginnen Sie mit dem Bau der Benachrichtigung.
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
Geben Sie für einen Trait-Pfad das mit diesem Pfad verknüpfte Datenelement aus.

Öffentliche Funktionen

Checkpoint

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

Prüft den Anfragestatus in einen TLVWriter.

Details
Parameter
[out] aPoint
Ein Schreiber, in den der Status des TLV-Autors geprüft werden soll.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.

EndDataList

WEAVE_ERROR EndDataList()

Beendet die Konstruktion des Datenlisten-Arrays.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INCORRECT_STATE
Die Anfrage befindet sich nicht im DataList-Container.
other
Das Ende der Datenliste kann nicht erstellt werden.

EndEventList

WEAVE_ERROR EndEventList()

Hiermit wird die Erstellung der Ereignisliste beendet.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INCORRECT_STATE
Die Anfrage befindet sich nicht im EventList-Container.
other
Das Ende der Datenliste kann nicht erstellt werden.

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

Die Erstellung der Benachrichtigung beenden.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INCORRECT_STATE
Wenn sich die Anfrage nicht im Container „Notify“ befindet.
other
Ende der Benachrichtigung kann nicht erstellt werden.

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Init

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

Initialisiert den Builder.

Sollte nur einmal aufgerufen werden.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
other
Der Builder konnte nicht initialisiert werden.

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

Die Funktion für den Hauptzustandsübergang.

Die Funktion nimmt den gewünschten Status an (d.h. die Phase des Tools zur Erstellung von Benachrichtigungsanfragen, die wir erreichen möchten) und setzt die Anfrage in diesen Status um. Wenn der gewünschte Status mit dem aktuellen Status übereinstimmt, führt die Funktion keine Aktion aus. Andernfalls wird (falls erforderlich) ein PacketBuffer zugewiesen. Die Funktion leitet die Anfrage zuerst in die Benachrichtigungsanfrage der obersten Ebene um (entweder öffnet die TLV-Struktur der Benachrichtigungsanfrage oder schließt den aktuellen TLV-Datencontainer nach Bedarf) und wechselt dann die Notify-Anfrage entweder durch Öffnen des entsprechenden TLV-Datencontainers oder durch Schließen der übergeordneten Notify-Anfrage.

Details
Parameter
aDesiredState
Der gewünschte Status, in den die Anfrage übergehen soll
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_NO_MEMORY
Übergang zu Status nicht möglich, da nicht genügend Arbeitsspeicher vorhanden ist.
WEAVE_ERROR_INCORRECT_STATE
Beschädigung des internen Zustandsautomaten.
other
Wenn der Zustandsautomat den Status nicht im Zwischenspeicher aufzeichnen konnte, deutet dies wahrscheinlich auf einen Designfehler und nicht auf ein Laufzeitproblem hin.

Rollback

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

Führen Sie ein Rollback des Anfragestatus in den Prüfpunkt TLVWriter durch.

Details
Parameter
[in] aPoint
Ein Autor, der den Status zu einem früheren Zeitpunkt erfasst hat
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.

StartDataList

WEAVE_ERROR StartDataList(
  void
)

Startet die Konstruktion des Datenlistenarrays.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INCORRECT_STATE
Wenn sich die Anfrage nicht im Container „Notify“ befindet.
other
Der Anfang der Datenliste kann nicht erstellt werden.

StartEventList

WEAVE_ERROR StartEventList()

Startet die Erstellung der Ereignisliste.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INCORRECT_STATE
Wenn sich die Anfrage nicht im Container „Notify“ befindet.
other
Der Anfang der Datenliste kann nicht erstellt werden.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

Beginnen Sie mit dem Bau der Benachrichtigung.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INCORRECT_STATE
Wenn sich die Anfrage nicht auf der obersten Ebene des Zwischenspeichers befindet.
other
Ende der Benachrichtigung kann nicht erstellt werden.

WriteDataElement

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

Geben Sie für einen Trait-Pfad das mit diesem Pfad verknüpfte Datenelement aus.

Der Aufrufer kann optional auch einen Handle übergeben, der es ermöglicht, den Zusammenführungsvorgang mit einer kleineren Gruppe von unmittelbar untergeordneten Knoten des übergeordneten Property-Pfad-Handles zu nutzen.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
other
Das Datenelement kann nicht abgerufen und geschrieben werden.