nl::Weave::WeaveConnection

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

Die Definition der Weave-Connection-Klasse.

Zusammenfassung

Er stellt eine TCP- oder BLE-Verbindung zu einem anderen Weave-Knoten dar.

Ö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 Trennen einer Verbindung aufgerufen wird.
ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef.
void(*
Diese Funktion ist der Anwendungs-Callback, der nach Abschluss der Verbindungseinrichtung aufgerufen wird.
MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef.
void(*
Diese Funktion ist der Anwendungs-Callback, 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 Empfangen 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 beim Empfang eines Tunneling-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 verknüpften Endpunkts.
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[READ ONLY] Die IP-Adresse des Peer-Knotens.
PeerNodeId
uint64_t
[READ ONLY] Die Knoten-ID 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 "False".
SendSourceNodeId
bool
"True", wenn alle über diese Verbindung gesendeten Nachrichten eine explizit codierte Kennung des Quellknotens enthalten müssen, andernfalls "False".
State
uint8_t
[READ ONLY] Der Status des Objekts WeaveConnection.

Öffentliche Funktionen

Abort(void)
void
Führt einen nicht ordnungsgemäßen Abschluss der TCP- oder BLE-basierten WeaveConnection durch, wobei alle Daten verworfen werden, 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, wobei alle verbleibenden ausgehenden Daten übermittelt werden, bevor der Remote-Host höflich darüber informiert wird, dass die Verbindung zurückgesetzt wurde.
Close(bool suppressCloseLog)
Führt ein nicht blockierendes ordnungsgemäßes Schließen der TCP- oder BLE-basierten WeaveConnection durch, wobei alle verbleibenden ausgehenden Daten übermittelt werden, bevor der Remote-Host höflich darüber informiert wird, dass die Verbindung zurückgesetzt wurde.
Connect(uint64_t peerNodeId)
Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Fabric-IP-Adresse her, die von der angegebenen Knotenkennung abgeleitet ist.
Connect(uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine IP-Adresse her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knotenkennung und/oder eine 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 über eine Knotenkennung und/oder einen String-Hostnamen her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine String-Peer-Adresse her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine String-Peer-Adresse her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine Liste mit Hostnamen und Ports her.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine Liste mit Hostnamen und Ports her.
DisableKeepAlive(void)
DisableReceive(void)
void
Deaktivieren Sie den Empfang über diese WeaveConnection.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
Aktiviert den Empfang über diese 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)
Sende eine Weave-Nachricht über eine bestehende Verbindung.
SendTunneledMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funktion zum Senden eines Tunneling-Pakets über eine Weave-Verbindung.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Legen Sie ein Zeitlimit fest, damit Connect erfolgreich ist oder einen Fehler zurückgibt.
SetIdleTimeout(uint32_t timeoutMS)
Legen Sie das Zeitlimit bei Inaktivität für die zugrunde liegende Netzwerkschichtverbindung fest.
SetIncoming(bool val)
void
SetUserTimeout(uint32_t userTimeoutMillis)
Shutdown(void)
Führt ein ordnungsgemäßes TCP-Herunterfahren durch, um sicherzustellen, dass alle ausgehenden Daten vom TCP-Stack des Peers gesendet und empfangen wurden.

Öffentliche Typen

@58

 @58
Attribute
kGetPeerDescription_MaxLength

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

ConnectionClosedFunct

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

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

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] conErr
Der Fehler WEAVE_ERROR ist aufgetreten, als die Verbindung unterbrochen wurde.

ConnectionCompleteFunct

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

Diese Funktion ist der Anwendungs-Callback, der nach Abschluss der Verbindungseinrichtung aufgerufen wird.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] conErr
Der Fehler "WEAVE_ERROR" wurde beim Einrichten der Verbindung festgestellt.

MessageReceiveFunct

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

Diese Funktion ist der Anwendungs-Callback, 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 Verweis 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 Empfangen einer Weave-Nachricht ein Fehler auftritt.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] err
Der Fehler 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 getrennt wurde.

