Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl:: Weben:: Profile:: DataManagement_Legacy:: Bindung

#include <src/lib/profiles/data-management/Legacy/Binding.h>

Die Binding - Klasse verwaltet Kommunikationszustand im Auftrag eines Anwendungsentität mit Weave.

Zusammenfassung

Wenn eine Anwendung Weave verwenden möchte, um mit einer entfernten Entität zu kommunizieren, gibt es eine Vielzahl von Optionen. Die Binding - Klasse corrals diese Optionen und ordnet sie so , dass das leichte Material ist leicht und desto schwierige Sachen mindestens lenkbar. Zu den abgedeckten Optionen gehören:

  • Unicast-UDP-Kommunikation mit einem bekannten Peer-Knoten.
  • UDP-Broadcast mit "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 eingerichteten Verbindung.

Konstruktoren und Destruktoren

Binding (void)
Der Standardkonstruktor für Binding - Objekte.
~Binding (void)
Der Destruktor für Binding - Objekte.

Öffentliche Typen

@165 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
aufzählen
Der Satz von Binding Objektzuständen.

Ö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 im Zusammenhang mit dieser Bindung .
mPeerNodeId
uint64_t
Die 64-Bit-Knoten-ID des Bindungsziels.
mServiceMgr
Ein Zeiger auf das (optionale) ServiceManager-Objekt, das beim Vervollständigen dieser Bindung verwendet wird.
mState
uint8_t
mTransport
uint8_t
Der Transport zu verwenden , um diese bei der Vollendung Bindung .

Öffentliche Funktionen

CompleteConfirm ( WeaveConnection *aConnection)
void
Behandeln Sie die Bestätigung einer Bindungsanforderung.
CompleteConfirm ( StatusReport & aReport)
void
Behandeln Sie den Fehler einer Bindungsanforderung.
CompleteConfirm (void)
void
Behandeln Sie die Bestätigung einer Bindungsanforderung.
CompleteRequest ( ProtocolEngine *aEngine)
Fordern Sie den Abschluss einer Bindung an.
Connect ( WeaveConnection *aConnection)
Schließen Sie eine TCP-Bindung ab, indem Sie eine abgeschlossene Verbindung bereitstellen.
Finalize (void)
void
"Unvollständig" eine Bindung und befreien Sie sie.
Finalize ( WEAVE_ERROR aErr)
void
"Unvollständig" eine Bindung und befreien Sie sie.
Free (void)
void
Löschen Sie den Bindungsstatus.
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState)
Erstellung eines ExchangeContext Objekt aus einer Bindung .
IncompleteIndication ( StatusReport & aReport)
void
Behandeln Sie den Fehler einer Bindung.
Init (const uint64_t & aPeerNodeId)
Initialisieren Sie eine Bindung mit nur einem Knoten - ID.
Init (const uint64_t & aPeerNodeId, uint8_t aTransport)
Initialisieren ein Binding - Objekt basierend auf Peer - ID und Transport.
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
Initialisieren eines Binding - Objekt an einen Service - Endpunkt.
Init ( WeaveConnection *aConnection)
Initialisieren eines Binding - Objekt mit einem WeaveConnection .
IsComplete (void)
bool
Prüfen Sie, ob eine Bindung vollständig ist.
IsFree (void)
bool
Prüfen Sie, ob eine Bindung kostenlos ist.
UncompleteRequest (void)
void
Verursachen Sie, dass eine Bindung unvollständig ist.
UncompleteRequest ( WEAVE_ERROR aErr)
void
Verursachen Sie, dass eine Bindung unvollständig ist.

Öffentliche Typen

@165

 @165

Der Satz von Binding Objektzuständen.

Eigenschaften
kState_Complete

Der Zustand einer Bindung , dass vollständig und einsatzbereit.

kState_Completing

Der Zustand einer Bindung das heißt in dem Prozess abgeschlossen zu werden.

kState_Incomplete

Der anfängliche (und letzter) Zustand einer Bindung .

