nl::Weave::WeaveConnection

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

Definicja klasy połączenia Weave.

Podsumowanie

Reprezentuje połączenie TCP lub BLE z innym węzłem Weave.

Typy publiczne

@58{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum | typ wyliczeniowy
ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji, które jest wywoływane po zamknięciu połączenia.
ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji, które jest wywoływane po ukończeniu konfiguracji połączenia.
MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
Jest to wywołanie zwrotne aplikacji, które jest wywoływane po odebraniu wiadomości przez połączenie Weave.
NetworkType{
  kNetworkType_Unassigned = 0,
  kNetworkType_IP = 1,
  kNetworkType_BLE = 2
}
enum | typ wyliczeniowy
Typ sieci obiektu połączenia Weave.
ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji wywoływane po napotkaniu błędu podczas odbierania wiadomości Weave.
State{
  kState_ReadyToConnect = 0,
  kState_Resolving = 1,
  kState_Connecting = 2,
  kState_EstablishingSession = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_Closed = 6
}
enum | typ wyliczeniowy
Stan obiektu połączenia Weave.
TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji, które jest wywoływane po odebraniu przez połączenie Weave pakietu danych przez tunelowanie.

Atrybuty publiczne

AppState
void *
Wskaźnik do obiektu stanu specyficznego dla aplikacji.
AuthMode
WeaveAuthMode
[TYLKO DO ODCZYTU] Tryb uwierzytelniania używany do ustalania domyślnych kluczy szyfrowania na potrzeby połączenia.
DefaultEncryptionType
uint8_t
Domyślny typ szyfrowania wiadomości.
DefaultKeyId
uint16_t
Domyślny klucz szyfrowania używany podczas wysyłania wiadomości.
MessageLayer
[TYLKO DO ODCZYTU] Powiązany obiekt WeaveMessageLayer.
NetworkType
uint8_t
[TYLKO DO ODCZYTU] Typ sieci powiązanego punktu końcowego.
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[TYLKO DO ODCZYTU] Adres IP węzła równorzędnego.
PeerNodeId
uint64_t
[TYLKO DO ODCZYTU] Identyfikator węzła równorzędnego.
PeerPort
uint16_t
[TYLKO DO ODCZYTU] Numer portu węzła równorzędnego.
ReceiveEnabled
bool
[TYLKO DO ODCZYTU] Prawda, jeśli odbieranie jest włączone. W przeciwnym razie ma wartość false.
SendDestNodeId
bool
Prawda, jeśli wszystkie wiadomości wysyłane przez to połączenie muszą zawierać wyraźnie zakodowany identyfikator węzła docelowego. W przeciwnym razie ma wartość false.
SendSourceNodeId
bool
Prawda, jeśli wszystkie wiadomości wysyłane przez to połączenie muszą zawierać wyraźnie zakodowany identyfikator węzła źródłowego. W przeciwnym razie ma wartość false.
State
uint8_t
[TYLKO DO ODCZYTU] Stan obiektu WeaveConnection.

Funkcje publiczne

Abort(void)
void
Przeprowadza w sposób niespodziewany zamknięcie połączenia WeaveConnection opartego na TCP lub BLE, odrzucając wszystkie dane, które mogą być przesyłane do lub z peera.
AddRef(void)
void
Zarezerwuj odniesienie do obiektu WeaveConnection.
Close(void)
Wykonuje nieblokujące, płynne zamknięcie połączenia WeaveConnection opartego na TCP lub BLE, dostarczając wszystkie pozostałe dane wychodzące, zanim uprzejmie informuje hosta zdalnego o zresetowaniu połączenia.
Close(bool suppressCloseLog)
Wykonuje nieblokujące, płynne zamknięcie połączenia WeaveConnection opartego na TCP lub BLE, dostarczając wszystkie pozostałe dane wychodzące, zanim uprzejmie informuje hosta zdalnego o zresetowaniu połączenia.
Connect(uint64_t peerNodeId)
Połącz się z węzłem Weave przy użyciu adresu IP tkaniny uzyskanego ze wskazanego identyfikatora węzła.
Connect(uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
Połącz się z węzłem Weave za pomocą identyfikatora węzła lub adresu IP.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
Połącz się z węzłem Weave za pomocą identyfikatora węzła lub adresu IP w konkretnym interfejsie.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t defaultPort)
Połącz się z węzłem Weave za pomocą identyfikatora węzła lub nazwy hosta w postaci ciągu znaków.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
Połącz się z węzłem Weave za pomocą identyfikatora węzła lub adresu peera w ciągu znaków.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
Połącz się z węzłem Weave za pomocą identyfikatora węzła lub adresu peera w ciągu znaków.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
Połącz się z węzłem Weave za pomocą identyfikatora węzła lub listy nazwy hosta i portów.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
Połącz się z węzłem Weave za pomocą identyfikatora węzła lub listy nazwy hosta i portów.
DisableKeepAlive(void)
DisableReceive(void)
void
Wyłącz odbieranie przez to połączenie WeaveConnection.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
Włącz odbieranie przez to połączenie WeaveConnection.
GetPeerAddressInfo(IPPacketInfo & addrInfo)
Uzyskaj informacje o adresie IP połączenia równorzędnego.
GetPeerDescription(char *buf, size_t bufSize) const
void
Tworzy ciąg znaków opisujący węzeł równorzędny powiązany z połączeniem.
GetTCPEndPoint(void) const
TCPEndPoint *
IsIncoming(void) const
bool
LogId(void) const
uint16_t
Release(void)
void
Zmniejsz liczbę plików referencyjnych w obiekcie WeaveConnection.
ResetUserTimeout(void)
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Wyślij wiadomość Weave przez ustanowione połączenie.
SendTunneledMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funkcja do wysyłania pakietów przez tunelowanie przez połączenie Weave.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Ustaw czas oczekiwania, aby nawiązać połączenie lub zwrócić błąd.
SetIdleTimeout(uint32_t timeoutMS)
Ustaw limit czasu bezczynności na bazowym połączeniu w warstwie sieciowej.
SetIncoming(bool val)
void
SetUserTimeout(uint32_t userTimeoutMillis)
Shutdown(void)
Wykonuje bezproblemowe wyłączenie wysyłania TCP, upewniając się, że wszystkie dane wychodzące zostały wysłane i odebrane przez stos TCP peera.

Typy publiczne

@58

 @58
Właściwości
kGetPeerDescription_MaxLength

Maksymalna długość ciągu znaków (w tym znaku NUL) zwróconego przez funkcję GetPeerDescription().

ConnectionClosedFunct

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

Ta funkcja to wywołanie zwrotne aplikacji, które jest wywoływane po zamknięciu połączenia.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] conErr
Podczas zamykania połączenia wystąpił błąd WEAVE_ERROR.