kState_Connected

Status, wenn die Verbindung hergestellt wurde.

kState_Connecting

Status, wenn eine Verbindung hergestellt wird.

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 unterbrochen wird.

TunneledMsgReceiveFunct

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

Diese Funktion ist der Anwendungs-Callback, der beim Empfang eines Tunneling-Datenpakets über die Weave-Verbindung aufgerufen wird.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt.
[in] msgInfo
Ein Zeiger auf das Objekt WeaveMessageInfo.
[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 verknüpften 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 Knoten-ID 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 "False".

SendSourceNodeId

bool SendSourceNodeId

"True", wenn alle über diese Verbindung gesendeten Nachrichten eine explizit codierte Kennung des Quellknotens enthalten müssen, andernfalls "False".

Status

uint8_t State

[READ ONLY] Der Status des Objekts WeaveConnection.

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Führt einen nicht ordnungsgemäßen Abschluss der TCP- oder BLE-basierten WeaveConnection durch, wobei alle Daten verworfen werden, die möglicherweise zum oder vom Peer übertragen werden.

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

Durch den Aufruf von Abort() wird die mit dem Objekt WeaveConnection verknüpfte Referenzzahl verringert, unabhängig davon, ob die Verbindung zum Zeitpunkt des Methodenaufrufs offen/aktiv ist. Wenn die Referenzanzahl dadurch null erreicht, werden die mit dem Verbindungsobjekt verbundenen Ressourcen freigegeben. In diesem Fall darf die Anwendung keine weiteren Interaktionen mit dem Objekt vornehmen.

Siehe auch:
Shutdown(), 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 Objekt WeaveConnection verknüpft ist. Die Anwendung führt bei jedem Aufruf von AddRef() einen entsprechenden Aufruf an Release(), Close() oder Abort() aus.

Schließen

WEAVE_ERROR Close(
  void
)

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

Diese Methode bietet keine Garantie dafür, dass ausgehende Nachrichten, die nicht auf Anwendungsprotokollebene bestätigt wurden, vom Remote-Peer empfangen wurden. Sowohl für TCP als auch BLE versucht der zugrunde liegende Protokollstack, ausstehende ausgehende Daten bestmöglich zuzustellen, bevor die Verbindung zurückgesetzt wird. Bei TCP sollte Shutdown() vor Close() verwendet werden, wenn vor dem Schließen der Verbindung der Empfang einer Nachricht auf Transportebene bestätigt werden muss. BLE-Verbindungen bieten kein Shutdown()-Äquivalent.

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

Sobald Close() aufgerufen wurde, kann das WeaveConnection-Objekt nicht mehr für die weitere Kommunikation verwendet werden.

Durch den Aufruf von Close() wird die mit dem Objekt WeaveConnection verknüpfte Referenzzahl verringert, unabhängig davon, ob die Verbindung zum Zeitpunkt des Methodenaufrufs offen/aktiv ist. Wenn die Referenzanzahl dadurch null erreicht, werden die mit dem Verbindungsobjekt verbundenen Ressourcen freigegeben. In diesem Fall darf die Anwendung keine weiteren Interaktionen mit dem Objekt vornehmen.

Details
Rückgabe
WEAVE_NO_ERROR ohne Bedingungen.
Siehe auch:
Shutdown(), 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, wobei alle verbleibenden ausgehenden Daten übermittelt werden, bevor der Remote-Host höflich darüber informiert wird, dass die Verbindung zurückgesetzt wurde.

Diese Methode bietet keine Garantie dafür, dass ausgehende Nachrichten, die nicht auf Anwendungsprotokollebene bestätigt wurden, vom Remote-Peer empfangen wurden. Sowohl für TCP als auch BLE versucht der zugrunde liegende Protokollstack, ausstehende ausgehende Daten bestmöglich zuzustellen, bevor die Verbindung zurückgesetzt wird. Bei TCP sollte Shutdown() vor Close() verwendet werden, wenn vor dem Schließen der Verbindung der Empfang einer Nachricht auf Transportebene bestätigt werden muss. BLE-Verbindungen bieten kein Shutdown()-Äquivalent.

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

Sobald Close() aufgerufen wurde, kann das WeaveConnection-Objekt nicht mehr für die weitere Kommunikation verwendet werden.

Durch den Aufruf von Close() wird die mit dem Objekt WeaveConnection verknüpfte Referenzzahl verringert, unabhängig davon, ob die Verbindung zum Zeitpunkt des Methodenaufrufs offen/aktiv ist. Wenn die Referenzanzahl dadurch null erreicht, werden die mit dem Verbindungsobjekt verbundenen Ressourcen freigegeben. In diesem Fall darf die Anwendung keine weiteren Interaktionen mit dem Objekt vornehmen.

Details
Parameter
[in] suppressCloseLog
"true", wenn Logs unterdrückt werden müssen, andernfalls "false".
Rückgabe
WEAVE_NO_ERROR ohne Bedingungen.
Siehe auch:
Shutdown(), Abort(), AddRef() und Release().

Connect

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

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

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

Connect

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

Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine IP-Adresse her.

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers, kNodeIdNotRequested 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 Status von WeaveConnection ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
Der angeforderte Authentifizierungsmodus wird nicht unterstützt.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht von der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die durch die TCPEndPoint-Verbindungsvorgänge generiert werden.

Connect

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

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

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers, kNodeIdNotRequested oder 0, falls diese nicht bekannt ist.
[in] authMode
Der gewünschte Authentifizierungsmodus für den Peer. Es werden nur die Modi „CASE“, „PASE“ und „Nicht authentifiziert“ 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. Sie ist standardmäßig auf INET_NULL_INTERFACEID festgelegt.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der Status von WeaveConnection ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
Der angeforderte Authentifizierungsmodus wird nicht unterstützt.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht von der Knotenkennung abgeleitet werden.
other
Inet-Layer-Fehler, die durch die TCPEndPoint-Verbindungsvorgänge generiert werden.

Connect

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

Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knotenkennung und/oder einen String-Hostnamen her.

Wenn angegeben, kann PeeringAddr einen der folgenden Werte haben:


:

:

[]:

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers, kNodeIdNotRequested oder 0, falls diese nicht bekannt ist.
[in] authMode
Der gewünschte Authentifizierungsmodus für den Peer. Es werden nur die Modi „CASE“, „PASE“ und „Nicht authentifiziert“ 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 Status von WeaveConnection ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
Der angeforderte Authentifizierungsmodus wird nicht unterstützt.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht von der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die durch die TCPEndPoint-Verbindungsvorgänge generiert werden.

Connect

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

Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine String-Peer-Adresse her.

Wenn angegeben, kann PeeringAddr einen der folgenden Werte haben:


:

:

[]:

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers, kNodeIdNotRequested oder 0, falls diese nicht bekannt ist.
[in] authMode
Der gewünschte Authentifizierungsmodus für den Peer. Es werden nur die Modi „CASE“, „PASE“ und „Nicht authentifiziert“ unterstützt.
[in] peerAddr
Die Adresse oder der Hostname des Peers als nicht NULL-terminierter C-String.
[in] peerAddrLen
Die Länge des Peering-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 Status von WeaveConnection ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
Der angeforderte Authentifizierungsmodus wird nicht unterstützt.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht von der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die durch die TCPEndPoint-Verbindungsvorgänge generiert werden.

Connect

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

Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine String-Peer-Adresse her.

Wenn angegeben, kann PeeringAddr einen der folgenden Werte haben:


:

:

[]:

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers, kNodeIdNotRequested oder 0, falls diese nicht bekannt ist.
[in] authMode
Der gewünschte Authentifizierungsmodus für den Peer. Es werden nur die Modi „CASE“, „PASE“ und „Nicht authentifiziert“ unterstützt.
[in] peerAddr
Die Adresse oder der Hostname des Peers als nicht NULL-terminierter C-String.
[in] peerAddrLen
Die Länge des Peering-Strings.
[in] dnsOptions
Ein Ganzzahlwert, der steuert, wie die Auflösung des Hostnamens 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 Status von WeaveConnection ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
Der angeforderte Authentifizierungsmodus wird nicht unterstützt.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht von der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die durch die TCPEndPoint-Verbindungsvorgänge generiert werden.

Connect

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

Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine Liste mit Hostnamen und Ports her.

Details
Parameter
[in] peerNodeId
Die Knotenkennung 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. Sie ist standardmäßig auf INET_NULL_INTERFACEID festgelegt.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der Status von WeaveConnection ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
Der angeforderte Authentifizierungsmodus wird nicht unterstützt.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht von der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die durch die TCPEndPoint-Verbindungsvorgänge generiert werden.

Connect

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

Stellen Sie eine Verbindung zu einem Weave-Knoten über eine Knoten-ID und/oder eine Liste mit Hostnamen und Ports her.

Details
Parameter
[in] peerNodeId
Die Knotenkennung des Peers.
[in] authMode
Der für die Verbindung verwendete Authentifizierungsmodus.
[in] hostPortList
Die Liste der Hostnamen und Ports.
[in] dnsOptions
Ein Ganzzahlwert, der steuert, wie die Auflösung des Hostnamens 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. Sie ist standardmäßig auf INET_NULL_INTERFACEID festgelegt.
Rückgabewerte
WEAVE_NO_ERROR
bei erfolgreicher Initiierung der Verbindung zum Peer.
WEAVE_ERROR_INCORRECT_STATE
Der Status von WeaveConnection ist falsch.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
Der angeforderte Authentifizierungsmodus wird nicht unterstützt.
WEAVE_ERROR_INVALID_ADDRESS
Die Zieladresse kann nicht von der Knoten-ID abgeleitet werden.
other
Inet-Layer-Fehler, die durch die TCPEndPoint-Verbindungsvorgänge generiert werden.

DisableKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive.

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

Hinweis:Diese Methode kann nur für eine Weave-Verbindung aufgerufen werden, die von einer TCP-Verbindung unterstützt wird. Diese Methode kann nur aufgerufen werden, wenn sich die Verbindung in einem Status befindet, der das Senden ermöglicht.

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

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 Objekt WeaveConnection 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
)

