nl::Weave::WeaveConnection

#include <src/lib/core/WeaveMessageLayer.h>

Die Definition der Weave Connection-Klasse.

Zusammenfassung

Er steht für eine TCP- oder BLE-Verbindung zu einem anderen Weave-Knoten.

Öffentliche Typen

@58{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Diese Funktion ist der Anwendungs-Callback, der beim Beenden einer Verbindung aufgerufen wird.
ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Diese Funktion ist der Anwendungsrückruf, der nach Abschluss einer Verbindungseinrichtung aufgerufen wird.
MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
Diese Funktion ist der Anwendungsrückruf, der aufgerufen wird, wenn eine Nachricht über eine Weave-Verbindung empfangen wird.
NetworkType{
  kNetworkType_Unassigned = 0,
  kNetworkType_IP = 1,
  kNetworkType_BLE = 2
}
enum
Der Netzwerktyp des Weave-Verbindungsobjekts.
ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err) typedef
void(*
Diese Funktion ist der Anwendungs-Callback, der aufgerufen wird, wenn beim Empfang einer Weave-Nachricht ein Fehler auftritt.
State{
  kState_ReadyToConnect = 0,
  kState_Resolving = 1,
  kState_Connecting = 2,
  kState_EstablishingSession = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_Closed = 6
}
enum
Der Status des Weave-Verbindungsobjekts.
TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
Diese Funktion ist der Anwendungs-Callback, der nach dem Empfang eines getunnelten Datenpakets über die Weave-Verbindung aufgerufen wird.

Öffentliche Attribute

AppState
void *
Ein Zeiger auf das anwendungsspezifische Statusobjekt.
AuthMode
WeaveAuthMode
[READ ONLY] Der Authentifizierungsmodus, der zum Einrichten der Standardverschlüsselungsschlüssel für die Verbindung verwendet wird.
DefaultEncryptionType
uint8_t
Der Standardverschlüsselungstyp für Nachrichten.
DefaultKeyId
uint16_t
Der Standardverschlüsselungsschlüssel, der beim Senden von Nachrichten verwendet wird.
MessageLayer
[READ ONLY] Das zugehörige WeaveMessageLayer-Objekt.
NetworkType
uint8_t
[READ ONLY] Der Netzwerktyp des zugehörigen Endpunkts.
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[READ ONLY] Die IP-Adresse des Peer-Knotens.
PeerNodeId
uint64_t
[READ ONLY] Die Knotenkennung des Peers.
PeerPort
uint16_t
[READ ONLY] Die Portnummer des Peer-Knotens.
ReceiveEnabled
bool
[READ ONLY] „True“, wenn der Empfang aktiviert ist, andernfalls „false“.
SendDestNodeId
bool
"True", wenn alle über diese Verbindung gesendeten Nachrichten eine explizit codierte Zielknotenkennung enthalten müssen. Andernfalls ist "false" festgelegt.
SendSourceNodeId
bool
"True", wenn alle über diese Verbindung gesendeten Nachrichten eine explizit codierte Quellknotenkennung enthalten müssen. Andernfalls ist "false" festgelegt.
State
uint8_t
[READ ONLY] Der Status des WeaveConnection-Objekts.

Öffentliche Funktionen

Abort(void)
void
Führt ein nicht ordnungsgemäßes Schließen der TCP- oder BLE-basierten WeaveConnection durch und verwirft alle Daten, die möglicherweise zum oder vom Peer übertragen werden.
AddRef(void)
void
Reservieren Sie einen Verweis auf das WeaveConnection-Objekt.
Close(void)
Führt ein nicht blockierendes ordnungsgemäßes Schließen der TCP- oder BLE-basierten WeaveConnection durch und stellt alle verbleibenden ausgehenden Daten bereit, bevor der Remote-Host höflich darüber informiert wird, dass wir die Verbindung zurückgesetzt haben.
Close(bool suppressCloseLog)
Führt ein nicht blockierendes ordnungsgemäßes Schließen der TCP- oder BLE-basierten WeaveConnection durch und stellt alle verbleibenden ausgehenden Daten bereit, bevor der Remote-Host höflich darüber informiert wird, dass wir die Verbindung zurückgesetzt haben.
Connect(uint64_t peerNodeId)
Stellen Sie eine Verbindung zu einem Weave-Knoten mithilfe einer Fabric-IP-Adresse her, die von der angegebenen Knotenkennung abgeleitet ist.
Connect(uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
Stellen Sie mithilfe einer Knotenkennung und/oder IP-Adresse eine Verbindung zu einem Weave-Knoten her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
Stellen Sie eine Verbindung zu einem Weave-Knoten mithilfe einer Knotenkennung und/oder einer IP-Adresse auf einer bestimmten Schnittstelle her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t defaultPort)
Stellen Sie eine Verbindung zu einem Weave-Knoten mithilfe einer Knotenkennung und/oder eines Hostnamens in Form eines Strings her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
Stellen Sie mithilfe einer Knotenkennung und/oder einer String-Peer-Adresse eine Verbindung zu einem Weave-Knoten her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
Stellen Sie mithilfe einer Knotenkennung und/oder einer String-Peer-Adresse eine Verbindung zu einem Weave-Knoten her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
Stellen Sie mithilfe einer Knotenkennung und/oder einer Liste mit Hostnamen und Ports eine Verbindung zu einem Weave-Knoten her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
Stellen Sie mithilfe einer Knotenkennung und/oder einer Liste mit Hostnamen und Ports eine Verbindung zu einem Weave-Knoten her.
DisableKeepAlive(void)
DisableReceive(void)
void
Deaktiviert den Empfang über diese WeaveConnection.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
Aktiviert den Empfang über dieses WeaveConnection.
GetPeerAddressInfo(IPPacketInfo & addrInfo)
Rufen Sie die IP-Adressinformationen des Peers ab.
GetPeerDescription(char *buf, size_t bufSize) const
void
Erstellt einen String, der den Peer-Knoten beschreibt, der der Verbindung zugeordnet ist.
GetTCPEndPoint(void) const
TCPEndPoint *
IsIncoming(void) const
bool
LogId(void) const
uint16_t
Release(void)
void
Verringern Sie die Referenzanzahl für das WeaveConnection-Objekt.
ResetUserTimeout(void)
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Weave-Nachricht über eine bestehende Verbindung senden.
SendTunneledMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funktion zum Senden eines Tunneled-Pakets über eine Weave-Verbindung.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Legen Sie das Zeitlimit für die erfolgreiche Ausführung von Connect oder die Rückgabe eines Fehlers fest.
SetIdleTimeout(uint32_t timeoutMS)
Legen Sie das Zeitlimit bei Inaktivität für die zugrunde liegende Verbindung der Netzwerkschicht fest.
SetIncoming(bool val)
void
SetUserTimeout(uint32_t userTimeoutMillis)
Shutdown(void)
Führt ein ordnungsgemäßes Herunterfahren des TCP-Sendens aus und stellt sicher, dass alle ausgehenden Daten über den TCP-Stack des Peers gesendet und empfangen wurden.

Öffentliche Typen

@58

 @58
Attribute
kGetPeerDescription_MaxLength

Maximale Länge des Strings, einschließlich NUL-Zeichen, der von GetPeerDescription() zurückgegeben wird.

ConnectionClosedFunct

void(* ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

Diese Funktion ist der Anwendungs-Callback, der beim Beenden einer Verbindung aufgerufen wird.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] conErr
Der Fehler WEAVE_ERROR ist beim Trennen der Verbindung aufgetreten.

ConnectionCompleteFunct

void(* ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

Diese Funktion ist der Anwendungsrückruf, der nach Abschluss einer Verbindungseinrichtung aufgerufen wird.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] conErr
WEAVE_ERROR bei der Verbindungseinrichtung.

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

Diese Funktion ist der Anwendungsrückruf, der aufgerufen wird, wenn eine Nachricht über eine Weave-Verbindung empfangen wird.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] msgInfo
Ein Zeiger auf eine WeaveMessageInfo-Struktur, die Informationen zur Nachricht enthält.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das die Nachricht enthält.

