nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

#include <src/lib/profiles/data-management/Legacy/DMPublisher.h>

Die abstrakte Basisklasse für anwendungsspezifische WDM-Publisher.

Zusammenfassung

DMPublisher ist die Standard-WDM-Basisklasse für Publisher. Sie ist eine Mischung aus der DM-Klasse ProtocolEngine, die für die Kommunikation zuständig ist, und der abstrakten Klasse PublisherDataManager. Die Unterstützung für Abos und Benachrichtigungen ist optional und kann einfach durch die Konfiguration einer Abotabelle ohne Einträge unterdrückt werden.

Übernahme

Übernimmt von:
  nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine
  nl::Weave::Profiles::DataManagement_Legacy::PublisherDataManager

Konstruktoren und Zerstörer

DMPublisher(void)
Der Standardkonstruktor für DMPublisher-Objekte.
~DMPublisher(void)
Der Destruktor für DMPublisher-Objekte.

Öffentliche Funktionen

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
Clear(void)
virtual void
Löschen Sie den internen Status des DMPublisher-Objekts.
Finalize(void)
virtual void
Fahren Sie einen betriebsbereiten DMPublisher herunter.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Verarbeitet einen Hinweis darauf, dass eine Bindung fehlgeschlagen ist.
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
Initialisieren Sie ein DMPublisher-Objekt.
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
OnMsgReceived(ExchangeContext *aResponseCtx, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
void
UpdateResponse(ExchangeContext *aResponseCtx, StatusReport & aStatus)
Auf eine Aktualisierungsanfrage antworten
ViewResponse(ExchangeContext *aResponseCtx, StatusReport & aStatus, ReferencedTLVData *aDataList)
Auf eine Anfrage zum Ansehen antworten

Öffentliche Funktionen

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

Klar

virtual void Clear(
  void
)

Löschen Sie den internen Status des DMPublisher-Objekts.

Löscht den Transaktionspool für Benachrichtigungen und die Abotabelle.

DMPublisher

 DMPublisher(
  void
)

Der Standardkonstruktor für DMPublisher-Objekte.

Löscht den gesamten internen Status.

Abschließen

virtual void Finalize(
  void
)

Fahren Sie einen betriebsbereiten DMPublisher herunter.

Löscht den gesamten Betriebsstatus und fährt den Listener herunter, sofern einer ausgeführt wird.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

Verarbeitet einen Hinweis darauf, dass eine Bindung fehlgeschlagen ist.

Wenn eine Bindung unvollständig wird, d. h. wenn die Verbindung für eine TCP-Bindung geschlossen wird, muss die Protokoll-Engine alle Transaktionen fehlschlagen, die davon abhängen. Dazu gehört auch der Aufruf der Status-Handler. Außerdem wird die unvollständige Angabe an ein übergeordnetes Objekt übergeben, das die alternative Form dieser Methode implementiert, die eine Peer-ID verwendet.

Details
Parameter
[in] aBinding
Ein Zeiger auf die fehlgeschlagene Bindung.
[in] aReport
Ein Verweis auf ein StatusReport-Objekt, in dem die Ursache für den Fehler angegeben ist.

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

Initialisieren Sie ein DMPublisher-Objekt.

Diese Methode führt dazu, dass im Exchange Manager ein Listener für alle Clientanfragen installiert wird, einschließlich Abos.

Details
Parameter
[in] aExchangeMgr
Ein Verweis auf das Objekt WeaveExchangeManager, der für alle Anzeigenplattformen verwendet werden soll, an denen der Publisher teilnehmen möchte.
[in] aResponseTimeout
Ein Antwortzeitlimit in Millisekunden, d.h. die maximale Zeit, die auf eine Antwort gewartet wird.
Rückgabe
WEAVE_NO_ERROR Bei Erfolg Andernfalls wird WEAVE_ERROR zurückgegeben, weil der Publisher nicht ordnungsgemäß eingerichtet wurde.

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

OnMsgReceived

void OnMsgReceived(
  ExchangeContext *aResponseCtx,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aMsg
)

UpdateResponse

WEAVE_ERROR UpdateResponse(
  ExchangeContext *aResponseCtx,
  StatusReport & aStatus
)

Auf eine Aktualisierungsanfrage antworten

Senden Sie nach der Verarbeitung die Antwort auf eine Aktualisierungsanfrage. Verwenden Sie dabei den Austauschkontext, der in der Anzeige angegeben wurde.

Details
Parameter
[in] aResponseCtx
Ein Verweis auf den Anzeigenplattform-Kontext, unter dem die Anfrage eingegangen ist.
[in] aStatus
Ein Verweis auf ein StatusReport-Objekt, das Informationen zum Status der Anfrage enthält.
Rückgabe
WEAVE_NO_ERROR Bei Erfolg Andernfalls wird WEAVE_ERROR zurückgegeben, wenn die Antwortnachricht nicht gesendet werden konnte.

ViewResponse

WEAVE_ERROR ViewResponse(
  ExchangeContext *aResponseCtx,
  StatusReport & aStatus,
  ReferencedTLVData *aDataList
)

Auf eine Anfrage zum Ansehen antworten

Senden Sie nach der Verarbeitung die Antwort auf eine Datenansichtsanfrage. Verwenden Sie dabei den Austauschkontext, der in der Anzeige angegeben wurde.

Details
Parameter
[in] aResponseCtx
Ein Verweis auf den Anzeigenplattform-Kontext, unter dem die Anfrage eingegangen ist.
[in] aStatus
Ein Verweis auf ein StatusReport-Objekt, das Informationen zum Status der Anfrage enthält. Ist dies erfolgreich, erwartet der Antragsteller eine Datenliste mit den relevanten Daten.
[in] aDataList
Ein Zeiger auf ein optionales ReferencedTLVData-Objekt, das eine TLV-codierte Datenliste mit den relevanten Daten und den Pfaden enthält, die die Anordnung dieser Daten angeben. Dieser Parameter muss NULL sein, falls der im vorherigen Parameter angegebene Status nicht erfolgreich ist.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg. Andernfalls wird WEAVE_ERROR zurückgegeben, wenn die Antwortnachricht nicht gesendet werden konnte.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Parameter inkonsistent sind
WEAVE_ERROR_NO_MEMORY
Wenn ein Inet-Zwischenspeicher nicht zugewiesen werden konnte.

~DMPublisher

virtual  ~DMPublisher(
  void
)

Der Destruktor für DMPublisher-Objekte.

Löscht alle internen Status und entfernt den Listener aus dem Exchange Manager, sofern vorhanden.