ConnectionCompleteFunct

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

Ta funkcja to wywołanie zwrotne aplikacji, które jest wywoływane po ukończeniu konfiguracji połączenia.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] conErr
Podczas konfigurowania połączenia wystąpił błąd WEAVE_ERROR.

MessageReceiveFunct

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

Jest to wywołanie zwrotne aplikacji, które jest wywoływane po odebraniu wiadomości przez połączenie Weave.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] msgInfo
Wskaźnik do struktury WeaveMessageInfo zawierającej informacje o wiadomości.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer, w którym jest przechowywana wiadomość.

NetworkType

 NetworkType

Typ sieci obiektu połączenia Weave.

Właściwości
kNetworkType_BLE

Typ sieci BLE.

kNetworkType_IP

Typ sieci TCP/IP.

kNetworkType_Unassigned

Nieprzypisany typ sieci.

ReceiveErrorFunct

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

Ta funkcja to wywołanie zwrotne aplikacji wywoływane po napotkaniu błędu podczas odbierania wiadomości Weave.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] err
Podczas odbierania danych przez połączenie wystąpił błąd WEAVE_ERROR.

Stan

 State

Stan obiektu połączenia Weave.

Właściwości
kState_Closed

Stan, gdy połączenie jest zamknięte.

kState_Connected

Stan, kiedy połączenie zostało nawiązane.

kState_Connecting

Stan, w którym próbowano nawiązać połączenie.

kState_EstablishingSession

Stan rozpoczynania bezpiecznej sesji.

kState_ReadyToConnect

Stan po zainicjowaniu połączenia Weave.

kState_Resolving

Stan, w którym jest wykonywane rozpoznawanie nazw DNS.

kState_SendShutdown

Stan, gdy połączenie jest zamykane.

TunneledMsgReceiveFunct

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

Ta funkcja to wywołanie zwrotne aplikacji, które jest wywoływane po odebraniu przez połączenie Weave pakietu danych przez tunelowanie.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer zawierającego odebrany pakiet poddany tunelowaniu.

Atrybuty publiczne

AppState

void * AppState

Wskaźnik do obiektu stanu specyficznego dla aplikacji.

AuthMode

WeaveAuthMode AuthMode

[TYLKO DO ODCZYTU] Tryb uwierzytelniania używany do ustalania domyślnych kluczy szyfrowania na potrzeby połączenia.