NetworkType

 NetworkType

Der Netzwerktyp des Weave-Verbindungsobjekts.

Attribute
kNetworkType_BLE

BLE-Netzwerktyp

kNetworkType_IP

TCP/IP-Netzwerktyp.

kNetworkType_Unassigned

Nicht zugewiesener Netzwerktyp.

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err)

Diese Funktion ist der Anwendungs-Callback, der aufgerufen wird, wenn beim Empfang einer Weave-Nachricht ein Fehler auftritt.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] err
WEAVE_ERROR ist beim Empfang von Daten über die Verbindung aufgetreten.

Status

 State

Der Status des Weave-Verbindungsobjekts.

Attribute
kState_Closed

Status, wenn die Verbindung beendet wurde.

kState_Connected

Status, wenn die Verbindung hergestellt wurde.

kState_Connecting

Status des Verbindungsaufbaus.

kState_EstablishingSession

Status, wenn eine sichere Sitzung erstellt wird.

kState_ReadyToConnect

Status nach der Initialisierung der Weave-Verbindung.

kState_Resolving

Status, wenn die DNS-Namensauflösung ausgeführt wird.

kState_SendShutdown

Status, wenn die Verbindung heruntergefahren wird.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

Diese Funktion ist der Anwendungs-Callback, der nach dem Empfang eines getunnelten Datenpakets über die Weave-Verbindung aufgerufen wird.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] msgInfo
Ein Zeiger auf das WeaveMessageInfo-Objekt.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das das empfangene getunnelte Paket enthält.

