nl::Weave::Profiles::DataManagement_Legacy::DMClient

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

Abstrakte Basisklasse für anwendungsspezifische WDM-Clients.

Zusammenfassung

DMClient ist der WDM-Standardclient. Die Implementierung umfasst optional ein Abo oder eine Benachrichtigung. Es ist eine Mischung aus der DM-Klasse ProtocolEngine, die die Kommunikation handhabt, und der vollständig abstrakten ClientDataManager-Klasse mit einigen der abobezogenen Methoden implementiert, sodass sich höhere Ebenen nicht darum kümmern müssen.

Die Handler für Aboaufgaben fungieren hauptsächlich als Thin Adapter über das ClientNotifier-Objekt. Implementierungen von Unterklassen sollten darauf achten, die relevanten Methoden der übergeordneten Klasse aufzurufen, um den Abo-Manager in die richtige Richtung zu lenken.

DMClient-Anfragemethoden haben in der Regel zwei Signaturen, eine mit einer expliziten Zielknoten-ID und die andere mit einem bestimmten Ziel. In beiden Fällen hängt die Fähigkeit, eine Nachricht an einen Publisher zu senden, von einer bereits vorhandenen Bindung im Client ab. Im ersten Fall soll die Ziel-ID jedoch zwischen mehreren gebundenen Zielen wählen, und im zweiten Fall wird das erste Element in der Bindungstabelle als Standard ausgewählt. Dies ist beispielsweise nützlich, wenn der Client immer nur an einen einzigen Publisher gebunden sein wird.

Übernahme

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

Konstruktoren und Zerstörer

DMClient(void)
Der Standardkonstruktor für DMClient-Objekte.
~DMClient(void)
Destruktor für DMClient-Objekte
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Sie können eine Ansicht der veröffentlichten Daten anfordern.
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Sie können eine Datenansicht der Daten des Standard-Publishers anfordern.
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Fordern Sie eine Aktualisierung der veröffentlichten Daten an.
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Fordern Sie eine Aktualisierung der Daten des Standard-Publishers an.

Geschützte Attribute

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

Öffentliche Funktionen

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
Fordern Sie an, dass eine ausgeführte Transaktion abgebrochen wird.
Clear(void)
virtual void
Löscht den internen Status, der mit einem DMClient-Objekt verknüpft ist.
Finalize(void)
virtual void
Fahren Sie einen aktiven DMClient herunter.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Unvollständige Fehler beheben einer vom Client verwendeten Bindung.

Geschützte Funktionen

NewUpdate(void)
Update *
NewView(void)
View *

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Sie können eine Ansicht der veröffentlichten Daten anfordern.

Fordern Sie eine Ansicht der Daten an, die sich auf einem bestimmten Remote-Publisher befinden und von diesem verwaltet werden.

Details
Parameter
[in] aDestinationId
Ein Verweis auf die 64-Bit-Knoten-ID des Remote-Publishers.
[in] aPathList
Ein Verweis auf ein ReferencedTLVData-Objekt, das eine TLV-codierte Pfadliste enthält, die die angeforderten Daten angibt.
[in] aTxnId
Eine Kennung für die WDM-Transaktion, die zum Verwalten dieses Ansichtsvorgangs eingerichtet ist.
[in] aTimeout
Maximale Wartezeit in Millisekunden, die auf eine Antwort vom Typ „Aufruf“ gewartet wird.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_NO_MEMORY
Wenn eine Transaktion nicht zugeordnet werden konnte.
Rückgabe
Andernfalls wird ein WEAVE_ERROR (Fehler beim Initialisieren oder Starten der Transaktion) angezeigt.

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Sie können eine Datenansicht der Daten des Standard-Publishers anfordern.

Ansicht der Daten anfordern, die sich auf der Standardeinstellung befinden und von ihr verwaltet werden Publisher, d.h. der erste (oder einzige) Publisher in der Bindungstabelle des Kunden.

Details
Parameter
[in] aPathList
Ein Verweis auf ein ReferencedTLVData-Objekt, das eine TLV-codierte Pfadliste enthält, die die angeforderten Daten angibt.
[in] aTxnId
Eine Kennung für die WDM-Transaktion, die zum Verwalten dieses Ansichtsvorgangs eingerichtet ist.
[in] aTimeout
Maximale Wartezeit in Millisekunden, die auf eine Antwort vom Typ „Aufruf“ gewartet wird.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_NO_MEMORY
Wenn eine Transaktion nicht zugeordnet werden konnte.
Rückgabe
Andernfalls wird ein WEAVE_ERROR (Fehler beim Initialisieren oder Starten der Transaktion) angezeigt.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Fordern Sie eine Aktualisierung der veröffentlichten Daten an.

Einen Remote-Publisher bitten, die verwalteten Daten zu aktualisieren

