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

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

Abstrakte Basisklasse für anwendungsspezifische WDM-Publisher.

Zusammenfassung

DMPublisher ist die standardmäßige WDM-Publisher-Basisklasse. Es ist eine Mischung aus der DM-Klasse ProtocolEngine, die die Kommunikation handhabt, und der vollständig abstrakten PublisherDataManager-Klasse. Die Unterstützung für Abo und Benachrichtigung ist optional und kann einfach durch Konfigurieren 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)
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 Objekts DMPublisher.
Finalize(void)
virtual void
Fahren Sie einen aktiven 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)
Sie antworten auf eine Aktualisierungsanfrage.
ViewResponse(ExchangeContext *aResponseCtx, StatusReport & aStatus, ReferencedTLVData *aDataList)
Sie antworten auf eine Anfrage zum Ansehen.

Öffentliche Funktionen

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

Löschen

virtual void Clear(
  void
)

Löschen Sie den internen Status des Objekts DMPublisher.

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 aktiven DMPublisher herunter.

Löscht den gesamten Betriebsstatus und fährt den Listener herunter, falls 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 getrennt wird, muss die Protokoll-Engine alle von ihr abhängigen Transaktionen fehlschlagen lassen. Dazu gehört auch das Aufrufen ihrer Status-Handler. Außerdem wird die unvollständige Angabe an jedes übergeordnete Klassenobjekt übergeben, das die alternative Form dieser Methode implementiert, die eine Peer-ID annimmt.

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

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

Initialisieren Sie ein DMPublisher-Objekt.

Bei dieser Methode wird im Exchange-Manager ein Listener für alle Clientanfragen installiert, möglicherweise auch für Abos.

Details
Parameter
[in] aExchangeMgr
Ein Verweis auf das WeaveExchangeManager-Objekt, das für alle Plattformen verwendet wird, an denen der Publisher teilnehmen möchte.
[in] aResponseTimeout
Ein Antwortzeitlimit in Millisekunden, d.h. die maximale Zeit, die auf eine Antwort gewartet werden soll.
Rückgabe
WEAVE_NO_ERROR Bei Erfolg. Andernfalls wird ein WEAVE_ERROR zurückgegeben, der auf einen Fehler bei der korrekten Einrichtung des Publishers hinweist.

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
)

Sie antworten auf eine Aktualisierungsanfrage.

Senden Sie nach der Verarbeitung die Antwort auf eine Aktualisierungsanfrage unter Verwendung des Exchange-Kontexts, der in der Anzeige angegeben wurde.

Details
Parameter
[in] aResponseCtx
Ein Verweis auf den Exchange-Kontext, in 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 ein WEAVE_ERROR zurückgegeben, der auf einen Fehler beim Senden der Antwortnachricht hinweist.

ViewResponse

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

Sie antworten auf eine Anfrage zum Ansehen.

Senden Sie nach der Verarbeitung die Antwort auf eine Ansichtsanfrage unter Verwendung des Exchange-Kontexts, der in der Anzeige angegeben wurde.

Details
Parameter
[in] aResponseCtx
Ein Verweis auf den Exchange-Kontext, in 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 Anfragende eine Datenliste mit den relevanten Daten.
[in] aDataList
Ein Zeiger auf ein optionales ReferencedTLVData-Objekt mit einer TLV-codierten Datenliste mit den relevanten Daten und den Pfaden, die die Disposition dieser Daten angeben. Beachten Sie, dass dieser Parameter NULL sein muss, wenn der im vorherigen Parameter angegebene Status nicht erfolgreich ist.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg. Andernfalls wird ein WEAVE_ERROR zurückgegeben, der auf einen Fehler beim Senden der Antwortnachricht hinweist.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die angegebenen Parameter inkonsistent sind
WEAVE_ERROR_NO_MEMORY
Wenn ein Inet-Zwischenspeicher nicht zugewiesen werden konnte.

~DMPublisher

virtual  ~DMPublisher(
  void
)

Destruktor für DMPublisher-Objekte

Löscht den gesamten internen Status und entfernt den Listener aus dem Exchange-Manager (sofern vorhanden).