Öffentliche Attribute

AppState

void * AppState

Ein Zeiger auf das anwendungsspezifische Statusobjekt.

AuthMode

WeaveAuthMode AuthMode

[READ ONLY] Der Authentifizierungsmodus, der zum Einrichten der Standardverschlüsselungsschlüssel für die Verbindung verwendet wird.

DefaultEncryptionType

uint8_t DefaultEncryptionType

Der Standardverschlüsselungstyp für Nachrichten.

DefaultKeyId

uint16_t DefaultKeyId

Der Standardverschlüsselungsschlüssel, der beim Senden von Nachrichten verwendet wird.

MessageLayer

WeaveMessageLayer * MessageLayer

[READ ONLY] Das zugehörige WeaveMessageLayer-Objekt.

NetworkType

uint8_t NetworkType

[READ ONLY] Der Netzwerktyp des zugehörigen Endpunkts.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnConnectionComplete

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

PeerAddr

IPAddress PeerAddr

[READ ONLY] Die IP-Adresse des Peer-Knotens.

PeerNodeId

uint64_t PeerNodeId

[READ ONLY] Die Knotenkennung des Peers.

PeerPort

uint16_t PeerPort

[READ ONLY] Die Portnummer des Peer-Knotens.

ReceiveEnabled

bool ReceiveEnabled

[READ ONLY] „True“, wenn der Empfang aktiviert ist, andernfalls „false“.

SendDestNodeId

bool SendDestNodeId

"True", wenn alle über diese Verbindung gesendeten Nachrichten eine explizit codierte Zielknotenkennung enthalten müssen. Andernfalls ist "false" festgelegt.

SendSourceNodeId

bool SendSourceNodeId

"True", wenn alle über diese Verbindung gesendeten Nachrichten eine explizit codierte Quellknotenkennung enthalten müssen. Andernfalls ist "false" festgelegt.

Status

uint8_t State

[READ ONLY] Der Status des WeaveConnection-Objekts.

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Führt ein nicht ordnungsgemäßes Schließen der TCP- oder BLE-basierten WeaveConnection durch und verwirft alle Daten, die möglicherweise zum oder vom Peer übertragen werden.

Ein Aufruf von Abort() beendet sofort die zugrunde liegende Verbindung. Danach kann das WeaveConnection-Objekt nicht mehr für die weitere Kommunikation verwendet werden.

Durch das Aufrufen von Abort() wird die mit dem WeaveConnection-Objekt verknüpfte Referenzanzahl verringert, unabhängig davon, ob die Verbindung zum Zeitpunkt des Methodenaufrufs offen oder aktiv ist. Wenn die Referenzanzahl dadurch null erreicht, werden die mit dem Verbindungsobjekt verknüpften Ressourcen freigegeben. In diesem Fall darf die Anwendung keine weiteren Interaktionen mit dem Objekt ausführen.

Siehe auch:
Herunterfahren(), Abort(), AddRef() und Release().

AddRef

void AddRef(
  void
)

Reservieren Sie einen Verweis auf das WeaveConnection-Objekt.

Die Methode AddRef() erhöht die Referenzanzahl, die mit dem WeaveConnection-Objekt verknüpft ist. Bei jedem Aufruf von AddRef() sendet die App einen entsprechenden Aufruf an Release(), Close() oder Abort().

Schließen

WEAVE_ERROR Close(
  void
)

Führt ein nicht blockierendes ordnungsgemäßes Schließen der TCP- oder BLE-basierten WeaveConnection durch und stellt alle verbleibenden ausgehenden Daten bereit, bevor der Remote-Host höflich darüber informiert wird, dass wir die Verbindung zurückgesetzt haben.

Diese Methode bietet keine starke Garantie, dass jede ausgehende Nachricht, die nicht auf Anwendungsprotokollebene bestätigt wurde, vom Remote-Peer empfangen wurde. Sowohl bei TCP als auch bei BLE bemüht sich der zugrunde liegende Protokollstack, alle ausstehenden ausgehenden Daten zu liefern, bevor die Verbindung zurückgesetzt wird. Bei TCP sollte Herunterfahren() vor Close() verwendet werden, wenn vor dem Beenden der Verbindung eine Bestätigung des Empfangs der Transport Layer-Nachricht erforderlich ist. BLE-Verbindungen bieten keine Entsprechung für Herunterfahren().