DefaultEncryptionType

uint8_t DefaultEncryptionType

Domyślny typ szyfrowania wiadomości.

DefaultKeyId

uint16_t DefaultKeyId

Domyślny klucz szyfrowania używany podczas wysyłania wiadomości.

MessageLayer

WeaveMessageLayer * MessageLayer

[TYLKO DO ODCZYTU] Powiązany obiekt WeaveMessageLayer.

NetworkType

uint8_t NetworkType

[TYLKO DO ODCZYTU] Typ sieci powiązanego punktu końcowego.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnConnectionComplete

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

PeerAddr

IPAddress PeerAddr

[TYLKO DO ODCZYTU] Adres IP węzła równorzędnego.

PeerNodeId

uint64_t PeerNodeId

[TYLKO DO ODCZYTU] Identyfikator węzła równorzędnego.

PeerPort

uint16_t PeerPort

[TYLKO DO ODCZYTU] Numer portu węzła równorzędnego.

ReceiveEnabled

bool ReceiveEnabled

[TYLKO DO ODCZYTU] Prawda, jeśli odbieranie jest włączone. W przeciwnym razie ma wartość false.

SendDestNodeId

bool SendDestNodeId

Prawda, jeśli wszystkie wiadomości wysyłane przez to połączenie muszą zawierać wyraźnie zakodowany identyfikator węzła docelowego. W przeciwnym razie ma wartość false.

SendSourceNodeId

bool SendSourceNodeId

Prawda, jeśli wszystkie wiadomości wysyłane przez to połączenie muszą zawierać wyraźnie zakodowany identyfikator węzła źródłowego. W przeciwnym razie ma wartość false.

Stan

uint8_t State

[TYLKO DO ODCZYTU] Stan obiektu WeaveConnection.

Funkcje publiczne

Przerwij

void Abort(
  void
)

Przeprowadza w sposób niespodziewany zamknięcie połączenia WeaveConnection opartego na TCP lub BLE, odrzucając wszystkie dane, które mogą być przesyłane do lub z peera.

Wywołanie Abort() natychmiast kończy połączenie bazowe. Od tego momentu obiekt WeaveConnection nie może być już używany do dalszej komunikacji.

Wywołanie funkcji Abort() zmniejsza liczbę odwołań powiązaną z obiektem WeaveConnection, niezależnie od tego, czy połączenie jest otwarte/aktywne w momencie wywołania metody. Jeśli to spowoduje, że liczba odwołań osiągnie zero, zasoby powiązane z obiektem połączenia zostaną zwolnione. W takim przypadku aplikacja nie może już podejmować żadnych dalszych interakcji z obiektem.

Zobacz też:
Shutdown(), Abort(), AddRef() i Release().

AddRef

void AddRef(
  void
)

Zarezerwuj odniesienie do obiektu WeaveConnection.

Metoda AddRef() zwiększa liczbę plików referencyjnych powiązanych z obiektem WeaveConnection. W przypadku każdego wywołania AddRef() aplikacja odpowiada za wywołanie odpowiedniej funkcji Release(), Close() lub Abort().

Zamknij

WEAVE_ERROR Close(
  void
)

Wykonuje nieblokujące, płynne zamknięcie połączenia WeaveConnection opartego na TCP lub BLE, dostarczając wszystkie pozostałe dane wychodzące, zanim uprzejmie informuje hosta zdalnego o zresetowaniu połączenia.

Ta metoda nie daje wyraźnej gwarancji, że jakakolwiek wiadomość wychodząca, która nie została potwierdzona na poziomie protokołu aplikacji, została odebrana przez zdalny peer. Zarówno w przypadku TCP i BLE, podstawowy stos protokołów będzie dążyć do dostarczenia wszystkich oczekujących danych wychodzących przed zresetowaniem połączenia. W przypadku protokołu TCP przed zamknięciem połączenia należy użyć metody Shutdown() przed Close(), jeśli wymagane jest potwierdzenie otrzymania wiadomości w warstwie transportu. Połączenia BLE nie mają odpowiednika w funkcji Shutdown().

W przypadku połączeń opartych na BLE funkcja Close() zamyka połączenie WeaveConnection i zwraca natychmiast, ale może spowodować, że bazowy obiekt BLEEndPoint będzie pozostawał w późniejszym czasie do momentu wysłania wszystkich danych wychodzących. Jest to efekt uboczny implementacji protokołu transportowego Weave zamiast BLE dostępnego w Weave BleLayer.

Po wywołaniu funkcji Close() nie można już używać obiektu WeaveConnection do dalszej komunikacji.