Öffentliche Attribute

mAuth-Modus

WeaveAuthMode mAuthMode

Der zu verwendende Weave-Authentifizierungsmodus.

(SCHREIBGESCHÜTZT)

Dies ist der Authentifizierungsmodus, der bei allen Kommunikationen verwendet wird, die dieser Bindung unterliegen.

mVerbindung

WeaveConnection * mConnection

Ein Zeiger auf die Weave-Verbindung, die derzeit in dieser Bindung verwendet wird.

(SCHREIBGESCHÜTZT)

TCP-Bindungen können von Anfang an mit einer Verbindung initialisiert werden oder sie können zum Zeitpunkt der Fertigstellung eine zuweisen.

mEngine

ProtocolEngine * mEngine

Ein Zeiger auf das ProtocolEngine Objekt im Zusammenhang mit dieser Bindung .

Eine Bindung wird im Allgemeinen in Bezug auf eine bestimmte Protokoll-Engine abgeschlossen, die meistens als Zugangsweg zum MessageLayer verwendet wird. Hier behalten wir den Überblick.

mPeerNodeId

uint64_t mPeerNodeId

Die 64-Bit-Knoten-ID des Bindungsziels.

(SCHREIBGESCHÜTZT)

Jede Bindung hat eine Zieleinheit, die hier genannt wird. Zusätzlich zu einer Weave-Knoten-ID kann dies einen Dienstendpunkt benennen.

mServiceMgr

nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr

Ein Zeiger auf das (optionale) ServiceManager-Objekt, das beim Vervollständigen dieser Bindung verwendet wird.

(SCHREIBGESCHÜTZT)

Beim Binden an den Weave-Dienst kann zum Zeitpunkt der Initialisierung eine 64-Bit-Dienstendpunkt-ID anstelle einer Weave-Knoten-ID bereitgestellt werden. In diesem Fall ist auch ein ServiceManager-Objekt erforderlich, um die Bindung abzuschließen. Normale TCP- oder WRMP-Bindungen erfordern kein ServiceManager-Objekt.

mState

uint8_t mState

Der aktuelle Bindungsobjektzustand.

Es kann immer nur ein "vollständiger" Vorgang gleichzeitig ausgeführt werden und auf jeden Fall ruft er, wenn Sie eine abgeschlossene Bindung abschließen möchten, sofort die Bestätigungsfunktion auf. Die folgende Zustandsvariable verfolgt den aktuellen Zustand und fungiert als Sperre.

mTransport

uint8_t mTransport

Der Transport zu verwenden , um diese bei der Vollendung Bindung .