Deaktivieren Sie den Empfang über diese WeaveConnection.

Diese Methode wird von der Anwendung verwendet, um anzuzeigen, dass sie nicht bereit ist, eingehende Daten über die TCP-Verbindung zu empfangen. Um den Empfang wieder zu aktivieren, muss die Anwendung EnableReceive() aufrufen, damit WeaveConnection empfangene Daten durch Aufrufen der entsprechenden Rückrufe übergeben 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 für eine Weave-Verbindung aufgerufen werden, die von einer TCP-Verbindung unterstützt wird. – Diese Methode kann nur aufgerufen werden, wenn sich die Verbindung in einem Status befindet, der das Senden ermöglicht.

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

- Diese Methode kann mehrmals aufgerufen werden, um das Keepalive-Intervall oder die Timeout-Anzahl anzupassen.

Details
Rückgabewerte
WEAVE_NO_ERROR
nach 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 Objekt WeaveConnection 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 diese WeaveConnection.

Diese Methode wird von der Anwendung verwendet, um dem WeaveConnection-Objekt mitzuteilen, dass es zum Empfangen von Daten bereit ist, 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. Wenn ein kleinerer Puffer angegeben wird, wird die Zeichenfolge abgeschnitten. Die Ausgabe enthält in allen Fällen ein NUL-Beendigungszeichen.
[in] bufSize
Die Größe des Zwischenspeichers, auf den der Puffer verweist.

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 Referenzanzahl, die mit dem WeaveConnection-Objekt verknüpft ist. 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 vornehmen.

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout zurücksetzen.

