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)
|
Binding *
|
GetBinding(const uint64_t & aPeerNodeId)
|
Binding *
|
NewBinding(void)
|
Binding *
|
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
|
|
StartTransaction(DMTransaction *aTransaction)
|
|
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)
|
Kurse |
|
---|---|
nl:: |
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 |
|
||
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 |
|
||||
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 |
|
||||
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.
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
Erstellen Sie mithilfe des Standardtransports eine Bindung an einen bekannten Peer.
Details | |||
---|---|---|---|
Parameter |
|
||
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 |
|
||
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 |
|
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 |
|
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 |
|
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 |
|
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 )