Wywołanie funkcji Close() zmniejsza liczbę odwołań powiązaną z obiektem WeaveConnection, niezależnie od tego, czy połączenie jest otwarte/aktywne w momencie wywołania metody. Jeśli to spowoduje, że liczba odwołań osiągnie zero, zasoby powiązane z obiektem połączenia zostaną zwolnione. W takim przypadku aplikacja nie może już podejmować żadnych dalszych interakcji z obiektem.

Szczegóły
Zwroty
WEAVE_NO_ERROR bezwarunkowo.
Zobacz też:
Shutdown(), Abort(), AddRef() i Release().

Zamknij

WEAVE_ERROR Close(
  bool suppressCloseLog
)

Wykonuje nieblokujące, płynne zamknięcie połączenia WeaveConnection opartego na TCP lub BLE, dostarczając wszystkie pozostałe dane wychodzące, zanim uprzejmie informuje hosta zdalnego o zresetowaniu połączenia.

Ta metoda nie daje wyraźnej gwarancji, że jakakolwiek wiadomość wychodząca, która nie została potwierdzona na poziomie protokołu aplikacji, została odebrana przez zdalny peer. Zarówno w przypadku TCP i BLE, podstawowy stos protokołów będzie dążyć do dostarczenia wszystkich oczekujących danych wychodzących przed zresetowaniem połączenia. W przypadku protokołu TCP przed zamknięciem połączenia należy użyć metody Shutdown() przed Close(), jeśli wymagane jest potwierdzenie otrzymania wiadomości w warstwie transportu. Połączenia BLE nie mają odpowiednika w funkcji Shutdown().

W przypadku połączeń opartych na BLE funkcja Close() zamyka połączenie WeaveConnection i zwraca natychmiast, ale może spowodować, że bazowy obiekt BLEEndPoint będzie pozostawał w późniejszym czasie do momentu wysłania wszystkich danych wychodzących. Jest to efekt uboczny implementacji protokołu transportowego Weave zamiast BLE dostępnego w Weave BleLayer.

Po wywołaniu funkcji Close() nie można już używać obiektu WeaveConnection do dalszej komunikacji.

Wywołanie funkcji Close() zmniejsza liczbę odwołań powiązaną z obiektem WeaveConnection, niezależnie od tego, czy połączenie jest otwarte/aktywne w momencie wywołania metody. Jeśli to spowoduje, że liczba odwołań osiągnie zero, zasoby powiązane z obiektem połączenia zostaną zwolnione. W takim przypadku aplikacja nie może już podejmować żadnych dalszych interakcji z obiektem.

Szczegóły
Parametry
[in] suppressCloseLog
true (prawda), jeśli logi muszą być pominięte, w przeciwnym razie ma wartość false (fałsz).
Zwroty
WEAVE_NO_ERROR bezwarunkowo.
Zobacz też:
Shutdown(), Abort(), AddRef() i Release().

Połącz

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

Połącz się z węzłem Weave przy użyciu adresu IP tkaniny uzyskanego ze wskazanego identyfikatora węzła.

Szczegóły
Parametry
[in] peerNodeId
Identyfikator węzła równorzędnego.
Zwracane wartości
WEAVE_NO_ERROR
udanego zainicjowania połączenia z równolegle.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan WeaveConnection jest nieprawidłowy.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
jeśli żądany tryb uwierzytelniania nie jest obsługiwany.
WEAVE_ERROR_INVALID_ADDRESS
jeśli nie można wyodrębnić adresu docelowego z identyfikatora węzła.
other
Błędy warstwy danych generowane przez operacje połączenia TCPEndPoint.

Połącz

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

Połącz się z węzłem Weave za pomocą identyfikatora węzła lub adresu IP.

Szczegóły
Parametry
[in] peerNodeId
Identyfikator węzła peera, kNodeIdNotSpecified lub 0, jeśli jest nieznany.
[in] peerAddr
Adres IP peera, IPAddress::Dowolny, jeśli nie jest znany.
[in] peerPort
Opcjonalny port peera, który jest domyślnie ustawiony na WEAVE_PORT.
Zwracane wartości
WEAVE_NO_ERROR
udanego zainicjowania połączenia z równolegle.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan WeaveConnection jest nieprawidłowy.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
jeśli żądany tryb uwierzytelniania nie jest obsługiwany.
WEAVE_ERROR_INVALID_ADDRESS
jeśli nie można wyodrębnić adresu docelowego z identyfikatora węzła.
other
Błędy warstwy danych generowane przez operacje połączenia TCPEndPoint.

Połącz

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