Socket-Option für TCP-Nutzerzeitlimit auf die Standardeinstellung des Systems zurücksetzen.

Hinweis:Diese Methode kann nur für eine Weave-Verbindung aufgerufen werden, die von einer TCP-Verbindung unterstützt wird. – Diese Methode kann nur aufgerufen werden, wenn sich die Verbindung in einem Status befindet, der das Senden ermöglicht.

- Diese Methode bewirkt nichts, wenn für die Verbindung kein Nutzer-Timeout festgelegt wurde.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei erfolgreichem Zurücksetzen der TCP-Nutzerzeitüberschreitung 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 Objekt WeaveConnection hat nicht den richtigen Status zum Senden von Nachrichten.
other
Inet-Layer-Fehler im Zusammenhang mit dem Zurücksetzen des TCP-Nutzerzeitlimits an den TCP-Endpunkt.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Sende eine 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
nachdem die Nachricht erfolgreich an die Netzwerkschicht gesendet wurde.
WEAVE_ERROR_INCORRECT_STATE
Das Objekt WeaveConnection hat nicht den richtigen Status zum Senden von Nachrichten.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
Die ID des Zielknotens ist nicht angegeben.
WEAVE_ERROR_SENDING_BLOCKED
Die Nachricht ist zu lang, um sie zu senden.
other
Inet-Layer-Fehler im Zusammenhang mit den Sendevorgängen des jeweiligen Endpunkts.