Details
Parameter
[in] aDestinationId
Ein Verweis auf die 64-Bit-Knoten-ID des Remote-Publishers, an den die Anfrage gesendet wird.
[in] aDataList
Ein Verweis auf ein ReferencedTLVData-Objekt, das eine TLV-codierte Datenliste enthält und eine Darstellung der Aktualisierung sowie die Pfade, auf die das Update angewendet werden soll, enthält.
[in] aTxnId
Eine Kennung für die Transaktion, die zum Verwalten der Aktualisierungsanfrage eingerichtet ist.
[in] aTimeout
Maximale Wartezeit in Millisekunden auf den entsprechenden Statusbericht.
Rückgabe
WEAVE_NO_ERROR bei Erfolg oder WEAVE_ERROR_NO_MEMORY, wenn eine Aktualisierungstransaktion nicht zugeordnet werden konnte Andernfalls wird ein WEAVE_ERROR für das Fehlschlagen der Aktualisierung zurückgegeben.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Fordern Sie eine Aktualisierung der Daten des Standard-Publishers an.

Einen Remote-Publisher bitten, die verwalteten Daten zu aktualisieren Diese Version leitet die Anfrage an den Publisher weiter, der das Ziel der Standardbindung des Kunden ist.

Details
Parameter
[in] aDataList
Ein Verweis auf ein ReferencedTLVData-Objekt, das eine TLV-codierte Datenliste enthält und eine Darstellung der Aktualisierung sowie die Pfade, auf die das Update angewendet werden soll, enthält.
[in] aTxnId
Eine Kennung für die Transaktion, die zum Verwalten der Aktualisierungsanfrage eingerichtet ist.
[in] aTimeout
Maximale Wartezeit in Millisekunden auf den entsprechenden Statusbericht.
Rückgabe
WEAVE_NO_ERROR bei Erfolg oder WEAVE_ERROR_NO_MEMORY, wenn eine Aktualisierungstransaktion nicht zugeordnet werden konnte Andernfalls wird ein WEAVE_ERROR für das Fehlschlagen der Aktualisierung zurückgegeben.

Geschützte Attribute

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

Öffentliche Funktionen

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

Fordern Sie an, dass eine ausgeführte Transaktion abgebrochen wird.

Diese Methode generiert keinen Netzwerktraffic, sondern gibt nur Ressourcen frei, die den angegebenen Transaktionen zugewiesen sind

Details
Parameter
[in] aTxnId
Die Nummer der zu stornierenden Transaktion. Wenn kTransactionIdNotRequested angegeben ist, werden alle Transaktionen storniert.
[in] aError
Der WEAVE_ERROR, der beim Abbrechen der Transaktion gemeldet werden soll.
Rückgabe
WEAVE_NO_ERROR bei Erfolg oder WEAVE_ERROR für einen Fehler beim Abbrechen der Transaktion.

Löschen

virtual void Clear(
  void
)

Löscht den internen Status, der mit einem DMClient-Objekt verknüpft ist.

Insbesondere löscht diese Methode alle Client-Transaktionspools. Für Kunden, die bereits verwendet wurden, ist die Methode Finalize() vorzuziehen, da damit auch Abonnements gekündigt und die Transaktions- und Bindungstabellen bereinigt werden.

Weitere Informationen:
Finalize()

DMClient

 DMClient(
  void
)

Der Standardkonstruktor für DMClient-Objekte.

Löscht den gesamten internen Status. Ein DMClient erfordert vor der Verwendung eine weitere Initialisierung mit Init().

Abschließen

virtual void Finalize(
  void
)

Fahren Sie einen aktiven DMClient herunter.

Löscht den gesamten mit dem Client verknüpften Betriebsstatus und entfernt alle zugehörigen Abos aus dem Notifier. Nach einem Aufruf von Finalize() kann ein DMClient einfach durch Aufrufen von Init() neu initialisiert werden. Finalize() wird vom DMClient-Detruktor aufgerufen, kann aber aufgerufen werden, wenn ein DMClient eine Bereinigung erfordert, z.B. im Fall eines Fehlers oder einer vorübergehenden Deaktivierung, muss aber möglicherweise zu einem späteren Zeitpunkt wiederhergestellt werden.

IncompleteIndication

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

Unvollständige Fehler beheben einer vom Client verwendeten Bindung.

Wenn eine Bindung unerwartet fehlschlägt, z.B. Wenn die an der Bindung beteiligte Verbindung geschlossen ist, wird diese Methode aufgerufen.

Details
Parameter
[in] aBinding
Ein Verweis auf die Binding, die unvollständig wurde.
[in] aReport
Ein Verweis auf einen Statusbericht mit einem Grund für den Fehler.

~DMClient

virtual  ~DMClient(
  void
)

Destruktor für DMClient-Objekte

Löscht den gesamten internen Status und kündigt bei Bedarf ausstehende Abos.

Geschützte Funktionen

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)