nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
Die Klasse Binding verwaltet mithilfe von Weave den Kommunikationsstatus im Namen einer Anwendungseinheit.
Zusammenfassung
Wenn eine Anwendung Weave für die Kommunikation mit einer Remote-Entität verwenden möchte, gibt es eine Vielzahl von Optionen. Die Klasse Binding verknüpft diese Optionen und ordnet sie so an, dass die einfachen Dinge einfach sind und die schwierigeren Dinge zumindest handhabbar sind. Folgende Optionen werden berücksichtigt:
- Unicast-UDP-Kommunikation mit einem bekannten Peer-Knoten.
- UDP-Broadcast mit einem beliebigen Knoten.
- Unicast-WRMP-Kommunikation mit einem bekannten Peer-Knoten.
- TCP-Kommunikation mit einem bekannten Peer-Knoten.
- TCP-Kommunikation mit einem bekannten Dienstendpunkt unter Verwendung einer Dienstmanagerinstanz zum Einrichten.
- TCP-Kommunikation basierend auf einer vorab hergestellten Verbindung.
Konstruktoren und Zerstörer |
|
---|---|
Binding(void)
Der Standardkonstruktor für Binding-Objekte.
|
|
~Binding(void)
Der Destruktor für Binding-Objekte.
|
Öffentliche Typen |
|
---|---|
@165{
|
enum Der Satz der Objektzustände Binding. |
Öffentliche Attribute |
|
---|---|
mAuthMode
|
WeaveAuthMode
Der zu verwendende Weave-Authentifizierungsmodus.
|
mConnection
|
Ein Zeiger auf die Weave-Verbindung, die derzeit in dieser Bindung verwendet wird.
|
mEngine
|
Ein Verweis auf das ProtocolEngine-Objekt, das sich auf dieses Binding bezieht.
|
mPeerNodeId
|
uint64_t
Die 64-Bit-Knoten-ID des Bindungsziels.
|
mServiceMgr
|
Ein Zeiger auf das (optionale) ServiceManager-Objekt, der zum Fertigstellen dieser Bindung verwendet werden soll.
|
mState
|
uint8_t
Der aktuelle Objektstatus des Typs Binding.
|
mTransport
|
uint8_t
Der Transport, der beim Abschließen dieser Binding verwendet werden soll.
|
Öffentliche Funktionen |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Verarbeitet die Bestätigung einer Bindungsanfrage.
|
CompleteConfirm(StatusReport & aReport)
|
void
Behandelt den Fehler bei einer Bindungsanfrage.
|
CompleteConfirm(void)
|
void
Verarbeitet die Bestätigung einer Bindungsanfrage.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Fordern Sie den Abschluss einer Bindung an.
|
Connect(WeaveConnection *aConnection)
|
Schließen Sie eine TCP-Bindung ab, indem Sie eine hergestellte Verbindung angeben.
|
Finalize(void)
|
void
„Unvollständige“ Bindung und geben Sie sie kostenlos.
|
Finalize(WEAVE_ERROR aErr)
|
void
„Unvollständige“ Bindung und geben Sie sie kostenlos.
|
Free(void)
|
void
Löschen Sie den Bindungsstatus.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Erzeugt ein ExchangeContext-Objekt aus einer Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Behandeln Sie den Fehler einer Bindung.
|
Init(const uint64_t & aPeerNodeId)
|
Initialisieren Sie eine Binding nur mit einer Knoten-ID.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Initialisieren Sie ein Binding-Objekt anhand der Peer-ID und des Transports.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Initialisieren Sie ein Binding-Objekt zu einem Dienstendpunkt.
|
Init(WeaveConnection *aConnection)
|
Initialisieren Sie ein Binding-Objekt mit WeaveConnection.
|
IsComplete(void)
|
bool
Prüfen Sie, ob eine Bindung abgeschlossen ist.
|
IsFree(void)
|
bool
Die Prüfung einer Bindung ist kostenlos.
|
UncompleteRequest(void)
|
void
Verursacht, dass eine Bindung unvollständig ist.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Verursacht, dass eine Bindung unvollständig ist.
|
Öffentliche Typen
@165
@165
Der Satz der Objektzustände Binding.
Attribute | |
---|---|
kState_Complete
|
Der Status einer Binding, die abgeschlossen und einsatzbereit ist. |
kState_Completing
|
Der Status einer Binding, die gerade abgeschlossen wird. |
kState_Incomplete
|
Der anfängliche (und endgültige) Zustand einer Binding. |
Öffentliche Attribute
mAuthMode
WeaveAuthMode mAuthMode
Der zu verwendende Weave-Authentifizierungsmodus.
(NUR_READ_ONLY)
Das ist der Authentifizierungsmodus, der für die gesamte Kommunikation verwendet wird, die dieser Bindung unterliegt.
mConnection
WeaveConnection * mConnection
Ein Zeiger auf die Weave-Verbindung, die derzeit in dieser Bindung verwendet wird.
(SCHREIBGESCHÜTZT)
TCP-Bindungen können sofort mit einer Verbindung initialisiert werden, oder sie können eine nach Abschluss zuweisen.
mEngine
ProtocolEngine * mEngine
Ein Verweis auf das ProtocolEngine-Objekt, das sich auf dieses Binding bezieht.
Eine Bindung wird im Allgemeinen in Bezug auf eine bestimmte Protokoll-Engine abgeschlossen, die meistens für den Zugriff auf MessageLayer verwendet wird. Hier behalten wir es im Auge.
mPeerNodeId
uint64_t mPeerNodeId
Die 64-Bit-Knoten-ID des Bindungsziels.
(SCHREIBGESCHÜTZT)
Jede Binding hat eine Zielentität, die hier benannt ist. Zusätzlich zu einer Weave-Knoten-ID kann dieser einen Dienstendpunkt benennen.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Ein Zeiger auf das (optionale) ServiceManager-Objekt, der zum Fertigstellen dieser Bindung verwendet werden soll.
(SCHREIBGESCHÜTZT)
Beim Binden an den Weave-Dienst kann bei der Initialisierung eine 64-Bit-Dienstendpunkt-ID anstelle einer Weave-Knoten-ID bereitgestellt werden. In diesem Fall ist zum Abschließen der Bindung zusätzlich ein ServiceManager-Objekt erforderlich. Normale TCP- oder WRMP-Bindungen erfordern kein ServiceManager-Objekt.
mState
uint8_t mState
Der aktuelle Objektstatus des Typs Binding.
Es kann jeweils nur ein „complete“-Vorgang auf einmal ausgeführt werden. Wenn Sie eine abgeschlossene Bindung abschließen möchten, wird in jedem Fall sofort die Bestätigungsfunktion aufgerufen. Die folgende Variable für den Status verfolgt den aktuellen Status und fungiert als Sperrfunktion.
mTransport
uint8_t mTransport
Der Transport, der beim Abschließen dieser Binding verwendet werden soll.
(SCHREIBGESCHÜTZT)
Mögliche Werte für mTransport sind in DMConstants.h definiert.
Öffentliche Funktionen
Bindung
Binding( void )
Der Standardkonstruktor für Binding-Objekte.
Löscht den gesamten internen Status.
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Verarbeitet die Bestätigung einer Bindungsanfrage.
Details | |||
---|---|---|---|
Parameter |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Behandelt den Fehler bei einer Bindungsanfrage.
Details | |||
---|---|---|---|
Parameter |
|
CompleteConfirm
void CompleteConfirm( void )
Verarbeitet die Bestätigung einer Bindungsanfrage.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Fordern Sie den Abschluss einer Bindung an.
Die Bindung wird zumindest für Bindungen, die TCP erfordern, in Bezug auf ein bestimmtes ProtocolEngine-Objekt durchgeführt, das Zugriff auf eine ExchangeManager-Instanz gewährt.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
||||||
Rückgabe |
Andernfalls werden alle WEAVE_ERROR-Fehler beim Verbindungsaufbau zurückgegeben.
|
Verbinden
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Schließen Sie eine TCP-Bindung ab, indem Sie eine hergestellte Verbindung angeben.
Eine neu initialisierte TCP-Bindung kann erst verwendet werden, wenn sie abgeschlossen ist. Normalerweise geschieht dies bei Bedarf, wenn die Anwendung versucht, die Bindung zum Senden von Nachrichten zu nutzen. Es kann jedoch auch explizit durch Bereitstellen einer Weave-Verbindung abgeschlossen werden.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
Abschließen
void Finalize( void )
„Unvollständige“ Bindung und geben Sie sie kostenlos.
Bindungen können einen Status haben, der eine Bereinigung erfordert, z.B. die Verbindungsschließung, die von der Methode Uncomplete() zusätzlich zu einem Zustand verarbeitet wird, der einfach durch die Methode Free() in den Ausgangszustand zurückgesetzt wird. Bei dieser Methode wird, hauptsächlich aus Gründen der Bequemlichkeit, beide aufgerufen.
Weitere Informationen:Finalize(WEAVE_ERROR)
Abschließen
void Finalize( WEAVE_ERROR aErr )
„Unvollständige“ Bindung und geben Sie sie kostenlos.
Bindungen können einen Status haben, der eine Bereinigung erfordert, z.B. die Verbindungsschließung, die von der Methode Uncomplete() zusätzlich zu einem Zustand verarbeitet wird, der einfach durch die Methode Free() in den Ausgangszustand zurückgesetzt wird. Bei dieser Methode wird, hauptsächlich aus Gründen der Bequemlichkeit, beide aufgerufen.
Details | |||
---|---|---|---|
Parameter |
|
Finalize(void)
Kostenlos
void Free( void )
Löschen Sie den Bindungsstatus.
Alle Bindungsstatus werden unbedingt auf ihren ursprünglichen Zustand zurückgesetzt.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Erzeugt ein ExchangeContext-Objekt aus einer Binding.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
Ein Zeiger auf ein ExchangeContext-Objekt oder NULL bei einem Fehler.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Behandeln Sie den Fehler einer Bindung.
Diese Methode wird aufgerufen und ruft wiederum Handler höherer Ebenen auf, wenn die Bindung NACH dem Abschluss fehlschlägt, d.h. nachdem CompleteConfirm() mit einem Status aufgerufen wurde, der einen Erfolg angibt.
Details | |||
---|---|---|---|
Parameter |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Initialisieren Sie eine Binding nur mit einer Knoten-ID.
Dies führt zu einer Bindung mit dem konfigurierten Standardtransport.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Initialisieren Sie ein Binding-Objekt anhand der Peer-ID und des Transports.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Initialisieren Sie ein Binding-Objekt zu einem Dienstendpunkt.
So binden Sie eine Bindung an einen bestimmten Endpunkt des Nest-Dienstes. Eine Bindung dieser Art erfordert einen mehrstufigen Abschlussprozess, der das Ausfüllen oder Aktualisieren des lokalen Dienstverzeichnisses beinhalten kann. Dieser Vorgang ist in der Anwendung größtenteils verborgen. Fehler, die später auftreten, werden jedoch möglicherweise über den entsprechenden „Confirm“-Callback übermittelt, und zwar manchmal nach der ursprünglichen Anfrage zur Verwendung (und zum Abschluss) der Bindung.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Initialisieren Sie ein Binding-Objekt mit WeaveConnection.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
IsComplete
bool IsComplete( void )
Prüfen Sie, ob eine Bindung abgeschlossen ist.
Details | |
---|---|
Rückgabe |
TRUE, wenn er vollständig ist, andernfalls FALSE.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Die Prüfung einer Bindung ist kostenlos.
"Kostenlos" bedeutet in diesem Kontext einfach "verfügt über eine definierte Peer-Knoten-ID". IsFree() bedeutet, dass Free() aufgerufen wurde und seitdem nicht mehr verwendet wurde.
Details | |
---|---|
Rückgabe |
„true“, wenn die Bindung kostenlos ist, andernfalls „false“.
|
UncompleteRequest
void UncompleteRequest( void )
Verursacht, dass eine Bindung unvollständig ist.
Grundsätzlich erhält eine Bindung den Status „Unvollständig“, nachdem diese Methode aufgerufen wurde. Genauer gesagt sollten alle relevanten Status, die nicht in der Bindung selbst enthalten sind, z. B. die TCP-Verbindung, ebenfalls bereinigt werden. Für Anwendungen kann im Rahmen der Bereinigung bei einem Fehler UncompleteRequest() aufgerufen werden.
Weitere Informationen:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Verursacht, dass eine Bindung unvollständig ist.
Grundsätzlich erhält eine Bindung den Status „Unvollständig“, nachdem diese Methode aufgerufen wurde. Genauer gesagt sollten alle relevanten Status, die nicht in der Bindung selbst enthalten sind, z. B. die TCP-Verbindung, ebenfalls bereinigt werden. Für Anwendungen kann im Rahmen der Bereinigung bei einem Fehler UncompleteRequest() aufgerufen werden.
Details | |||
---|---|---|---|
Parameter |
|
UncompleteRequest(void)
~Bindung
virtual ~Binding( void )
Der Destruktor für Binding-Objekte.
Löscht alle internen Status UND schließt, falls erforderlich, offene Verbindungen.