Połącz się z węzłem Weave za pomocą identyfikatora węzła lub adresu IP w konkretnym interfejsie.

Szczegóły
Parametry
[in] peerNodeId
Identyfikator węzła peera, kNodeIdNotSpecified lub 0, jeśli jest nieznany.
[in] authMode
Żądany tryb uwierzytelniania dla peera. Obsługiwane są tylko tryby CASE, PASE i Unuwierzytelnione.
[in] peerAddr
Adres IP peera, IPAddress::Dowolny, jeśli nie jest znany.
[in] peerPort
Opcjonalny port peera, który jest domyślnie ustawiony na WEAVE_PORT.
[in] intf
Opcjonalny interfejs używany do łączenia się z węzłem równorzędnym, domyślny to INET_NULL_INTERFACEID.
Zwracane wartości
WEAVE_NO_ERROR
udanego zainicjowania połączenia z równolegle.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan WeaveConnection jest nieprawidłowy.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
jeśli żądany tryb uwierzytelniania nie jest obsługiwany.
WEAVE_ERROR_INVALID_ADDRESS
jeśli nie można wyodrębnić adresu docelowego z identyfikatora węzła.
other
Błędy warstwy danych generowane przez operacje połączenia TCPEndPoint.

Połącz

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

Połącz się z węzłem Weave za pomocą identyfikatora węzła lub nazwy hosta w postaci ciągu znaków.

Jeśli jest podany, element peerAddr może mieć dowolną z tych wartości:


:

:

[]:

Szczegóły
Parametry
[in] peerNodeId
Identyfikator węzła peera, kNodeIdNotSpecified lub 0, jeśli jest nieznany.
[in] authMode
Żądany tryb uwierzytelniania dla peera. Obsługiwane są tylko tryby CASE, PASE i Unuwierzytelnione.
[in] peerAddr
Adres lub nazwa hosta peera jako ciąg C z końcówką wartości NULL.
[in] defaultPort
Opcjonalny port domyślny używany na potrzeby połączenia, jeśli nie został podany w ciągu peerAddr.
Zwracane wartości
WEAVE_NO_ERROR
udanego zainicjowania połączenia z równolegle.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan WeaveConnection jest nieprawidłowy.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
jeśli żądany tryb uwierzytelniania nie jest obsługiwany.
WEAVE_ERROR_INVALID_ADDRESS
jeśli nie można wyodrębnić adresu docelowego z identyfikatora węzła.
other
Błędy warstwy danych generowane przez operacje połączenia TCPEndPoint.

Połącz

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

Połącz się z węzłem Weave za pomocą identyfikatora węzła lub adresu peera w ciągu znaków.

Jeśli jest podany, element peerAddr może mieć dowolną z tych wartości:


:

:

[]:

Szczegóły
Parametry
[in] peerNodeId
Identyfikator węzła peera, kNodeIdNotSpecified lub 0, jeśli jest nieznany.
[in] authMode
Żądany tryb uwierzytelniania dla peera. Obsługiwane są tylko tryby CASE, PASE i Unuwierzytelnione.
[in] peerAddr
Adres lub nazwa hosta peera jako ciąg C bez wartości NULL.
[in] peerAddrLen
Długość ciągu peerAddr.
[in] defaultPort
Opcjonalny port domyślny używany na potrzeby połączenia, jeśli nie został podany w ciągu peerAddr.
Zwracane wartości
WEAVE_NO_ERROR
udanego zainicjowania połączenia z równolegle.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan WeaveConnection jest nieprawidłowy.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
jeśli żądany tryb uwierzytelniania nie jest obsługiwany.
WEAVE_ERROR_INVALID_ADDRESS
jeśli nie można wyodrębnić adresu docelowego z identyfikatora węzła.
other
Błędy warstwy danych generowane przez operacje połączenia TCPEndPoint.

Połącz

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

Połącz się z węzłem Weave za pomocą identyfikatora węzła lub adresu peera w ciągu znaków.

Jeśli jest podany, element peerAddr może mieć dowolną z tych wartości:


:

:

[]:

