nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr

#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>

Ta klasa obejmuje wszystkie stany połączeń tunelu Weave oraz powiązane z nimi funkcje i logikę zarządzania.

Podsumowanie

Instancja tej klasy będzie używana do zarządzania tunelem w każdym interfejsie, za pomocą którego będzie istniał tunel Weave do usługi.

Konstruktorzy i niszczyciele

WeaveTunnelConnectionMgr(void)

Typy publiczne

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
Wywołanie zwrotne w celu pobrania odstępu czasu oczekiwania do ponownego połączenia przez tunel.
TunnelConnNotifyReasons{
  kStatus_TunDown = 0,
  kStatus_TunPrimaryUp = 1,
  kStatus_TunPrimaryConnError = 2,
  kStatus_TunBackupConnError = 3,
  kStatus_TunFailoverToBackup = 4,
  kStatus_TunBackupOnlyDown = 5,
  kStatus_TunBackupUp = 6,
  kStatus_TunPrimaryAndBackupUp = 7,
  kStatus_TunPrimaryReconnectRcvd = 8,
  kStatus_TunBackupReconnectRcvd = 9,
  kStatus_TunPrimaryLiveness = 10,
  kStatus_TunBackupLiveness = 11
}
enum | typ wyliczeniowy
TunnelConnNotifyReasons typedef
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
enum | typ wyliczeniowy
TunnelConnectionState typedef

Atrybuty publiczne

mServiceConnDelayPolicyCallback

Funkcje publiczne

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
Zainicjuj plik WeaveTunnelConnectionMgr.
ServiceTunnelClose(WEAVE_ERROR err)
void
Zamknij tunel usługi.
SetInterfaceName(const char *intfName)
void
Ustaw InterfaceName na potrzeby połączenia przez tunel.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Ustaw SrcInterfaceType na potrzeby połączenia przez tunel.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Zatrzymaj połączenie przez tunel usługi i spróbuj połączyć się jeszcze raz.
TryConnectingNow(void)
Spróbuj nawiązać połączenie z Usługą.

Publiczne funkcje statyczne

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
Domyślna implementacja zasad pobierania przy następnym połączeniu z usługą.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Moduł obsługi wywoływany po zamknięciu połączenia TCP usługi.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Moduł obsługi wywoływany po zakończeniu połączenia z usługą TCP.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
Moduł obsługi do odbierania tunelowanych pakietów IPv6 z połączenia TCP usługi i do interfejsu Tunnel EndPoint po usunięciu surowego pakietu IPv6 z nagłówka tunelu.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Moduł obsługi jest wywoływany, jeśli menedżerowi usługi nie udało się nawiązać połączenia TCP z usługą.

Typy publiczne

ConnectPolicyCallback

void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)

Wywołanie zwrotne w celu pobrania odstępu czasu oczekiwania do ponownego połączenia przez tunel.

Szczegóły
Parametry
[in] appState
Wskaźnik stanu aplikacji ustawiony podczas inicjowania klienta SubscriptionClient.
[in] reconnectParam
Utwórz strukturę z parametrami, które mają wpływ na obliczanie opóźnienia ponownego połączenia.
[out] delayMsec
Czas oczekiwania przed kolejną próbą ponownego połączenia (w milisekundach).

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Właściwości
kStatus_TunBackupConnError

Wskazuje, że próba połączenia przez tunel zapasowy zakończyła się niepowodzeniem albo istniejący został lokalnie przerwany lub zamknięty przez połączenie równorzędne.

kStatus_TunBackupLiveness

Służy do informowania o sondzie żywotności tunelu w tunelu Backup Weave.

kStatus_TunBackupOnlyDown

Wskazuje, że tunel zapasowy nie działa.

kStatus_TunBackupReconnectRcvd

Służy do wskazywania, że usługa zażądała ponownego połączenia dla tunelu Backup Weave.

kStatus_TunBackupUp

Wskazuje, że tunel Backup Weave jest aktywny.

kStatus_TunDown

Wskazuje, że tunel Weave przestał działać.

kStatus_TunFailoverToBackup

Służy do informowania, że główny tunel jest wyłączony i nastąpiło przełączenie na tunel zapasowy.

kStatus_TunPrimaryAndBackupUp

Służy do wskazywania, że zarówno główny, jak i zapasowy tunel Weave są włączone.

kStatus_TunPrimaryConnError

Wskazuje, że próba połączenia głównego tunelu nie powiodła się albo istniejąca została lokalnie przerwana lub zamknięta przez połączenie równorzędne.

kStatus_TunPrimaryLiveness

Służy do informowania o sondzie żywotności tunelu w tunelu Primary Weave.

kStatus_TunPrimaryReconnectRcvd

Służy do wskazywania, że usługa zażądała ponownego połączenia dla głównego tunelu Weave.

