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

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

Ta klasa zawiera wszystkie stany połączenia tunelu Weave oraz powiązaną logikę i funkcje zarządzania.

Podsumowanie

Instancja tej klasy była używana do zarządzania tunelem za pomocą każdego interfejsu, za pomocą którego istniałby tunel Weave do usługi.

Konstruktory i niszczyciele

WeaveTunnelConnectionMgr(void)

Typy publiczne

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
Wywołanie zwrotne pozwalające pobrać odstęp czasu oczekiwania przed ponownym połączeniem z następnym tunelem.
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 interfejs WeaveTunnelConnectionMgr.
ServiceTunnelClose(WEAVE_ERROR err)
void
Zamknij tunel usługi.
SetInterfaceName(const char *intfName)
void
Ustaw interfejs InterfaceName dla połączenia przez tunel.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
Ustaw SrcInterfaceType w przypadku połączenia przez tunel.
Shutdown(void)
void
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
Zatrzymaj połączenie przez tunel usługi i spróbuj połączyć się ponownie.
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 zasady, która będzie używana do pobierania przy następnym połączeniu z Usługą.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
Moduł obsługi jest wywoływany po zamknięciu połączenia TCP usługi.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Moduł obsługi został wywołany 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 przekazywania ich do interfejsu punktu końcowego tunelu po usunięciu nieprzetworzonego 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ług 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 pozwalające pobrać odstęp czasu oczekiwania przed ponownym połączeniem z następnym tunelem.

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

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
Właściwości
kStatus_TunBackupConnError

Służy do wskazywania, że próba połączenia z tunelem zapasowym się nie udała albo istniejące połączenie zostało lokalnie przerwane lub zamknięte przez połączenie równorzędne.

kStatus_TunBackupLiveness

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

kStatus_TunBackupOnlyDown

Służy do wskazywania, że tunel zapasowy nie działa.

kStatus_TunBackupReconnectRcvd

Służy do wskazywania, że usługa poprosiła o ponowne połączenie dla tunelu Backup Weave.

kStatus_TunBackupUp

Służy do wskazywania, że tunel Backup Weave jest aktywny.

kStatus_TunDown

Wskazuje, że tunel Weave uległ awarii.

kStatus_TunFailoverToBackup

Służy do wskazania, że tunel główny nie działa i wystąpiło przełączenie na tunel zapasowy.

kStatus_TunPrimaryAndBackupUp

Służy do wskazywania, że tunel Primary i Backup Weave jest aktywny.

kStatus_TunPrimaryConnError

Służy do wskazania, że próba nawiązania połączenia przez tunel główny nie powiodła się albo istniejące połączenie zostało lokalnie przerwane lub zamknięte przez połączenie równorzędne.

kStatus_TunPrimaryLiveness

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

kStatus_TunPrimaryReconnectRcvd

Służy do wskazania, że usługa poprosiła o ponowne połączenie dla głównego tunelu Weave.

kStatus_TunPrimaryUp

Służy do wskazywania, że podstawowy 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 wskazania, że połączenie Weave Tunnel zostało zainicjowane.

kState_ConnectionEstablished

Służy do wskazywania, że nawiązano połączenie Weave Tunnel i są wymieniane informacje o trasie.

kState_NotConnected

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

kState_ReconnectRecvd

Służy do wskazywania, że usługa chce połączyć się ponownie po przeprowadzeniu wyszukiwania w katalogu przez bramę graniczną.

kState_TunnelClosing

Służy do wskazywania, że tunel Weave Tunnel jest zamykany, a połączenie jest zerwane.

kState_TunnelOpen

Wskazuje, ż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

Init

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

Zainicjuj interfejs WeaveTunnelConnectionMgr.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

Zamknij tunel usługi.

.

Szczegóły
Parametry
[in] err
Sygnał WEAVE_ERROR przekazany z urządzenia wywołującego.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

Ustaw interfejs InterfaceName dla połączenia przez tunel.

Szczegóły
Parametry
[in] tunIntf
Interfejs InterfaceName do ustawiania połączenia przez tunel usługi.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

Ustaw SrcInterfaceType w przypadku połączenia przez tunel.

Szczegóły
Parametry
[in] srcIntfType
Typ technologii sieciowej interfejsu połączenia 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ę ponownie.

Szczegóły
Parametry
[in] err
Sygnał WEAVE_ERROR przekazany z urządzenia wywołującego.

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ą ServiceManagera lub bezpośrednio.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

Publiczne funkcje statyczne

DefaultReconnectPolicyCallback

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

Domyślna implementacja zasady, która będzie używana do pobierania przy następnym połączeniu z Usługą.

Ta zasada wybiera losowy przedział czasu (z rozdzielczością milisekundową) w rosnącym oknie, zgodnie z sekwencją Fibonacciego do WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX.

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

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Moduł obsługi jest 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 (prawda).

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

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

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

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

Urządzenie będzie teraz inicjować polecenia sterowania tunelem dla Usługi z poziomu tej funkcji.

Urządzenie będzie teraz inicjować polecenia sterowania tunelem dla Usługi z poziomu tej funkcji.

Szczegóły
Parametry
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] conErr
Dowolny błąd w elemencie 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 przekazywania ich do interfejsu punktu końcowego tunelu po usunięciu nieprzetworzonego 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 zawierającego tunelowany pakiet IPv6.

ServiceMgrStatusHandler

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

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