Bei BLE-basierten Verbindungen schließt Close() die WeaveConnection und wird sofort zurückgegeben. Das zugrunde liegende BLEEndPoint-Objekt bleibt jedoch so lange bestehen, bis alle ausgehenden Daten gesendet wurden. Dies ist ein Nebeneffekt der Implementierung des Weave-over-BLE-Transportprotokolls in der Weave BleLayer.

Nach dem Aufruf von Close() kann das WeaveConnection-Objekt nicht mehr für die weitere Kommunikation verwendet werden.

Durch das Aufrufen von Close() wird die mit dem WeaveConnection-Objekt verknüpfte Referenzanzahl verringert, unabhängig davon, ob die Verbindung zum Zeitpunkt des Methodenaufrufs offen oder aktiv ist. Wenn die Referenzanzahl dadurch null erreicht, werden die mit dem Verbindungsobjekt verknüpften Ressourcen freigegeben. In diesem Fall darf die Anwendung keine weiteren Interaktionen mit dem Objekt ausführen.

Details
Rückgabe
WEAVE_NO_ERROR unbedingt.
Siehe auch:
Herunterfahren(), Abort(), AddRef() und Release().

Schließen

WEAVE_ERROR Close(
  bool suppressCloseLog
)

Führt ein nicht blockierendes ordnungsgemäßes Schließen der TCP- oder BLE-basierten WeaveConnection durch und stellt alle verbleibenden ausgehenden Daten bereit, bevor der Remote-Host höflich darüber informiert wird, dass wir die Verbindung zurückgesetzt haben.

Diese Methode bietet keine starke Garantie, dass jede ausgehende Nachricht, die nicht auf Anwendungsprotokollebene bestätigt wurde, vom Remote-Peer empfangen wurde. Sowohl bei TCP als auch bei BLE bemüht sich der zugrunde liegende Protokollstack, alle ausstehenden ausgehenden Daten zu liefern, bevor die Verbindung zurückgesetzt wird. Bei TCP sollte Herunterfahren() vor Close() verwendet werden, wenn vor dem Beenden der Verbindung eine Bestätigung des Empfangs der Transport Layer-Nachricht erforderlich ist. BLE-Verbindungen bieten keine Entsprechung für Herunterfahren().

Bei BLE-basierten Verbindungen schließt Close() die WeaveConnection und wird sofort zurückgegeben. Das zugrunde liegende BLEEndPoint-Objekt bleibt jedoch so lange bestehen, bis alle ausgehenden Daten gesendet wurden. Dies ist ein Nebeneffekt der Implementierung des Weave-over-BLE-Transportprotokolls in der Weave BleLayer.

Nach dem Aufruf von Close() kann das WeaveConnection-Objekt nicht mehr für die weitere Kommunikation verwendet werden.

Durch das Aufrufen von Close() wird die mit dem WeaveConnection-Objekt verknüpfte Referenzanzahl verringert, unabhängig davon, ob die Verbindung zum Zeitpunkt des Methodenaufrufs offen oder aktiv ist. Wenn die Referenzanzahl dadurch null erreicht, werden die mit dem Verbindungsobjekt verknüpften Ressourcen freigegeben. In diesem Fall darf die Anwendung keine weiteren Interaktionen mit dem Objekt ausführen.

Details
Parameter
[in] suppressCloseLog
„true“, wenn Logs unterdrückt werden müssen, andernfalls „false“.
Rückgabe
WEAVE_NO_ERROR unbedingt.
Siehe auch:
Herunterfahren(), Abort(), AddRef() und Release().

Verbinden

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

Stellen Sie eine Verbindung zu einem Weave-Knoten mithilfe einer Fabric-IP-Adresse her, die von der angegebenen Knotenkennung abgeleitet ist.

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der WeaveConnection-Status ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
wenn der angeforderte Authentifizierungsmodus nicht unterstützt wird.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht aus der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die von den TCPEndPoint-Verbindungsvorgängen generiert werden.

Verbinden

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort
)

Stellen Sie mithilfe einer Knotenkennung und/oder IP-Adresse eine Verbindung zu einem Weave-Knoten her.

Details
Parameter
[in] peerNodeId
Knoten-ID des Peers: kNodeIdNotSpecific oder 0, falls diese nicht bekannt ist.
[in] peerAddr
Die IP-Adresse des Peers, IPAddress::Any, falls diese nicht bekannt ist.
[in] peerPort
Der optionale Port des Peers, standardmäßig WEAVE_PORT.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der WeaveConnection-Status ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
wenn der angeforderte Authentifizierungsmodus nicht unterstützt wird.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht aus der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die von den TCPEndPoint-Verbindungsvorgängen generiert werden.