SendTunneledMessage

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Funktion zum Senden eines Tunneling-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
nachdem die Nachricht erfolgreich an die Netzwerkschicht gesendet wurde.
WEAVE_ERROR_INCORRECT_STATE
Das Objekt WeaveConnection hat nicht den richtigen Status zum Senden von Nachrichten.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
Die ID des Zielknotens ist nicht angegeben.
WEAVE_ERROR_SENDING_BLOCKED
Die Nachricht ist zu lang, um sie zu senden.
other
Inet-Layer-Fehler im Zusammenhang mit den Sendevorgängen des jeweiligen Endpunkts.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Legen Sie ein Zeitlimit fest, damit Connect erfolgreich ist oder einen Fehler zurückgibt.

Details
Parameter
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

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

Details
Parameter
[in] timeoutMS
das Zeitlimit in Millisekunden.
Rückgabewerte
WEAVE_NO_ERROR
Bei erfolgreicher Einstellung des Zeitlimits bei Inaktivität für die Verbindung.
WEAVE_ERROR_INCORRECT_STATE
Das Objekt WeaveConnection 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 festgelegt ist.

Legen Sie die Socket-Option für das TCP-Nutzerzeitlimit fest.

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

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

Hinweis:Diese Methode kann nur für eine Weave-Verbindung aufgerufen werden, die von einer TCP-Verbindung unterstützt wird. – Diese Methode kann nur aufgerufen werden, wenn sich die Verbindung in einem Status befindet, der das Senden ermöglicht.

- Diese Methode kann mehrmals aufgerufen werden, um das Zeitlimit für TCP-Nutzer anzupassen.

Details
Rückgabewerte
WEAVE_NO_ERROR
Bei erfolgreicher Einstellung 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 Objekt WeaveConnection 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 TCP-Herunterfahren durch, um sicherzustellen, dass alle ausgehenden Daten vom TCP-Stack des Peers gesendet und empfangen wurden.

Bei den meisten (aber nicht allen) TCP-Implementierungen führt der Empfang einer Funktion zum Herunterfahren von "Senden" dazu, dass der Remote-Host auch seine Seite der Verbindung herunterfährt, was zu einer Verbindungstrennung führt. Ein nachfolgender Aufruf von Close() würde WeaveConnection beenden.

Details
Rückgabewerte
WEAVE_NO_ERROR
nach erfolgreichem Herunterfahren 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
Das Objekt WeaveConnection hat vor dem Herunterfahren nicht den richtigen Status.
other
Inet-Layer-Fehler im Zusammenhang mit bestimmten Beendigungsvorgängen an Endpunkten.
Siehe auch:
Close() und Abort().