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

Das ist eine abstrakte Klasse.

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

Die WDM-Protokoll-Engine-Klasse.

Zusammenfassung

Eine Datenverwaltungseinheit, also ein Client oder Publisher, hat eine Protokoll-Engine- und eine Datenmanager-Komponente. Diese abstrakte Klasse stellt die allgemeinen Funktionen der Protokoll-Engine dar.

Übernahme

Direkte bekannte Unterklassen:
  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]
Die ProtocolEngine verfügt über eine Bindungstabelle, die wahrscheinlich mindestens einen Eintrag enthalten muss, wenn die Engine nicht nur für den Empfang von Broadcast-Benachrichtigungen zuständig ist, sondern für Aufgaben, die über den Empfang von Broadcast-Benachrichtigungen hinausgehen.
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
Verarbeitung der 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)
Erstellen Sie mithilfe des Standardtransports eine Bindung an einen bekannten Peer.
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest(WeaveConnection *aConnection)
Binden Sie ü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 das Rückgängigmachen einer Bindung und das Entfernen aus der Bindungstabelle an.
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
Fordern Sie das Rückgängigmachen einer Bindung und das Entfernen aus der Bindungstabelle an.

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)

Kurse

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

Geschützte Attribute

mBindingTable

Binding mBindingTable[kBindingTableSize]

Die ProtocolEngine verfügt über eine Bindungstabelle, die wahrscheinlich mindestens einen Eintrag enthalten muss, wenn die Engine nicht nur für den Empfang von Broadcast-Benachrichtigungen zuständig ist, sondern für Aufgaben, die über den Empfang von Broadcast-Benachrichtigungen hinausgehen.

Bindungen werden im Allgemeinen nach Knoten-ID indexiert. Das bedeutet, dass jede Suchmaschine nur eine einzige Bindung an einen bestimmten Dienstendpunkt haben kann.

Die WDM-Spezifikation verwendet dieses Konzept der "Standardbindung", also der Stelle, an der Nachrichten gesendet werden, wenn kein explizites Ziel angegeben ist. Sie wird hauptsächlich auf sehr einfachen Geräten mit einer einzelnen Bindung oder einer kleinen Anzahl von Bindungen verwendet. Für andere Zwecke wird nur die erste Bindung verwendet.

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 WEAVE_ERROR zurückgegeben, was bedeutet, dass eine Transaktion nicht gestartet werden kann.

BindConfirm

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

Verarbeitung der Bestätigung, dass eine Bindungsanfrage fehlgeschlagen ist.

Wenn eine Bindungsanfrage fehlschlägt, muss die Protokoll-Engine die Transaktionstabelle durchlaufen und alle Transaktionen abhängig von der Bindung fehlschlagen.

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

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.

Mit einer Peer-Knoten-ID und einer Transportspezifikation richtet diese Anfrage eine Bindung an diesen Peer ein. Die Gebotsabgabe erfordert NUR dann einen zusätzlichen Abschluss, wenn der Transport TCP ist. Wenn bereits eine Bindung zum 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
Der zu verwendende Transport.
Rückgabe
WEAVE_NO_ERROR bei Erfolg oder WEAVE_ERROR_NO_MEMORY, wenn die Bindungstabelle voll ist. Andernfalls wird WEAVE_ERROR zurückgegeben, was bedeutet, dass die Bindung nicht initialisiert werden konnte.
Weitere Informationen:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

Erstellen Sie mithilfe des Standardtransports eine Bindung 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 WEAVE_ERROR zurückgegeben, was das Fehlschlagen des Bindungsvorgangs widerspiegelt.

BindRequest

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

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

Binden Sie über eine aktive Weave-Verbindung an.

Eine Bindung kann auch mithilfe einer vorhandenen und offenen Verbindung erstellt werden. Beachten Sie, dass auf diese Weise eingerichtete Bindungen keine zusätzliche Vervollständigung erfordern.

Details
Parameter
[in] aConnection
Ein Zeiger auf eine Weave-Verbindung, der 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 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.

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 „Virtual void“ 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 das Ziel der fehlgeschlagenen Bindung ist.
[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
)

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtocolEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

Fordern Sie das Rückgängigmachen einer Bindung und das Entfernen aus der Bindungstabelle an.

Wenn eine Bindung "ungebunden" ist, sollten alle derzeit von ihr abhängigen Transaktionen 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 das Rückgängigmachen einer Bindung und das Entfernen aus der Bindungstabelle an.

Wenn eine Bindung "ungebunden" ist, sollten alle derzeit von ihr abhängigen Transaktionen 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 keinen speziellen Grund für diese Anfrage zum Aufheben der Bindung gibt, andernfalls wird die Fehlerursache weitergegeben.
Siehe auch:
UnbindRequest(const uint64_t)

~ProtocolEngine

virtual  ~ProtocolEngine(
  void
)

Geschützte Funktionen

Klar

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
)