Verbinden

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  InterfaceId intf
)

Stellen Sie eine Verbindung zu einem Weave-Knoten mithilfe einer Knotenkennung und/oder einer IP-Adresse auf einer bestimmten Schnittstelle her.

Details
Parameter
[in] peerNodeId
Knoten-ID des Peers: kNodeIdNotSpecific oder 0, falls diese nicht bekannt ist.
[in] authMode
Der gewünschte Authentifizierungsmodus für den Peer. Nur die Modi CASE, PASE und nicht authentifiziert werden unterstützt.
[in] peerAddr
Die IP-Adresse des Peers, IPAddress::Any, falls diese nicht bekannt ist.
[in] peerPort
Der optionale Port des Peers, standardmäßig WEAVE_PORT.
[in] intf
Die optionale Schnittstelle zum Herstellen einer Verbindung zum Peer-Knoten. Der Standardwert ist INET_NULL_INTERFACEID.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der WeaveConnection-Status ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
wenn der angeforderte Authentifizierungsmodus nicht unterstützt wird.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht aus der Knotenkennung abgeleitet werden.
other
Inet-Layer-Fehler, die von den TCPEndPoint-Verbindungsvorgängen generiert werden.

Verbinden

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t defaultPort
)

Stellen Sie eine Verbindung zu einem Weave-Knoten mithilfe einer Knotenkennung und/oder eines Hostnamens in Form eines Strings her.

Bei Angabe kann „PeerAddr“ einen der folgenden Werte haben:


:

:

[]:

Details
Parameter
[in] peerNodeId
Knoten-ID des Peers: kNodeIdNotSpecific oder 0, falls diese nicht bekannt ist.
[in] authMode
Der gewünschte Authentifizierungsmodus für den Peer. Nur die Modi CASE, PASE und nicht authentifiziert werden unterstützt.
[in] peerAddr
Die Adresse oder der Hostname des Peers als NULL-terminierter C-String.
[in] defaultPort
Der optionale Standardport, der für die Verbindung verwendet werden soll, wenn er nicht im String „PeerAddr“ angegeben ist.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der WeaveConnection-Status ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
wenn der angeforderte Authentifizierungsmodus nicht unterstützt wird.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht aus der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die von den TCPEndPoint-Verbindungsvorgängen generiert werden.

Verbinden

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint16_t defaultPort
)

Stellen Sie mithilfe einer Knotenkennung und/oder einer String-Peer-Adresse eine Verbindung zu einem Weave-Knoten her.

Bei Angabe kann „PeerAddr“ einen der folgenden Werte haben:


:

:

[]:

Details
Parameter
[in] peerNodeId
Knoten-ID des Peers: kNodeIdNotSpecific oder 0, falls diese nicht bekannt ist.
[in] authMode
Der gewünschte Authentifizierungsmodus für den Peer. Nur die Modi CASE, PASE und nicht authentifiziert werden unterstützt.
[in] peerAddr
Die Adresse oder der Hostname des Peers als nicht NULL-terminierter C-String.
[in] peerAddrLen
Die Länge des PeerAddr-Strings.
[in] defaultPort
Der optionale Standardport, der für die Verbindung verwendet werden soll, wenn er nicht im String „PeerAddr“ angegeben ist.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der WeaveConnection-Status ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
wenn der angeforderte Authentifizierungsmodus nicht unterstützt wird.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht aus der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die von den TCPEndPoint-Verbindungsvorgängen generiert werden.

Verbinden

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint8_t dnsOptions,
  uint16_t defaultPort
)

Stellen Sie mithilfe einer Knotenkennung und/oder einer String-Peer-Adresse eine Verbindung zu einem Weave-Knoten her.

Bei Angabe kann „PeerAddr“ einen der folgenden Werte haben:


:

:

[]:

Details
Parameter
[in] peerNodeId
Knoten-ID des Peers: kNodeIdNotSpecific oder 0, falls diese nicht bekannt ist.
[in] authMode
Der gewünschte Authentifizierungsmodus für den Peer. Nur die Modi CASE, PASE und nicht authentifiziert werden unterstützt.
[in] peerAddr
Die Adresse oder der Hostname des Peers als nicht NULL-terminierter C-String.
[in] peerAddrLen
Die Länge des PeerAddr-Strings.
[in] dnsOptions
Ein ganzzahliger Wert, der steuert, wie die Auflösung von Hostnamen durchgeführt wird. Der Wert sollte das ODER eines oder mehrerer Werte aus der Aufzählung #::nl::Inet::DNSOptions sein.
[in] defaultPort
Der optionale Standardport, der für die Verbindung verwendet werden soll, wenn er nicht im String „PeerAddr“ angegeben ist.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der WeaveConnection-Status ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
wenn der angeforderte Authentifizierungsmodus nicht unterstützt wird.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht aus der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die von den TCPEndPoint-Verbindungsvorgängen generiert werden.

