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

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

Die abstrakte Basisklasse für anwendungsspezifische WDM-Clients.

Zusammenfassung

DMClient ist der Standard-WDM-Client. Die Implementierung umfasst optional Abos/Benachrichtigungen. Es ist eine Mischung aus der DM-Klasse ProtocolEngine, die die Kommunikation abwickelt, und der komplett abstrakten ClientDataManager-Klasse, wobei einige der abobezogenen Methoden implementiert wurden, damit sich höhere Ebenen nicht darum kümmern müssen.

Die Handler für abobezogene Aufgaben dienen hauptsächlich als schlanker Adapter für das ClientNotifier-Objekt. Implementierer von Unterklassen sollten darauf achten, die entsprechenden Methoden der übergeordneten Klasse aufzurufen, um den Abo-Manager in Schwung zu bringen.

DMClient-Anfragemethoden haben in der Regel zwei Signaturen: eine mit einer expliziten Zielknoten-ID und die andere mit einem angegebenen 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 jedoch die Ziel-ID zwischen mehreren gebundenen Zielen wählen. Im zweiten Fall wird das erste Element in der Bindungstabelle standardmäßig ausgewählt. Dies ist beispielsweise nützlich, wenn der Kunde immer nur an einen einzigen Publisher gebunden ist.

Ü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)
Der Destruktor für DMClient-Objekte.
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Fordern Sie eine Ansicht der veröffentlichten Daten an.
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Fordern Sie eine Datenansicht mit Daten zum Standard-Publisher an.
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Fordern Sie eine Aktualisierung veröffentlichter Daten an.
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Fordern Sie eine Aktualisierung der Daten zum Standard-Publisher an.

Geschützte Attribute

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

Öffentliche Funktionen

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
Beantragen Sie die Stornierung einer ausgeführten Transaktion.
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
Verarbeitet die „Unvollständigkeit“ einer Bindung, die vom Client verwendet wird.

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
)

Fordern Sie eine Ansicht der veröffentlichten Daten an.

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 wurde.
[in] aTimeout
Die maximale Wartezeit in Millisekunden auf die Ansichtsantwort.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_NO_MEMORY
Wenn eine Transaktion nicht zugewiesen werden konnte.
Rückgabe
Andernfalls wird WEAVE_ERROR angezeigt, das angibt, dass die Transaktion nicht initialisiert oder gestartet werden konnte.

ViewRequest

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

Fordern Sie eine Datenansicht mit Daten zum Standard-Publisher an.

Fordern Sie eine Ansicht der Daten an, die sich auf dem Standard-Publisher befinden und von diesem verwaltet werden, d.h. dem ersten (oder einzigen) 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 wurde.
[in] aTimeout
Die maximale Wartezeit in Millisekunden auf die Ansichtsantwort.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_NO_MEMORY
Wenn eine Transaktion nicht zugewiesen werden konnte.
Rückgabe
Andernfalls wird WEAVE_ERROR angezeigt, das angibt, dass die Transaktion nicht initialisiert oder gestartet werden konnte.

UpdateRequest

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

Fordern Sie eine Aktualisierung veröffentlichter Daten an.

Sie können 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, die eine Darstellung der Aktualisierung einschließlich der Pfade enthält, auf die das Update angewendet werden soll.
[in] aTxnId
Eine Kennung für die Transaktion, die zum Verwalten der Aktualisierungsanfrage eingerichtet wurde.
[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 zugewiesen werden konnte. Andernfalls wird WEAVE_ERROR zurückgegeben, was einen Aktualisierungsfehler anzeigt.

UpdateRequest

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

Fordern Sie eine Aktualisierung der Daten zum Standard-Publisher an.

Sie können einen Remote-Publisher bitten, die verwalteten Daten zu aktualisieren. Diese Version leitet die Anfrage an den Publisher weiter, der das Ziel der Standardbindung des Clients ist.

Details
Parameter
[in] aDataList
Ein Verweis auf ein ReferencedTLVData-Objekt, das eine TLV-codierte Datenliste enthält, die eine Darstellung der Aktualisierung einschließlich der Pfade enthält, auf die das Update angewendet werden soll.
[in] aTxnId
Eine Kennung für die Transaktion, die zum Verwalten der Aktualisierungsanfrage eingerichtet wurde.
[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 zugewiesen werden konnte. Andernfalls wird WEAVE_ERROR zurückgegeben, was einen Aktualisierungsfehler anzeigt.

Geschützte Attribute

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

Öffentliche Funktionen

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

Beantragen Sie die Stornierung einer ausgeführten Transaktion.

Diese Methode generiert keinen Netzwerkverkehr, sondern gibt nur Ressourcen frei, die für die angegebenen Transaktionen zugewiesen sind.

Details
Parameter
[in] aTxnId
Nummer der zu stornierenden Transaktion. Wenn kTransactionIdNotspezifiziert wird, werden alle Transaktionen abgebrochen.
[in] aError
Der WEAVE_ERROR, der beim Abbrechen der Transaktion gemeldet wird.
Rückgabe
WEAVE_NO_ERROR bei Erfolg oder WEAVE_ERROR, das auf einen Fehler beim Abbrechen der Transaktion hinweist.

Klar

virtual void Clear(
  void
)

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

Mit dieser Methode werden insbesondere alle Clienttransaktionspools gelöscht. Für Clients, die bisher die Methode Finalize() verwendet haben, ist die Methode zu bevorzugen, da damit auch Abos 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 muss vor seiner Verwendung mit Init() initialisiert werden.

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 Abonnements aus dem Notifier. Nach einem Aufruf von Finalize() kann ein DMClient einfach durch Aufrufen von „Init()“ neu initialisiert werden. Finalize() wird vom DMClient-Destruktor aufgerufen, kann aber aufgerufen werden, wenn ein DMClient eine Bereinigung benötigt, z.B. bei einem Fehler oder einem vorübergehenden Herunterfahren, aber möglicherweise zu einem späteren Zeitpunkt neu erstellt werden muss.

IncompleteIndication

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

Verarbeitet die „Unvollständigkeit“ einer Bindung, die vom Client verwendet wird.

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

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

~DMClient

virtual  ~DMClient(
  void
)

Der Destruktor für DMClient-Objekte.

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

Geschützte Funktionen

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)