nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
Die Klasse Binding verwaltet den Kommunikationsstatus im Namen einer Anwendungsentität mithilfe von Weave.
Zusammenfassung
Wenn eine App Weave verwenden möchte, um mit einer Remote-Entität zu kommunizieren, gibt es eine Vielzahl von Optionen. Die Klasse Binding ordnet diese Optionen so an, dass die einfachen Aufgaben einfach und die schwierigeren Aufgaben zumindest leicht zu verarbeiten sind. Mögliche Optionen:
- Unicast-UDP-Kommunikation mit einem bekannten Peer-Knoten.
- UDP-Broadcast mit „any“ 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 Dienstmanager-Instanz zur Einrichtung.
- TCP-Kommunikation basierend auf einer vorab hergestellten Verbindung.
Konstruktoren und Zerstörer |
|
---|---|
Binding(void)
Der Standardkonstruktor für Binding-Objekte.
|
|
~Binding(void)
Destruktiver für Binding-Objekte.
|
Öffentliche Typen |
|
---|---|
@165{
|
enum Die Gruppe der Objektstatus 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 Zeiger 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, das beim Abschließen dieser Bindung verwendet werden soll.
|
mState
|
uint8_t
Der aktuelle Status des Binding-Objekts.
|
mTransport
|
uint8_t
Der Transport, der beim Abschließen dieser Binding verwendet werden soll.
|
Öffentliche Funktionen |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Verarbeiten Sie die Bestätigung einer Bindungsanfrage.
|
CompleteConfirm(StatusReport & aReport)
|
void
Beheben Sie den Fehler einer Bindungsanfrage.
|
CompleteConfirm(void)
|
void
Verarbeiten Sie die Bestätigung einer Bindungsanfrage.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Fordert den Abschluss einer Bindung an.
|
Connect(WeaveConnection *aConnection)
|
Schließen Sie eine TCP-Bindung ab, indem Sie eine hergestellte Verbindung bereitstellen.
|
Finalize(void)
|
void
„Unvollständig“ Bindung und gibt es kostenlos.
|
Finalize(WEAVE_ERROR aErr)
|
void
„Unvollständig“ Bindung und gibt es kostenlos.
|
Free(void)
|
void
Löscht den Bindungsstatus.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Generieren Sie ein ExchangeContext-Objekt aus einer Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Beheben Sie Fehler bei einer Bindung.
|
Init(const uint64_t & aPeerNodeId)
|
Binding nur mit einer Knoten-ID initialisieren
|
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 bei einem Dienstendpunkt.
|
Init(WeaveConnection *aConnection)
|
Initialisieren Sie ein Binding-Objekt mit einer WeaveConnection.
|
IsComplete(void)
|
bool
Prüfen Sie, ob eine Bindung abgeschlossen ist.
|
IsFree(void)
|
bool
Die Prüfung, ob eine Bindung kostenlos ist.
|
UncompleteRequest(void)
|
void
Veranlassen Sie, dass eine Bindung unvollständig ist.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Veranlassen Sie, dass eine Bindung unvollständig ist.
|
Öffentliche Typen
@165
@165
Die Gruppe der Objektstatus 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) Status einer Bindung. |
Öffentliche Attribute
mAuthMode
WeaveAuthMode mAuthMode
Der zu verwendende Weave-Authentifizierungsmodus.
(READ_ONLY)
Dies 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 weisen nach Abschluss eine Verbindung zu.
mEngine
ProtocolEngine * mEngine
Ein Zeiger auf das ProtocolEngine-Objekt, das sich auf dieses Binding bezieht.
Eine Bindung wird im Allgemeinen in Bezug auf eine bestimmte Protokoll-Engine abgeschlossen, die hauptsächlich als Möglichkeit für den Zugriff auf MessageLayer verwendet wird. An dieser Stelle behalten wir den Überblick.
mPeerNodeId
uint64_t mPeerNodeId
Die 64-Bit-Knoten-ID des Bindungsziels.
(SCHREIBGESCHÜTZT)
Jede Binding hat eine Zielentität, die hier benannt ist. Neben einer Weave-Knoten-ID kann dies einen Dienstendpunkt nennen.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Ein Zeiger auf das (optionale) ServiceManager-Objekt, das beim Abschließen dieser Bindung verwendet werden soll.
(SCHREIBGESCHÜTZT)
Bei der Bindung an den Weave-Dienst kann bei der Initialisierung anstelle einer Weave-Knoten-ID eine 64-Bit-Dienstendpunkt-ID bereitgestellt werden. In diesem Fall ist auch ein ServiceManager-Objekt erforderlich, um die Bindung abzuschließen. Für normale TCP- oder WRMP-Bindungen ist kein ServiceManager-Objekt erforderlich.
mState
uint8_t mState
Der aktuelle Status des Binding-Objekts.
Nur eine „abgeschlossen“ -Vorgang kann gleichzeitig ausgeführt werden. Wenn Sie eine abgeschlossene Bindung abschließen möchten, wird in jedem Fall sofort die Bestätigungsfunktion aufgerufen. Die folgende Statusvariable verfolgt den aktuellen Status und dient als Lockout.
mTransport
uint8_t mTransport
Der Transport, der zum Ausführen 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 )
Verarbeiten Sie die Bestätigung einer Bindungsanfrage.
Details | |||
---|---|---|---|
Parameter |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Beheben Sie den Fehler einer Bindungsanfrage.
Details | |||
---|---|---|---|
Parameter |
|
CompleteConfirm
void CompleteConfirm( void )
Verarbeiten Sie die Bestätigung einer Bindungsanfrage.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Fordert den Abschluss einer Bindung an.
Der Abschluss einer Bindung wird zumindest bei Bindungen, die TCP erfordern, in Bezug auf ein bestimmtes ProtocolEngine-Objekt ausgeführt, das Zugriff auf eine ExchangeManager-Instanz bietet.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
||||||
Rückgabe |
Andernfalls wird beim Verbindungsaufbau jeder WEAVE_ERROR zurückgegeben.
|
Verbinden
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Schließen Sie eine TCP-Bindung ab, indem Sie eine hergestellte Verbindung bereitstellen.
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 verwenden, kann aber auch explizit durch Bereitstellen einer Weave-Verbindung abgeschlossen werden.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
Abschließen
void Finalize( void )
„Unvollständig“ Bindung und gibt es kostenlos.
Bindungen können einen Status haben, der eine Bereinigung erfordert, z.B. Verbindungsabschluss, der von der Uncomplete()-Methode zusätzlich zu dem Zustand verarbeitet wird, der durch die Free()-Methode einfach auf seinen ursprünglichen Zustand zurückgesetzt wird. Diese Methode ruft beide Methoden auf, hauptsächlich aus Gründen der Einfachheit.
Weitere Informationen:Abgeschlossen(WEAVE_ERROR)
Abschließen
void Finalize( WEAVE_ERROR aErr )
„Unvollständig“ Bindung und gibt es kostenlos.
Bindungen können einen Status haben, der eine Bereinigung erfordert, z.B. Verbindungsabschluss, der von der Uncomplete()-Methode zusätzlich zu dem Zustand verarbeitet wird, der durch die Free()-Methode einfach auf seinen ursprünglichen Zustand zurückgesetzt wird. Diese Methode ruft beide Methoden auf, hauptsächlich aus Gründen der Einfachheit.
Details | |||
---|---|---|---|
Parameter |
|
Abschließen(void)
Kostenlos
void Free( void )
Löscht den Bindungsstatus.
Setzt alle Bindungsstatus bedingungslos zurück in ihren ursprünglichen Zustand.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Generieren Sie ein ExchangeContext-Objekt aus einer Binding.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
Ein Zeiger auf ein ExchangeContext-Objekt oder auf NULL bei einem Fehler.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Beheben Sie Fehler bei einer Bindung.
Diese Methode wird aufgerufen und ruft im Gegenzug Handler höherer Ebenen auf, wenn die Bindung NACH dem Abschluss fehlschlägt, d.h. nachdem CompleteConfirm() mit einem Status aufgerufen wurde, der den Erfolg anzeigt.
Details | |||
---|---|---|---|
Parameter |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Binding nur mit einer Knoten-ID initialisieren
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 bei einem Dienstendpunkt.
Auf diese Weise binden Sie eine Bindung an einen bestimmten Endpunkt im Nest-Dienst. Eine Bindung dieser Art erfordert einen mehrstufigen Abschlussprozess, der das Auffüllen oder Aktualisieren des lokalen Dienstverzeichnis-Cache beinhalten kann. Dieser Vorgang ist größtenteils in der Anwendung verborgen. Fehler, die später im Prozess auftreten, können jedoch übermittelt werden, normalerweise über die entsprechende Schaltfläche „Bestätigen“. -Callback, manchmal auch lange nach der ursprünglichen Anfrage zur Verwendung (und Abschluss) der Bindung.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Initialisieren Sie ein Binding-Objekt mit einer WeaveConnection.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
IsComplete
bool IsComplete( void )
Prüfen Sie, ob eine Bindung abgeschlossen ist.
Details | |
---|---|
Rückgabe |
"true", wenn sie vollständig ist, andernfalls "false".
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Die Prüfung, ob eine Bindung kostenlos ist.
„Kostenlos“ bedeutet in diesem Zusammenhang einfach, dass es einen definierten Peer-Knoten hat. ID" hinzu. IsFree() should be thought of as meaning "has had Free() und wurde seitdem nicht mehr verwendet.
Details | |
---|---|
Rückgabe |
"true", wenn die Bindung kostenlos ist, andernfalls "false".
|
UncompleteRequest
void UncompleteRequest( void )
Veranlassen Sie, dass eine Bindung unvollständig ist.
Grundsätzlich muss sich eine Bindung in der „unvollständigen“ nachdem diese Methode aufgerufen wurde, aber subtiler sind alle relevanten Status, die nicht in der Bindung selbst enthalten sind, z.B. TCP-Verbindung sollte ebenfalls bereinigt werden. Anwendungen können das Aufrufen von UncompleteRequest() im Rahmen der Bereinigung nach einem Fehler in Betracht ziehen.
Weitere Informationen:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Veranlassen Sie, dass eine Bindung unvollständig ist.
Grundsätzlich muss sich eine Bindung in der „unvollständigen“ nachdem diese Methode aufgerufen wurde, aber subtiler sind alle relevanten Status, die nicht in der Bindung selbst enthalten sind, z.B. TCP-Verbindung sollte ebenfalls bereinigt werden. Anwendungen können das Aufrufen von UncompleteRequest() im Rahmen der Bereinigung nach einem Fehler in Betracht ziehen.
Details | |||
---|---|---|---|
Parameter |
|
UncompleteRequest(void)
~Bindung
virtual ~Binding( void )
Destruktiver für Binding-Objekte.
Löscht den gesamten internen Status UND schließt gegebenenfalls offene Verbindungen.