Verbinden

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  InterfaceId intf
)

Stellen Sie mithilfe einer Knotenkennung und/oder einer Liste mit Hostnamen und Ports eine Verbindung zu einem Weave-Knoten her.

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers.
[in] authMode
Der für die Verbindung verwendete Authentifizierungsmodus.
[in] hostPortList
Die Liste der Hostnamen und Ports.
[in] intf
Die optionale Schnittstelle zum Herstellen einer Verbindung zum Peer-Knoten. Der Standardwert ist INET_NULL_INTERFACEID.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der WeaveConnection-Status ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
wenn der angeforderte Authentifizierungsmodus nicht unterstützt wird.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht aus der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die von den TCPEndPoint-Verbindungsvorgängen generiert werden.

Verbinden

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  uint8_t dnsOptions,
  InterfaceId intf
)

Stellen Sie mithilfe einer Knotenkennung und/oder einer Liste mit Hostnamen und Ports eine Verbindung zu einem Weave-Knoten her.

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers.
[in] authMode
Der für die Verbindung verwendete Authentifizierungsmodus.
[in] hostPortList
Die Liste der Hostnamen und Ports.
[in] dnsOptions
Ein ganzzahliger Wert, der steuert, wie die Auflösung von Hostnamen durchgeführt wird. Der Wert sollte das ODER eines oder mehrerer Werte aus der Aufzählung #::nl::Inet::DNSOptions sein.
[in] intf
Die optionale Schnittstelle zum Herstellen einer Verbindung zum Peer-Knoten. Der Standardwert ist INET_NULL_INTERFACEID.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der WeaveConnection-Status ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
wenn der angeforderte Authentifizierungsmodus nicht unterstützt wird.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht aus der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die von den TCPEndPoint-Verbindungsvorgängen generiert werden.

DisableKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive übergeben.

Deaktivieren Sie TCP-Keepalive-Prüfungen für die zugrunde liegende TCP-Verbindung.

Hinweis:Diese Methode kann nur bei einer Weave-Verbindung aufgerufen werden, die über eine TCP-Verbindung unterstützt wird. Diese Methode kann nur aufgerufen werden, wenn die Verbindung sich in einem Status befindet, der das Senden zulässt.

Diese Methode bewirkt nichts, wenn für die Verbindung keine Keepalives aktiviert sind.

Details
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Deaktivierung von TCP-Keepalive-Prüfungen für die Verbindung.
WEAVE_ERROR_NOT_IMPLEMENTED
wenn diese Funktion für einen inkompatiblen Endpunkt (z.B. BLE) in der Netzwerkschicht.
WEAVE_ERROR_INCORRECT_STATE
Das WeaveConnection-Objekt hat nicht den richtigen Status zum Senden von Nachrichten.
other
Inet-Layer-Fehler im Zusammenhang mit dem TCP-Endpunkt ermöglichen den Keepalive-Vorgang.

DisableReceive

void DisableReceive(
  void
)

Deaktiviert den Empfang über diese WeaveConnection.

Diese Methode wird von der Anwendung verwendet, um anzugeben, dass sie nicht bereit ist, empfangene Daten über die TCP-Verbindung zu empfangen. Um den Empfang wieder zu aktivieren, muss die Anwendung EnableReceive() aufrufen, damit WeaveConnection alle empfangenen Daten durch Aufrufen der entsprechenden Callbacks weitergeben kann.

Weitere Informationen:
EnableReceive()

EnableKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive.

Aktivieren Sie TCP-Keepalive-Prüfungen für die zugrunde liegende TCP-Verbindung.

Hinweis:Diese Methode kann nur bei einer Weave-Verbindung aufgerufen werden, die über eine TCP-Verbindung unterstützt wird. - Diese Methode kann nur aufgerufen werden, wenn die Verbindung sich in einem Zustand befindet, der das Senden zulässt.

Details
Parameter
[in] interval
Das Intervall (in Sekunden) zwischen Keepalive-Prüfungen. Dieser Wert steuert auch die Zeit zwischen dem letzten gesendeten Datenpaket und der Übertragung der ersten Keepalive-Prüfung.
[in] timeoutCount
Die maximale Anzahl nicht bestätigter Prüfungen, bevor die Verbindung als fehlgeschlagen gilt.