(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 alle internen Zustände.

AbschließenBestätigen

void CompleteConfirm(
  WeaveConnection *aConnection
)

Behandeln Sie die Bestätigung einer Bindungsanforderung.

Einzelheiten
Parameter
[in] aConnection
Ein Zeiger auf einen aktiven WeaveConnection an das Bindungsziel.

AbschließenBestätigen

void CompleteConfirm(
  StatusReport & aReport
)

Behandeln Sie den Fehler einer Bindungsanforderung.

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

AbschließenBestätigen

void CompleteConfirm(
  void
)

Behandeln Sie die Bestätigung einer Bindungsanforderung.

VollständigeAnfrage

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

Fordern Sie den Abschluss einer Bindung an.

Abschluss einer Bindung ist, zumindest für Bindungen erfordern TCP, mit Bezug auf einen bestimmten durchgeführt ProtocolEngine Gegenstand, den Zugriff auf eine Exchange Instanz bereitstellt.

Einzelheiten
Parameter
[in] aEngine
Ein Zeiger auf ein ProtocolEngine Objekt im Auftrag von dem der Abschluss durchgeführt wird.
Rückgabewerte
WEAVE_NO_ERROR
Auf Erfolg.
WEAVE_ERROR_INCORRECT_STATE
wenn die Bindung bereits abgeschlossen ist.
WEAVE_ERROR_NO_MEMORY
Wenn eine Verbindung erforderlich ist und keine verfügbar ist
Kehrt zurück
Andernfalls jede WEAVE_ERROR zurückgeführt, während die Verbindung zu versuchen.

Verbinden

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

Schließen Sie eine TCP-Bindung ab, indem Sie eine abgeschlossene 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.

Einzelheiten
Parameter
[in] aConnection
Ein Zeiger auf eine WeaveConnection verwendet , um die Bindung zu vervollständigen.
Rückgabewerte
WEAVE_NO_ERROR
Auf 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" eine Bindung und befreien Sie sie.

Bindungen können Zustand haben , die cleanup erfordert, zB Verbindungsverschluß, der durch die Unvollständige () Methode zusätzlich zu Zustand gehandhabt wird , die einfach in den Ausgangszustand durch das gelöscht wird frei () Methode. Diese Methode ruft, hauptsächlich aus Gründen der Bequemlichkeit, beide auf.

Siehe auch:
Abschließen(WEAVE_ERROR)

Abschließen

void Finalize(
  WEAVE_ERROR aErr
)

"Unvollständig" eine Bindung und befreien Sie sie.

Bindungen können Zustand haben , die cleanup erfordert, zB Verbindungsverschluß, der durch die Unvollständige () Methode zusätzlich zu Zustand gehandhabt wird , die einfach in den Ausgangszustand durch das gelöscht wird frei () Methode. Diese Methode ruft, hauptsächlich aus Gründen der Bequemlichkeit, beide auf.

Einzelheiten
Parameter
[in] aErr
Dieser Fehlercode gibt die Ursache dieser Anforderung an. Wenn nicht WEAVE_NO_ERROR, könnte die TCP-Verbindung abgebrochen werden.
Siehe auch:
Abschließen (ungültig)

Kostenlos

void Free(
  void
)

Löschen Sie den Bindungsstatus.

Bringen Sie alle Bindungszustände bedingungslos in den ursprünglichen Zustand zurück.

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

Erstellung eines ExchangeContext Objekt aus einer Bindung .

Einzelheiten
Parameter
[in] aExchangeMgr
Ein Zeiger auf den Exchange-Manager, von dem ein Kontext angefordert werden soll.
[in] aAppState
Ein void-Zeiger auf ein Anwendungszustandsobjekt, das im Austauschkontext zur späteren Verwendung gespeichert werden soll.
Kehrt zurück
ein Zeiger auf ein ExchangeContext Objekt oder NULL bei einem Fehler.

UnvollständigAnzeige

void IncompleteIndication(
  StatusReport & aReport
)

Behandeln Sie den Fehler einer Bindung.

Diese Methode wird aufgerufen , und wiederum rufen höhere Schicht - Handler , wenn die Bindung nicht nach Fertigstellung, dh nach CompleteConfirm () hat , mit einem Status angibt Erfolg aufgerufen.

Einzelheiten
Parameter
[in] aReport
Ein Verweis auf einen StatusReport, der beschreibt, was schief gelaufen ist.
Siehe auch:
CompleteConfirm (Statusreport & aReport) .

Drin

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

Initialisieren Sie eine Bindung mit nur einem Knoten - ID.

Dies führt zu einer Bindung mit dem konfigurierten Standardtransport.

Einzelheiten
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-ID des Bindungsziels.
Rückgabewerte
WEAVE_NO_ERROR
Auf Erfolg.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Bindung unterspezifiziert ist.

Drin

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

Initialisieren ein Binding - Objekt basierend auf Peer - ID und Transport.

Einzelheiten
Parameter
[in] aPeerNodeId
Ein Verweis auf die 64-Bit-Knoten-ID des Bindungsziels.
[in] aTransport
Die Transportspezifikation von WeaveTransportOption.
Rückgabewerte
WEAVE_NO_ERROR
Auf Erfolg.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Bindung unterspezifiziert ist.

Drin

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

Initialisieren eines Binding - Objekt an einen Service - Endpunkt.

So binden Sie sich an einen bestimmten Endpunkt im Nest-Dienst. Eine Bindung dieser Art erfordert einen mehrstufigen Abschlussprozess, der das Auffüllen oder Aktualisieren des lokalen Dienstverzeichniscaches umfassen kann. Dieser Vorgang ist größtenteils von der Anwendung ausgeblendet, bedeutet jedoch, dass später im Prozess auftretende Fehler, normalerweise über den entsprechenden "Bestätigen"-Callback, nach - manchmal lange nach - der ursprünglichen Anforderung zur Verwendung (und Vervollständigung) geliefert werden können. die Bindung.

Einzelheiten
Parameter
[in] aServiceEpt
Ein Verweis auf die 64-Bit-Kennung für den interessierenden Weave Service-Endpunkt.
[in] aServiceMgr
Ein Zeiger auf die Service Manager-Instanz, der beim Suchen nach einer Serviceschicht und beim Herstellen einer Verbindung zu dieser verwendet wird.
[in] aAuthMode
Der beim Herstellen einer Verbindung zu verwendende Authentifizierungsmodus.
Rückgabewerte
WEAVE_NO_ERROR
Auf Erfolg.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Bindung unterspezifiziert ist.

Drin

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

Initialisieren eines Binding - Objekt mit einem WeaveConnection .

Einzelheiten
Parameter
[in] aConnection
Ein Zeiger auf eine WeaveConnection als Grundlage für die Bindung verwendet werden ..
Rückgabewerte
WEAVE_NO_ERROR
Auf Erfolg.
WEAVE_ERROR_INVALID_ARGUMENT
Wenn die Bindung unterspezifiziert ist.

Ist komplett

bool IsComplete(
  void
)

Prüfen Sie, ob eine Bindung vollständig ist.

Einzelheiten
Kehrt zurück
true, wenn es vollständig ist, andernfalls false.
Siehe auch:
CompleteRequest(ProtocolEngine *aEngine)

Ist gratis

bool IsFree(
  void
)

Prüfen Sie, ob eine Bindung kostenlos ist.

„Frei“ bedeutet in diesem Zusammenhang einfach „hat eine definierte Peer-Node-ID“. IsFree () soll gedacht werden , im Sinne von „hatte Free () auf sie genannt und ist seit nicht verwendet“.

Einzelheiten
Kehrt zurück
true, wenn die Bindung frei ist, andernfalls false.

UnvollständigeAnfrage

void UncompleteRequest(
  void
)

Verursachen Sie, dass eine Bindung unvollständig ist.

Grundsätzlich sollte eine Bindung im Zustand "unvollständig" sein, nachdem diese Methode aufgerufen wurde, aber subtiler sollte auch jeder relevante Zustand, der nicht in der Bindung selbst enthalten ist, z. Anwendungen können den Aufruf betrachten UncompleteRequest () als Teil der Bereinigung auf Fehler.

Siehe auch:
UnvollständigeAnfrage(WEAVE_ERROR )

UnvollständigeAnfrage

void UncompleteRequest(
  WEAVE_ERROR aErr
)

Verursachen Sie, dass eine Bindung unvollständig ist.

Grundsätzlich sollte sich eine Bindung im Zustand "unvollständig" befinden, nachdem diese Methode aufgerufen wurde, aber subtiler sollte auch jeder relevante Zustand, der nicht in der Bindung selbst enthalten ist, zB TCP-Verbindung, bereinigt werden. Anwendungen können den Aufruf betrachten UncompleteRequest () als Teil der Bereinigung auf Fehler.

Einzelheiten
Parameter
[in] aErr
Wenn nicht WEAVE_NO_ERROR, wird die bestehende Verbindung, falls vorhanden, abgebrochen statt ordnungsgemäß geschlossen.
Siehe auch:
UnvollständigeAnfrage(ungültig)

~Bindung

virtual  ~Binding(
  void
)

Der Destruktor für Binding - Objekte.

Löscht alle internen Zustände UND schließt ggf. offene Verbindungen.