nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine

Dies ist eine abstrakte Klasse.

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

Die WDM-Protokoll-Engine-Klasse.

Zusammenfassung

Eine Datenverwaltungsentität, ein Kunde oder ein Publisher, verfügt über eine Protokoll-Engine-Komponente und eine Data-Manager-Komponente. Diese abstrakte Klasse stellt die gemeinsamen Funktionen der Protokoll-Engine dar.

Übernahme

Direkte bekannte abgeleitete Klassen:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

Konstruktoren und Zerstörer

ProtocolEngine(void)
~ProtocolEngine(void)

Geschützte Attribute

mBindingTable[kBindingTableSize]
ProtocolEngine verfügt über eine Bindungstabelle. Wenn die Engine neben dem Empfang von Broadcast-Benachrichtigungen für weitere Aufgaben zuständig sein soll, muss diese in der Regel mindestens einen Eintrag enthalten.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable[kTransactionTableSize]

Öffentliche Funktionen

BindConfirm(Binding *aBinding)
virtual WEAVE_ERROR
Verarbeiten Sie die Bestätigung, dass eine Bindungsanfrage erfolgreich abgeschlossen wurde.
BindConfirm(Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
Verarbeiten Sie die Bestätigung, dass eine Bindungsanfrage fehlgeschlagen ist.
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
Fordern Sie eine Bindung mit einer bekannten Peer-Knoten-ID und einem bekannten Transportspezifizierer an.
BindRequest(const uint64_t & aPeerNodeId)
Binden Sie mithilfe des Standardtransportes an einen bekannten Peer.
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest(WeaveConnection *aConnection)
Fordern Sie eine Bindung über eine aktive Weave-Verbindung an.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Verarbeitet einen Hinweis darauf, dass eine Bindung fehlgeschlagen ist.
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
Verarbeitet einen Hinweis darauf, dass eine Bindung unvollständig ist.
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest(const uint64_t & aPeerNodeId)
void
Fordern Sie an, dass eine Bindung rückgängig gemacht und aus der Bindungstabelle entfernt wird.
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Fordern Sie an, dass eine Bindung rückgängig gemacht und aus der Bindungstabelle entfernt wird.

Geschützte Funktionen

Clear(void)
void
ClearBindingTable(void)
void
ClearTransactionTable(void)
void
DequeueTransaction(DMTransaction *aTransaction)
void
EnqueueTransaction(DMTransaction *aTransaction, Binding *aBinding)
EnqueueTransaction(DMTransaction *aTransaction)
FailTransactions(Binding *aBinding, StatusReport & aReport)
bool
Finalize(void)
virtual void
FinalizeBindingTable(void)
void
FinalizeTransactionTable(void)
void
FinalizeTransactions(Binding *aBinding)
void
FromExchangeCtx(ExchangeContext *aExchangeCtx)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

Klassen

nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine::DMTransaction

Geschützte Attribute

mBindingTable

Binding mBindingTable[kBindingTableSize]

ProtocolEngine verfügt über eine Bindungstabelle. Wenn die Engine neben dem Empfang von Broadcast-Benachrichtigungen für weitere Aufgaben zuständig sein soll, muss diese in der Regel mindestens einen Eintrag enthalten.

Bindungen werden in der Regel nach Knoten-ID indexiert. Das bedeutet, dass jede Engine nur eine einzige Bindung an einen bestimmten Dienstendpunkt haben kann.

Die WDM-Spezifikation verwendet das Konzept der „Standardbindung“ an den Ort, an den Nachrichten gesendet werden, wenn kein explizites Ziel angegeben ist. Sie wird hauptsächlich in sehr einfachen Geräten mit einer einzelnen Bindung oder einer kleinen Anzahl von Bindungen verwendet und ist für andere Zwecke nur die erste Bindung.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

Öffentliche Funktionen

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

Verarbeiten Sie die Bestätigung, dass eine Bindungsanfrage erfolgreich abgeschlossen wurde.

Sobald eine Bindung abgeschlossen ist, durchläuft die Protokoll-Engine die Transaktionstabelle und startet alle Transaktionen, die von dieser Bindung abhängig sind.

Details
Parameter
[in] aBinding
Ein Zeiger auf die abgeschlossene Bindung.
Rückgabe
WEAVE_NO_ERROR Bei Erfolg. Andernfalls wird ein WEAVE_ERROR zurückgegeben, der angibt, dass keine Transaktion gestartet werden kann.

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

Verarbeiten Sie die Bestätigung, dass eine Bindungsanfrage fehlgeschlagen ist.

Wenn eine Bindungsanfrage fehlschlägt, muss das Protokollmodul die Transaktionstabelle durchlaufen und alle Transaktionen, die von der Bindung abhängen, fehlschlagen.

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.
Rückgabe
WEAVE_NO_ERROR zurückgegeben.

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Fordern Sie eine Bindung mit einer bekannten Peer-Knoten-ID und einem bekannten Transportspezifizierer an.

Bei einer Peer-Knoten-ID und einer Transportspezifikation richtet diese Anfrage eine Bindung an diesen Peer ein. Die Gebotsabgabe erfordert NUR dann zusätzliche Fertigstellungen, wenn der Transport über TCP erfolgt. Wenn bereits eine Bindung an den Peer vorhanden ist, wird sie wiederverwendet.

Details
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knoten-ID der Peer-Entität, die das Bindungsziel ist.
[in] aTransport
Das zu verwendende Transportmittel.
Rückgabe
WEAVE_NO_ERROR bei Erfolg oder WEAVE_ERROR_NO_MEMORY, wenn die Bindungstabelle voll ist. Andernfalls wird ein WEAVE_ERROR zurückgegeben, der auf einen Fehler beim Initialisieren der Bindung hinweist.
Weitere Informationen:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Binden Sie mithilfe des Standardtransportes an einen bekannten Peer.

Details
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knoten-ID der Peer-Entität, die das Bindungsziel ist.
Rückgabe
WEAVE_NO_ERROR Bei Erfolg. Andernfalls wird ein WEAVE_ERROR zurückgegeben, der den Fehler des Bindungsvorgangs widerspiegelt.

BindRequest

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Fordern Sie eine Bindung über eine aktive Weave-Verbindung an.

Eine Bindung kann auch mithilfe einer vorhandenen und offenen Verbindung hergestellt werden. Beachten Sie, dass auf diese Weise eingerichtete Bindungen nicht zusätzlich abgeschlossen werden müssen.

Details
Parameter
[in] aConnection
Ein Zeiger auf eine Weave-Verbindung, die von der Bindung verwendet werden soll.
Rückgabe
WEAVE_NO_ERROR bei Erfolg oder WEAVE_ERROR_NO_MEMORY, wenn die Bindungstabelle voll ist. Andernfalls wird ein Fehler zurückgegeben, der angibt, dass die Bindung nicht initiiert werden konnte.

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.

IncompleteIndication

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

Verarbeitet einen Hinweis darauf, dass eine Bindung unvollständig ist.

Höhere Ebenen, die über Bindungsfehler informiert werden möchten, sollten diese Methode verwenden, bei der einfach die Peer-ID zusammen mit einem Statusbericht übergeben wird. Da diese Methode virtuell ungültig ist, muss jede DMClient- oder DMPublisher-Unterklasse eine Implementierung bereitstellen.

Details
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-ID des Peer-Knotens oder Dienstendpunkts, der oder der das Ziel der fehlgeschlagenen Bindung ist.
[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
)

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtocolEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Fordern Sie an, dass eine Bindung rückgängig gemacht und aus der Bindungstabelle entfernt wird.

Wenn eine Bindung „ungebunden“ ist alle Transaktionen, die derzeit davon abhängen, sollten ebenfalls entfernt werden. Diese Methode schließt alle Transaktionen mit dieser Bindung automatisch ab.

Details
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knoten-ID oder den Dienstendpunkt, der die Bindung identifiziert.
Siehe auch:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

Fordern Sie an, dass eine Bindung rückgängig gemacht und aus der Bindungstabelle entfernt wird.

Wenn eine Bindung „ungebunden“ ist alle Transaktionen, die derzeit davon abhängen, sollten ebenfalls entfernt werden. Diese Methode schließt alle Transaktionen mit dieser Bindung automatisch ab.

Details
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knoten-ID oder den Dienstendpunkt, der die Bindung identifiziert.
[in] aErr
WEAVE_NO_ERROR, wenn es für diese Anforderung zum Aufheben der Bindung keinen spezifischen Grund gibt, andernfalls wird die Fehlerursache übergeben.
Siehe auch:
UnbindRequest(const uint64_t)

~ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

Geschützte Funktionen

Löschen

void Clear(
  void
)

ClearBindingTable

void ClearBindingTable(
  void
)

ClearTransactionTable

void ClearTransactionTable(
  void
)

DequeueTransaction

void DequeueTransaction(
  DMTransaction *aTransaction
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction
)

FailTransactions

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

Abschließen

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

FinalizeTransactionTable

void FinalizeTransactionTable(
  void
)

FinalizeTransactions

void FinalizeTransactions(
  Binding *aBinding
)

FromExchangeCtx

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

GetBinding

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

NewBinding

Binding * NewBinding(
  void
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)