– Diese Methode kann mehrmals aufgerufen werden, um das Keepalive-Intervall oder die Anzahl der Zeitüberschreitungen anzupassen.

Details
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Aktivierung von TCP-Keepalive-Prüfungen für die Verbindung.
WEAVE_ERROR_NOT_IMPLEMENTED
wenn diese Funktion für einen inkompatiblen Endpunkt (z.B. BLE) in der Netzwerkschicht.
WEAVE_ERROR_INCORRECT_STATE
Das WeaveConnection-Objekt hat nicht den richtigen Status zum Senden von Nachrichten.
other
Inet-Layer-Fehler im Zusammenhang mit dem TCP-Endpunkt ermöglichen den Keepalive-Vorgang.

EnableReceive

void EnableReceive(
  void
)

Aktiviert den Empfang über dieses WeaveConnection.

Diese Methode wird von der Anwendung verwendet, um dem WeaveConnection-Objekt mitzuteilen, dass es bereit ist, alle Daten zu empfangen, die über die TCP-Verbindung eingehen.

Weitere Informationen:
DisableReceive()

GetPeerAddressInfo

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

Rufen Sie die IP-Adressinformationen des Peers ab.

Details
Parameter
[out] addrInfo
Ein Verweis auf das IPPacketInfo-Objekt.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
WEAVE_ERROR_NOT_IMPLEMENTED
Wenn diese Funktion für einen inkompatiblen Endpunkt (z.B. BLE) in der Netzwerkschicht.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize
) const 

Erstellt einen String, der den Peer-Knoten beschreibt, der der Verbindung zugeordnet ist.

Details
Parameter
[in] buf
Ein Zeiger auf einen Puffer, in den die Zeichenfolge geschrieben werden soll. Der bereitgestellte Puffer sollte mindestens so groß sein wie kGetPeerDescription_MaxLength. Bei einem kleineren Puffer wird die Zeichenfolge entsprechend gekürzt. Die Ausgabe enthält in allen Fällen ein NUL-Beendigungszeichen.
[in] bufSize
Die Größe des Puffers, auf den durch "buf" gezeigt wird.

GetTCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

IsIncoming

bool IsIncoming(
  void
) const 

LogId

uint16_t LogId(
  void
) const 

Release

void Release(
  void
)

Verringern Sie die Referenzanzahl für das WeaveConnection-Objekt.

Die Release()-Methode verringert die Anzahl der Referenzwerte, die mit dem WeaveConnection-Objekt verknüpft sind. Wenn die Referenzanzahl dadurch null erreicht, wird die Verbindung geschlossen und das Verbindungsobjekt freigegeben. In diesem Fall darf die Anwendung keine weiteren Interaktionen mit dem Objekt ausführen.

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout.

Setzen Sie die Socket-Option für das TCP-Zeitlimit des Nutzers auf den Systemstandard zurück.

Hinweis:Diese Methode kann nur bei einer Weave-Verbindung aufgerufen werden, die über eine TCP-Verbindung unterstützt wird. - Diese Methode kann nur aufgerufen werden, wenn die Verbindung sich in einem Zustand befindet, der das Senden zulässt.

- Diese Methode hat keine Auswirkungen, wenn für die Verbindung kein Nutzerzeitlimit festgelegt wurde.

Details
Rückgabewerte
WEAVE_NO_ERROR
beim erfolgreichen Zurücksetzen des TCP-Nutzerzeitlimits für die Verbindung.
WEAVE_ERROR_NOT_IMPLEMENTED
wenn diese Funktion für einen inkompatiblen Endpunkt (z.B. BLE) in der Netzwerkschicht.
WEAVE_ERROR_INCORRECT_STATE
Das WeaveConnection-Objekt hat nicht den richtigen Status zum Senden von Nachrichten.
other
Inet-Layer-Fehler im Zusammenhang mit dem Zurücksetzen des TCP-Nutzerzeitlimits durch den TCP-Endpunkt.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Weave-Nachricht über eine bestehende Verbindung senden.

Details
Parameter
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das das zu sendende Paket enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
WEAVE_ERROR_INCORRECT_STATE
Das WeaveConnection-Objekt hat nicht den richtigen Status zum Senden von Nachrichten.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
Die Kennung des Zielknotens ist nicht angegeben.
WEAVE_ERROR_SENDING_BLOCKED
wenn die Nachricht zu lang zum Senden ist.
other
Inet-Layer-Fehler im Zusammenhang mit den spezifischen Sendevorgängen am Endpunkt.

