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{
  kState_Incomplete = 0,
  kState_Completing = 1,
  kState_Complete = 2
}
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
[in] aConnection
Ein Zeiger auf eine aktive WeaveConnection zum Bindungsziel.

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

Beheben Sie den Fehler einer Bindungsanfrage.

Details
Parameter
[in] aReport
Ein Verweis auf ein StatusReport-Objekt, das den Fehler beschreibt.

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
[in] aEngine
Ein Zeiger auf ein ProtocolEngine-Objekt, in dessen Namen der Abschluss ausgeführt wird.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INCORRECT_STATE
wenn die Bindung bereits abgeschlossen ist.
WEAVE_ERROR_NO_MEMORY
Ob eine Verbindung erforderlich und keine verfügbar ist
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
[in] aConnection
Ein Zeiger auf eine WeaveConnection, die zum Abschließen der Bindung verwendet wird.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INCORRECT_STATE
Wenn die Bindung bereits eine Verbindung hat.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Verbindung NULL ist.

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
[in] aErr
Dieser Fehlercode gibt die Ursache dieser Anfrage an. Wenn nicht WEAVE_NO_ERROR, könnte die TCP-Verbindung abgebrochen werden.
Weitere Informationen:
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
[in] aExchangeMgr
Ein Verweis auf den Anzeigenplattform-Manager, von dem aus ein Kontext angefordert werden soll.
[in] aAppState
Ein Void-Pointer auf ein Anwendungsstatusobjekt, das zur späteren Verwendung im Austauschkontext gespeichert wird.
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
[in] aReport
Eine Verweis auf einen StatusReport, in dem das Problem beschrieben wird.
Siehe auch:
CompleteConfirm(StatusReport &amp;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
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-ID des Bindungsziels.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Bindung nicht angegeben ist.

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
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knotenkennung des Bindungsziels.
[in] aTransport
Die Transportspezifikation aus WeaveTransportOption.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Bindung nicht angegeben ist.

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
[in] aServiceEpt
Ein Verweis auf die 64-Bit-Kennung für den gewünschten Weave-Service-Endpunkt.
[in] aServiceMgr
Ein Zeiger auf die Dienstmanager-Instanz, mit der eine Dienststufe ermittelt und eine Verbindung zu ihr hergestellt werden kann.
[in] aAuthMode
Der Authentifizierungsmodus, der beim Herstellen der Verbindung verwendet werden soll.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Bindung nicht angegeben ist.

Init

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

Initialisieren Sie ein Binding-Objekt mit einer WeaveConnection.

Details
Parameter
[in] aConnection
Ein Zeiger auf eine WeaveConnection, die als Basis für die Bindung verwendet werden soll.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Bindung nicht angegeben ist.

IsComplete

bool IsComplete(
  void
)

Prüfen Sie, ob eine Bindung abgeschlossen ist.

Details
Rückgabe
"true", wenn sie vollständig ist, andernfalls "false".
Weitere Informationen:
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 &quot;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
[in] aErr
Wenn nicht WEAVE_NO_ERROR, wird die vorhandene Verbindung, falls vorhanden, abgebrochen und nicht ordnungsgemäß geschlossen.
Weitere Informationen:
UncompleteRequest(void)

~Bindung

virtual  ~Binding(
  void
)

Destruktiver für Binding-Objekte.

Löscht den gesamten internen Status UND schließt gegebenenfalls offene Verbindungen.