Szczegóły
Parametry
[in] peerNodeId
Identyfikator węzła peera, kNodeIdNotSpecified lub 0, jeśli jest nieznany.
[in] authMode
Żądany tryb uwierzytelniania dla peera. Obsługiwane są tylko tryby CASE, PASE i Unuwierzytelnione.
[in] peerAddr
Adres lub nazwa hosta peera jako ciąg C bez wartości NULL.
[in] peerAddrLen
Długość ciągu peerAddr.
[in] dnsOptions
Wartość liczby całkowitej określająca sposób rozpoznawania nazwy hosta. Wartość powinna być operatorem LUB co najmniej jednej wartości z wyliczenia #::nl::Inet::DNSOptions.
[in] defaultPort
Opcjonalny port domyślny używany na potrzeby połączenia, jeśli nie został podany w ciągu peerAddr.
Zwracane wartości
WEAVE_NO_ERROR
udanego zainicjowania połączenia z równolegle.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan WeaveConnection jest nieprawidłowy.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
jeśli żądany tryb uwierzytelniania nie jest obsługiwany.
WEAVE_ERROR_INVALID_ADDRESS
jeśli nie można wyodrębnić adresu docelowego z identyfikatora węzła.
other
Błędy warstwy danych generowane przez operacje połączenia TCPEndPoint.

Połącz

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

Połącz się z węzłem Weave za pomocą identyfikatora węzła lub listy nazwy hosta i portów.

Szczegóły
Parametry
[in] peerNodeId
Identyfikator węzła równorzędnego.
[in] authMode
Tryb uwierzytelniania używany na potrzeby połączenia.
[in] hostPortList
Lista nazw hostów i portów.
[in] intf
Opcjonalny interfejs używany do łączenia się z węzłem równorzędnym, domyślny to INET_NULL_INTERFACEID.
Zwracane wartości
WEAVE_NO_ERROR
udanego zainicjowania połączenia z równolegle.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan WeaveConnection jest nieprawidłowy.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
jeśli żądany tryb uwierzytelniania nie jest obsługiwany.
WEAVE_ERROR_INVALID_ADDRESS
jeśli nie można wyodrębnić adresu docelowego z identyfikatora węzła.
other
Błędy warstwy danych generowane przez operacje połączenia TCPEndPoint.

Połącz

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

Połącz się z węzłem Weave za pomocą identyfikatora węzła lub listy nazwy hosta i portów.

Szczegóły
Parametry
[in] peerNodeId
Identyfikator węzła równorzędnego.
[in] authMode
Tryb uwierzytelniania używany na potrzeby połączenia.
[in] hostPortList
Lista nazw hostów i portów.
[in] dnsOptions
Wartość liczby całkowitej określająca sposób rozpoznawania nazwy hosta. Wartość powinna być operatorem LUB co najmniej jednej wartości z wyliczenia #::nl::Inet::DNSOptions.
[in] intf
Opcjonalny interfejs używany do łączenia się z węzłem równorzędnym, domyślny to INET_NULL_INTERFACEID.
Zwracane wartości
WEAVE_NO_ERROR
udanego zainicjowania połączenia z równolegle.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan WeaveConnection jest nieprawidłowy.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
jeśli żądany tryb uwierzytelniania nie jest obsługiwany.
WEAVE_ERROR_INVALID_ADDRESS
jeśli nie można wyodrębnić adresu docelowego z identyfikatora węzła.
other
Błędy warstwy danych generowane przez operacje połączenia TCPEndPoint.

DisableKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive

Wyłącz sondy utrzymujące aktywność TCP w bazowym połączeniu TCP.

Uwaga: tę metodę można wywołać tylko w przypadku połączenia Weave opartego na połączeniu TCP. Tę metodę można wywołać tylko wtedy, gdy połączenie jest w stanie umożliwiającym wysyłanie.

Ta metoda nie zadziała, jeśli funkcje utrzymywania aktywności nie zostały włączone w połączeniu.

Szczegóły
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wyłączeniu sond utrzymujących aktywność TCP w połączeniu.
WEAVE_ERROR_NOT_IMPLEMENTED
jeśli ta funkcja jest wywoływana z powodu niezgodnego punktu końcowego (np. BLE).
WEAVE_ERROR_INCORRECT_STATE
jeśli obiekt WeaveConnection jest w niepoprawnym stanie do wysyłania wiadomości.
other
Błędy warstwy danych związane z punktem końcowym TCP umożliwiają operację utrzymywania aktywności.

DisableReceive

void DisableReceive(
  void
)

Wyłącz odbieranie przez to połączenie WeaveConnection.

Ta metoda jest używana przez aplikację do wskazania, że nie jest gotowa do odbierania żadnych danych przychodzących przez połączenie TCP. Aby ponownie włączyć odbieranie, aplikacja musi wywołać metodę EnableReceive(), aby umożliwić WeaveConnection przekazanie wszelkich otrzymanych danych przez wywołanie odpowiednich wywołań zwrotnych.

Zobacz też:
EnableReceive()

EnableKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive

Włącz sondy utrzymujące aktywność TCP w bazowym połączeniu TCP.

