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

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

בשיעור הזה מפורטים כל מצבי החיבור של מנהרת Weave והלוגיקה והפונקציות של הניהול.

סיכום

מופע של המחלקה הזו ישמש לניהול המנהרה בכל ממשק שדרכו תהיה מנהרת Weave לשירות.

בונים והורסים

WeaveTunnelConnectionMgr(void)

סוגים ציבוריים

ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
קריאה חוזרת (callback) כדי לאחזר את פרק הזמן שצריך להמתין עד שהמנהרה הבאה תחובר מחדש.
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)
TunnelConnNotifyReasons typedef
TunnelConnectionState{
  kState_NotConnected = 0,
  kState_Connecting = 1,
  kState_ConnectionEstablished = 2,
  kState_TunnelOpen = 3,
  kState_TunnelClosing = 4,
  kState_ReconnectRecvd = 5
}
טיפוסים בני מנייה (enum)
TunnelConnectionState typedef

מאפיינים ציבוריים

mServiceConnDelayPolicyCallback

תפקידים ציבוריים

Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
מפעילים את WeaveTunnelConnectionMgr.
ServiceTunnelClose(WEAVE_ERROR err)
void
סוגרים את מנהרת השירות.
SetInterfaceName(const char *intfName)
void
הגדר את ממשק InterfaceName עבור חיבור מנהרה.
SetInterfaceType(const SrcInterfaceType srcIntfType)
void
מגדירים את SrcInterfaceType לחיבור למנהרה.
Shutdown(void)
void
משביתים את WeaveTunnelConnectionMgr.
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
void
יש להפסיק את החיבור למנהרת השירות ולנסות להתחבר שוב.
TryConnectingNow(void)
לנסות ליצור חיבור לשירות.

פונקציות סטטיות ציבוריות

DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
void
הטמעת המדיניות המוגדרת כברירת מחדל לאחזור בפעם הבאה שתתחבר לשירות.
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
void
אפליקציית ה-handler הופעלה כשחיבור ה-Service TCP נסגר.
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
void
Handler הופעל כשחיבור ה-Service TCP הושלם.
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
מטפל לקבלת מנות IPv6 מנהרות מחיבור ה-Service TCP והעברה לממשק EndPoint של Tunnel לאחר ביטול הפתיחה של חבילת IPv6 הגולמית מתוך כותרת המנהרה.
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
void
Handler הופעל אם יצירת חיבור ה-TCP לשירות לא נוצרה על ידי מנהל השירות.

סוגים ציבוריים

ConnectPolicyCallback

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

קריאה חוזרת (callback) כדי לאחזר את פרק הזמן שצריך להמתין עד שהמנהרה הבאה תחובר מחדש.

פרטים
פרמטרים
[in] appState
מצביע למצב האפליקציה מוגדר במהלך האתחול של SubscriptionClient.
[in] reconnectParam
מבנה עם פרמטרים שמשפיעים על חישוב העיכוב בחיבור מחדש.
[out] delayMsec
משך הזמן באלפיות השנייה של המתנה לפני ניסיון ההתחברות הבא מחדש.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
תכונות
kStatus_TunBackupConnError

משמש לציון ניסיון חיבור למנהרת גיבוי נכשל או שניסיון קיים בוטל או נסגר באופן מקומי על ידי אפליקציה להשוואה.

kStatus_TunBackupLiveness

משמש לציון מידע על גשושית Tunnel Liveness במנהרת הגיבוי Weave.

kStatus_TunBackupOnlyDown

משמש כדי לציין שמנהרת הגיבוי מושבתת.

kStatus_TunBackupReconnectRcvd

משמש כדי לציין שהשירות ביקש חיבור מחדש של מנהרת הגיבוי Weave.

kStatus_TunBackupUp

משמש לציון מנהרת הגיבוי Weave.

kStatus_TunDown

משמש לציון מנהרת Weave הוסרה.

kStatus_TunFailoverToBackup

הודעה שמציינת שהמנהרה הראשית מושבתת ואירעה מעבר למנהרת גיבוי.

kStatus_TunPrimaryAndBackupUp

משמש כדי לציין שגם המנהרה 'ראשי' וגם 'מנהרת הגיבוי' מוצגת.

kStatus_TunPrimaryConnError

הודעה שמשמשת כדי לציין שניסיון חיבור ראשי במנהרה נכשל או שניסיון קיים בוטל או נסגר באופן מקומי על ידי אפליקציה להשוואה.

kStatus_TunPrimaryLiveness

משמש לציון מידע על גשושית 'חיי המנהרה' במנהרת המארג הראשי.

kStatus_TunPrimaryReconnectRcvd

משמש לציון שהשירות ביקש חיבור מחדש של מנהרת Weave הראשית.

kStatus_TunPrimaryUp

משמש לציון מנהרת Weave הראשית.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
תכונות
kState_Connecting

משמש כדי לציין שחיבור מנהרת Weave הופעל.

kState_ConnectionEstablished

