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