Uwaga: tę metodę można wywołać tylko w przypadku połączenia Weave opartego na połączeniu TCP. – Tę metodę można wywoływać tylko wtedy, gdy połączenie jest w stanie umożliwiającym wysyłanie.

Szczegóły
Parametry
[in] interval
Odstęp (w sekundach) między sondami utrzymującymi aktywność. Ta wartość kontroluje też czas między ostatnim wysłaniem pakietu danych a wysłaniem pierwszej sondy utrzymującej aktywność.
[in] timeoutCount
Maksymalna liczba niepotwierdzonych sond, zanim połączenie zostanie uznane za nieudane.

– Tę metodę można wywoływać wielokrotnie, aby dostosować interwał utrzymywania aktywności i limit czasu.

Szczegóły
Zwracane wartości
WEAVE_NO_ERROR
udanego włączenia sond utrzymujących aktywność TCP w połączeniu.
WEAVE_ERROR_NOT_IMPLEMENTED
jeśli ta funkcja jest wywoływana z powodu niezgodnego punktu końcowego (np. BLE).
WEAVE_ERROR_INCORRECT_STATE
jeśli obiekt WeaveConnection jest w niepoprawnym stanie do wysyłania wiadomości.
other
Błędy warstwy danych związane z punktem końcowym TCP umożliwiają operację utrzymywania aktywności.

EnableReceive

void EnableReceive(
  void
)

Włącz odbieranie przez to połączenie WeaveConnection.

Aplikacja jest wykorzystywana przez aplikację do wskazania obiektu WeaveConnection, że jest gotowa na odbieranie wszelkich danych przychodzących przez połączenie TCP.

Zobacz też:
DisableReceive()

GetPeerAddressInfo

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

Uzyskaj informacje o adresie IP połączenia równorzędnego.

Szczegóły
Parametry
[out] addrInfo
Odwołanie do obiektu IPPacketInfo.
Zwracane wartości
WEAVE_NO_ERROR
Na sukces.
WEAVE_ERROR_NOT_IMPLEMENTED
Jeśli ta funkcja jest wywoływana w przypadku niezgodnego punktu końcowego (np. BLE).

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize
) const 

Tworzy ciąg znaków opisujący węzeł równorzędny powiązany z połączeniem.

Szczegóły
Parametry
[in] buf
Wskaźnik do bufora, w którym należy zapisać ciąg znaków. Podany bufor powinien mieć co najmniej tyle, co kGetPeerDescription_MaxLength. Jeśli zostanie podany mniejszy bufor, ciąg zostanie przycięty, aby się zmieścił. Dane wyjściowe we wszystkich przypadkach będą zawierać znak zakończenia NUL.
[in] bufSize
Rozmiar bufora wskazywany przez bufor.

GetTCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

IsIncoming

bool IsIncoming(
  void
) const 

LogId

uint16_t LogId(
  void
) const 

Premiera

void Release(
  void
)

Zmniejsz liczbę plików referencyjnych w obiekcie WeaveConnection.

Metoda Release() zmniejsza liczbę plików referencyjnych powiązaną z obiektem WeaveConnection. Jeśli to spowoduje, że liczba odwołań osiągnie zero, połączenie zostanie zamknięte, a obiekt zwolniony. W takim przypadku aplikacja nie może już podejmować żadnych dalszych interakcji z obiektem.

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout.

Zresetuj opcję gniazda limitu czasu użytkownika TCP do ustawień domyślnych systemu.

Uwaga: tę metodę można wywołać tylko w przypadku połączenia Weave opartego na połączeniu TCP. – Tę metodę można wywoływać tylko wtedy, gdy połączenie jest w stanie umożliwiającym wysyłanie.

– Ta metoda nie działa, jeśli w przypadku połączenia nie został ustawiony czas oczekiwania użytkownika.

Szczegóły
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym zresetowaniu limitu czasu użytkownika TCP przy połączeniu.
WEAVE_ERROR_NOT_IMPLEMENTED
jeśli ta funkcja jest wywoływana z powodu niezgodnego punktu końcowego (np. BLE).
WEAVE_ERROR_INCORRECT_STATE
jeśli obiekt WeaveConnection jest w niepoprawnym stanie do wysyłania wiadomości.
other
Błędy warstwy danych związane ze zresetowaniem limitu czasu użytkownika TCP przez punkt końcowy TCP.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Wyślij wiadomość Weave przez ustanowione połączenie.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer, w którym znajduje się pakiet do wysłania.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
WEAVE_ERROR_INCORRECT_STATE
jeśli obiekt WeaveConnection jest w niepoprawnym stanie do wysyłania wiadomości.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
jeśli identyfikator węzła docelowego jest nieokreślony.
WEAVE_ERROR_SENDING_BLOCKED
gdy wiadomość jest za długa do wysłania.
other
Błędy warstwy danych związane z operacjami wysyłania określonych punktów końcowych.