משמש כדי לציין שהתבצע חיבור של מנהרת Weave ומתבצע חילופי מידע על המסלול.

kState_NotConnected

משמש כדי לציין שמנהרת Weave לא מחוברת.

kState_ReconnectRecvd

הערך הזה מציין שהשירות רוצה ששער הגבולות יתחבר מחדש אחרי חיפוש בספרייה.

kState_TunnelClosing

משמש לציון מנהרת ה-Weave נסגרת והחיבור מתנתק.

kState_TunnelOpen

משמש כדי לציין שמנהרת Weave פתוחה ומוכנה להעברת תנועת נתונים.

TunnelConnectionState

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

מאפיינים ציבוריים

mServiceConnDelayPolicyCallback

ConnectPolicyCallback mServiceConnDelayPolicyCallback

תפקידים ציבוריים

הפעלה

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

מפעילים את WeaveTunnelConnectionMgr.

ServiceTunnelClose

void ServiceTunnelClose(
  WEAVE_ERROR err
)

סוגרים את מנהרת השירות.

פרטים
פרמטרים
[in] err
הודעת WEAVE_ERROR הועברה מהמתקשר.

SetInterfaceName

void SetInterfaceName(
  const char *intfName
)

הגדר את ממשק InterfaceName עבור חיבור מנהרה.

פרטים
פרמטרים
[in] tunIntf
הממשק InterfaceName להגדרת החיבור של מנהרת השירות.

SetInterfaceType

void SetInterfaceType(
  const SrcInterfaceType srcIntfType
)

מגדירים את SrcInterfaceType לחיבור למנהרה.

פרטים
פרמטרים
[in] srcIntfType
הסוג של טכנולוגיית הרשת בממשק של חיבור מנהרת שירות.

כיבוי

void Shutdown(
  void
)

משביתים את WeaveTunnelConnectionMgr.

StopAndReconnectTunnelConn

void StopAndReconnectTunnelConn(
  ReconnectParam & reconnParam
)

יש להפסיק את החיבור למנהרת השירות ולנסות להתחבר שוב.

פרטים
פרמטרים
[in] err
הודעת WEAVE_ERROR הועברה מהמתקשר.

TryConnectingNow

WEAVE_ERROR TryConnectingNow(
  void
)

לנסות ליצור חיבור לשירות.

אפשר לנסות ליצור חיבור לשירות באמצעות ServiceManager או באופן ישיר.

WeaveTunnelConnectionMgr

 WeaveTunnelConnectionMgr(
  void
)

פונקציות סטטיות ציבוריות

DefaultReconnectPolicyCallback

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

הטמעת המדיניות המוגדרת כברירת מחדל לאחזור בפעם הבאה שתתחבר לשירות.

המדיניות הזו בוחרת משבצת זמן אקראית (ברזולוציה של אלפית שנייה) בחלון שהולך וגדל, לפי רצף פיבונאצ'י עד ל-WAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX.

פרטים
פרמטרים
[in] appState
מצביע למצב האפליקציה מוגדר במהלך האתחול של SubscriptionClient.
[in] reconnectParam
מבנה עם פרמטרים שמשפיעים על חישוב העיכוב בחיבור מחדש.
[out] delayMsec
משך הזמן באלפיות השנייה של המתנה לפני ניסיון ההתחברות הבא מחדש.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

אפליקציית ה-handler הופעלה כשחיבור ה-Service TCP נסגר.

המכשיר מנסה ליצור מחדש את החיבור לשירות אם הערך של mServiceConKeepAlive מוגדר כ-true.

לאחר מכן, המכשיר ינסה ליצור מחדש את החיבור לשירות.

פרטים
פרמטרים
[in] con
מצביע לאובייקט WeaveConnection.
[in] conErr
כל שגיאה ב-WeaveConnection או ב-WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

Handler הופעל כשחיבור ה-Service TCP הושלם.

המכשיר ימשיך לבצע פקודות של בקרת מנהרה לשירות מהפונקציה הזו.

המכשיר ימשיך לבצע פקודות של בקרת מנהרה לשירות מהפונקציה הזו.

פרטים
פרמטרים
[in] con
מצביע לאובייקט WeaveConnection.
[in] conErr
כל שגיאה ב-WeaveConnection או ב-WEAVE_NO_ERROR.

RecvdFromService

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

מטפל לקבלת מנות IPv6 מנהרות מחיבור ה-Service TCP והעברה לממשק EndPoint של Tunnel לאחר ביטול הפתיחה של חבילת IPv6 הגולמית מתוך כותרת המנהרה.

פרטים
פרמטרים
[in] con
מצביע לאובייקט WeaveConnection.
[in] msgInfo
מצביע אל האובייקט WeaveMessageInfo.
[in] message
מצביע אל האובייקט PacketBuffer המכיל את חבילת IPv6 המנותבת.

ServiceMgrStatusHandler

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

Handler הופעל אם יצירת חיבור ה-TCP לשירות לא נוצרה על ידי מנהל השירות.