SendTunneledMessage

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Funktion zum Senden eines Tunneled-Pakets über eine Weave-Verbindung.

Sende eine getunnelte Weave-Nachricht über eine bestehende Verbindung.

Details
Parameter
[in] msgInfo
Ein Zeiger auf ein WeaveMessageInfo-Objekt.
[in] msgBuf
Ein Zeiger auf das PacketBuffer-Objekt, das das zu sendende Paket enthält.
Rückgabewerte
WEAVE_NO_ERROR
die Nachricht erfolgreich an die Netzwerkschicht zu senden.
WEAVE_ERROR_INCORRECT_STATE
Das WeaveConnection-Objekt hat nicht den richtigen Status zum Senden von Nachrichten.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
Die Kennung des Zielknotens ist nicht angegeben.
WEAVE_ERROR_SENDING_BLOCKED
wenn die Nachricht zu lang zum Senden ist.
other
Inet-Layer-Fehler im Zusammenhang mit den spezifischen Sendevorgängen am Endpunkt.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Legen Sie das Zeitlimit für die erfolgreiche Ausführung von Connect oder die Rückgabe eines Fehlers fest.

Details
Parameter
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

Legen Sie das Zeitlimit bei Inaktivität für die zugrunde liegende Verbindung der Netzwerkschicht fest.

Details
Parameter
[in] timeoutMS
das Timeout in Millisekunden.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Festlegung des Zeitlimits bei Inaktivität für die Verbindung.
WEAVE_ERROR_INCORRECT_STATE
Das WeaveConnection-Objekt hat nicht den richtigen Status für den Empfang von Nachrichten.

SetIncoming

void SetIncoming(
  bool val
)

SetUserTimeout

WEAVE_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

WeaveConnection::SetUserTimeout.

Legt die Socket-Option für das TCP-Zeitlimit des Nutzers fest.

Wenn der Wert größer als 0 ist, gibt er die maximale Zeitspanne in Millisekunden an, für die übertragene Daten unbestätigt bleiben können, bevor TCP die entsprechende Verbindung zwingt. Wenn der Optionswert mit 0 angegeben ist, verwendet TCP den Systemstandard. Weitere Informationen finden Sie unter RFC 5482.

Details
Parameter
[in] userTimeoutMillis
Tcp-Wert für Nutzerzeitlimit in Millisekunden.

Hinweis:Diese Methode kann nur bei einer Weave-Verbindung aufgerufen werden, die über eine TCP-Verbindung unterstützt wird. - Diese Methode kann nur aufgerufen werden, wenn die Verbindung sich in einem Zustand befindet, der das Senden zulässt.

– Diese Methode kann mehrmals aufgerufen werden, um das TCP-Nutzerzeitlimit anzupassen.

Details
Rückgabewerte
WEAVE_NO_ERROR
wenn das TCP-Zeitlimit für Nutzer für die Verbindung erfolgreich festgelegt wurde.
WEAVE_ERROR_NOT_IMPLEMENTED
wenn diese Funktion für einen inkompatiblen Endpunkt (z.B. BLE) in der Netzwerkschicht.
WEAVE_ERROR_INCORRECT_STATE
Das WeaveConnection-Objekt hat nicht den richtigen Status zum Senden von Nachrichten.
other
Inet-Layer-Fehler im Zusammenhang mit der TCP-Endpunkteinstellung des TCP-Nutzerzeitlimits.

Herunterfahren

WEAVE_ERROR Shutdown(
  void
)

Führt ein ordnungsgemäßes Herunterfahren des TCP-Sendens aus und stellt sicher, dass alle ausgehenden Daten über den TCP-Stack des Peers gesendet und empfangen wurden.

Bei den meisten (aber nicht allen) TCP-Implementierungen führt der Erhalt eines Sende-Herunterfahrens dazu, dass der Remote-Host auch seine Seite der Verbindung herunterfährt, was dazu führt, dass die Verbindung unterbrochen wird. Ein nachfolgender Aufruf von Close() würde WeaveConnection beenden.

Details
Rückgabewerte
WEAVE_NO_ERROR
nach erfolgreichem Beenden der TCP-Verbindung.
WEAVE_ERROR_NOT_IMPLEMENTED
wenn diese Funktion für einen inkompatiblen Endpunkt (z.B. BLE) in der Netzwerkschicht.
WEAVE_ERROR_INCORRECT_STATE
wenn das WeaveConnection-Objekt vor dem Herunterfahren nicht den richtigen Status hat.
other
Inet-Layer-Fehler im Zusammenhang mit den spezifischen Beendigungsvorgängen des Endpunkts.
Siehe auch:
Close() und Abort().