kStatus_TunPrimaryUp

Służy do wskazywania, że główny tunel Weave jest aktywny.

TunnelConnNotifyReasons

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons

TunnelConnectionState

 TunnelConnectionState
Właściwości
kState_Connecting

Służy do informowania, że połączenie Weave Tunnel zostało zainicjowane.

kState_ConnectionEstablished

Służy do informowania, że nawiązano połączenie z tunelem Weave i że są wymieniane informacje o trasach.

kState_NotConnected

Służy do informowania, że tunel Weave nie jest połączony.

kState_ReconnectRecvd

Służy do wskazywania, że usługa chce, aby brama brzegowa połączyła się ponownie po wyszukaniu katalogu.

kState_TunnelClosing

Służy do informowania, że tunel Weave jest zamykany i połączenie jest zerwane.

kState_TunnelOpen

Służy do informowania, że tunel Weave jest otwarty i gotowy do przesyłania danych.

TunnelConnectionState

enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState

Atrybuty publiczne

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

Funkcje publiczne

Zainicjuj

WEAVE_ERROR Init(
  WeaveTunnelAgent *tunAgent,
  TunnelType tunType,
  SrcInterfaceType srcIntfType,
  const char *connIntfName
)

Zainicjuj plik WeaveTunnelConnectionMgr.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Zamknij tunel usługi.

Szczegóły
Parametry
[in] err
Element wywołujący przekazał błąd WEAVE_ERROR.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Ustaw InterfaceName na potrzeby połączenia przez tunel.

Szczegóły
Parametry
[in] tunIntf
Wartość InterfaceName używana do konfigurowania połączenia przez tunel usługi.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Ustaw SrcInterfaceType na potrzeby połączenia przez tunel.

Szczegóły
Parametry
[in] srcIntfType
Typ technologii sieciowej interfejsu umożliwiającego połączenie przez tunel usługi.

Wyłączono

void Shutdown(
  void
)

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

Zatrzymaj połączenie przez tunel usługi i spróbuj połączyć się jeszcze raz.

Szczegóły
Parametry
[in] err
Element wywołujący przekazał błąd WEAVE_ERROR.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

Spróbuj nawiązać połączenie z Usługą.

Spróbuj nawiązać połączenie z usługą za pomocą menedżera usługi lub bezpośrednio.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Publiczne funkcje statyczne

DefaultReconnectPolicyCallback

void DefaultReconnectPolicyCallback(
  void *const appstate,
  ReconnectParam & reconnectParam,
  uint32_t & delayMsec
)

Domyślna implementacja zasad pobierania przy następnym połączeniu z usługą.

Ta zasada wybiera losowy przedział czasu (z rozdzielczością w milisekundach) w rosnącym oknie po sekwencji fibonacci do WEAVE_CONFIG_tuneING_RECONNECT_MAX_FIBONACCI_INDEX.

Szczegóły
Parametry
[in] appState
Wskaźnik stanu aplikacji ustawiony podczas inicjowania klienta SubscriptionClient.
[in] reconnectParam
Utwórz strukturę z parametrami, które mają wpływ na obliczanie opóźnienia ponownego połączenia.
[out] delayMsec
Czas oczekiwania przed kolejną próbą ponownego połączenia (w milisekundach).

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Moduł obsługi wywoływany po zamknięciu połączenia TCP usługi.

Urządzenie próbuje ponownie nawiązać połączenie z usługą, jeśli zasada mServiceConKeepAlive ma wartość true.

Następnie spróbuje ponownie nawiązać połączenie z Usługą.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] conErr
Jakikolwiek błąd w metodzie WeaveConnection lub WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Moduł obsługi wywoływany po zakończeniu połączenia z usługą TCP.

Urządzenie przechodzi z poziomu tej funkcji do inicjowania poleceń sterujących tunelu do usługi.

Urządzenie przechodzi z poziomu tej funkcji do inicjowania poleceń sterujących tunelu do usługi.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] conErr
Jakikolwiek błąd w metodzie WeaveConnection lub WEAVE_NO_ERROR.

RecvdFromService

void RecvdFromService(
  WeaveConnection *con,
  const WeaveMessageInfo *msgInfo,
  PacketBuffer *message
)

Moduł obsługi do odbierania tunelowanych pakietów IPv6 z połączenia TCP usługi i do interfejsu Tunnel EndPoint po usunięciu surowego pakietu IPv6 z nagłówka tunelu.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] message
Wskaźnik do obiektu PacketBuffer, w którym znajduje się tunelowany pakiet IPv6.

ServiceMgrStatusHandler

void ServiceMgrStatusHandler(
  void *appState,
  WEAVE_ERROR err,
  StatusReport *report
)

Moduł obsługi jest wywoływany, jeśli menedżerowi usługi nie udało się nawiązać połączenia TCP z usługą.