SendTunneledMessage

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Funkcja do wysyłania pakietów przez tunelowanie przez połączenie Weave.

Wyślij tunelowaną wiadomość Weave przez ustanowione połączenie.

Szczegóły
Parametry
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer, w którym znajduje się pakiet do wysłania.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym wysłaniu wiadomości do warstwy sieciowej.
WEAVE_ERROR_INCORRECT_STATE
jeśli obiekt WeaveConnection jest w niepoprawnym stanie do wysyłania wiadomości.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
jeśli identyfikator węzła docelowego jest nieokreślony.
WEAVE_ERROR_SENDING_BLOCKED
gdy wiadomość jest za długa do wysłania.
other
Błędy warstwy danych związane z operacjami wysyłania określonych punktów końcowych.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Ustaw czas oczekiwania, aby nawiązać połączenie lub zwrócić błąd.

Szczegóły
Parametry
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

Ustaw limit czasu bezczynności na bazowym połączeniu w warstwie sieciowej.

Szczegóły
Parametry
[in] timeoutMS
czasu oczekiwania w milisekundach.
Zwracane wartości
WEAVE_NO_ERROR
po pomyślnym ustawieniu czasu bezczynności dla połączenia.
WEAVE_ERROR_INCORRECT_STATE
jeśli obiekt WeaveConnection jest w niepoprawnym stanie do odbierania wiadomości.

SetIncoming

void SetIncoming(
  bool val
)

SetUserTimeout

WEAVE_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

WeaveConnection::SetUserTimeout.

Ustaw opcję gniazda limitu czasu użytkownika TCP.

Jeśli wartość jest większa niż 0, określa to maksymalny czas (w milisekundach), przez jaki przesyłane dane mogą pozostać niepotwierdzone, zanim TCP wymusi zamknięcie odpowiedniego połączenia. Jeśli wartość opcji jest określona jako 0, TCP użyje wartości domyślnej systemu. Więcej informacji znajdziesz w dokumencie RFC 5482.

Szczegóły
Parametry
[in] userTimeoutMillis
Wartość limitu czasu użytkownika TCP w milisekundach.

Uwaga: tę metodę można wywołać tylko w przypadku połączenia Weave opartego na połączeniu TCP. – Tę metodę można wywoływać tylko wtedy, gdy połączenie jest w stanie umożliwiającym wysyłanie.

– Tę metodę można wywoływać wielokrotnie, aby dostosować limit czasu użytkownika TCP.

Szczegóły
Zwracane wartości
WEAVE_NO_ERROR
w przypadku udanego ustawienia limitu czasu użytkownika TCP przy połączeniu.
WEAVE_ERROR_NOT_IMPLEMENTED
jeśli ta funkcja jest wywoływana z powodu niezgodnego punktu końcowego (np. BLE).
WEAVE_ERROR_INCORRECT_STATE
jeśli obiekt WeaveConnection jest w niepoprawnym stanie do wysyłania wiadomości.
other
Błędy warstwy danych związane z ustawieniem punktu końcowego TCP limitu czasu użytkownika TCP.

Wyłączono

WEAVE_ERROR Shutdown(
  void
)

Wykonuje bezproblemowe wyłączenie wysyłania TCP, upewniając się, że wszystkie dane wychodzące zostały wysłane i odebrane przez stos TCP peera.

W przypadku większości implementacji TCP (ale nie wszystkich) otrzymanie potwierdzenia wyłączenia połączenia spowoduje też wyłączenie przez hosta zdalnego po swojej stronie, co skutkuje zamknięciem połączenia. Kolejne wywołanie funkcji Close() kończy działanie WeaveConnection.

Szczegóły
Zwracane wartości
WEAVE_NO_ERROR
w przypadku pomyślnego wyłączenia połączenia TCP.
WEAVE_ERROR_NOT_IMPLEMENTED
jeśli ta funkcja jest wywoływana z powodu niezgodnego punktu końcowego (np. BLE).
WEAVE_ERROR_INCORRECT_STATE
jeśli przed zainicjowaniem wyłączenia obiekt WeaveConnection jest w nieprawidłowym stanie.
other
Błędy warstwy danych związane z konkretnymi operacjami wyłączania punktu końcowego.
Zobacz też:
Close() i Abort().