nl:: بافت:: پروفایل ها:: Weave Tunnel:: WeaveTunnelConnectionMgr

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

این کلاس تمام حالت های اتصال تونل Weave و منطق مدیریت و توابع مرتبط را در بر می گیرد.

خلاصه

نمونه ای از این کلاس برای مدیریت تونل روی هر واسط که از طریق آن تونل Weave به سرویس وجود دارد استفاده می شود.

سازندگان و ویرانگرها

WeaveTunnelConnectionMgr (void)

انواع عمومی

ConnectPolicyCallback )(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec) typedef
void(*
پاسخ به تماس برای واکشی فاصله زمانی برای انتظار قبل از اتصال مجدد تونل بعدی.
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
هنگامی که اتصال TCP سرویس بسته است، Handler فراخوانی می شود.
HandleServiceConnectionComplete ( WeaveConnection *con, WEAVE_ERROR conErr)
void
وقتی اتصال سرویس TCP تکمیل شد، هندلر فراخوانی می‌شود.
RecvdFromService ( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
void
Handler برای دریافت بسته های IPv6 تونل شده از اتصال Service TCP و ارسال به رابط Tunnel EndPoint پس از کپسوله کردن بسته IPv6 خام از داخل هدر تونل.
ServiceMgrStatusHandler (void *appState, WEAVE_ERROR err, StatusReport *report)
void
اگر مدیر سرویس نتواند اتصال TCP به سرویس را برقرار کند، Handler فراخوانی می‌کند.

انواع عمومی

ConnectPolicyCallback

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

پاسخ به تماس برای واکشی فاصله زمانی برای انتظار قبل از اتصال مجدد تونل بعدی.

جزئیات
پارامترها
[in] appState
نشانگر وضعیت برنامه در هنگام شروع اولیه SubscriptionClient تنظیم شد.
[in] reconnectParam
ساختار با پارامترهایی که بر محاسبه تاخیر اتصال مجدد تاثیر می گذارد.
[out] delayMsec
زمان انتظار بر حسب میلی ثانیه قبل از تلاش بعدی برای اتصال مجدد.

TunnelConnNotifyReasons

 TunnelConnNotifyReasons
خواص
kStatus_TunBackupConnError

برای نشان دادن اینکه تلاش برای اتصال تونل پشتیبان شکست خورده است یا یک مورد موجود به صورت محلی متوقف شده یا توسط همتا بسته شده است استفاده می شود.

kStatus_TunBackupLiveness

برای نشان دادن اطلاعات مربوط به پروب Tunnel Liveness در تونل Backup Weave استفاده می شود.

kStatus_TunBackupOnlyDown

برای نشان دادن خرابی تونل پشتیبان استفاده می شود.

kStatus_TunBackupReconnectRcvd

برای نشان دادن اینکه سرویس درخواست اتصال مجدد برای تونل Backup Weave را داده است استفاده می شود.

kStatus_TunBackupUp

برای نشان دادن بالا بودن تونل Backup Weave استفاده می شود.

kStatus_TunDown

برای نشان دادن اینکه تونل بافت پایین رفته است استفاده می شود.

kStatus_TunFailoverToBackup

برای نشان دادن اینکه تونل اولیه خراب است و جابجایی به تونل پشتیبان رخ داده است استفاده می شود.

kStatus_TunPrimaryAndBackupUp

برای نشان دادن اینکه هر دو تونل اولیه و پشتیبان بافت بالا هستند استفاده می شود.

kStatus_TunPrimaryConnError

برای نشان دادن اینکه تلاش برای اتصال تونل اولیه ناموفق بوده است یا تلاش موجود به صورت محلی توسط همتا متوقف شده یا بسته شده است استفاده می شود.

kStatus_TunPrimaryLiveness

برای نشان دادن اطلاعات مربوط به کاوشگر Tunnel Liveness در تونل اولیه بافت استفاده می شود.

kStatus_TunPrimaryReconnectRcvd

برای نشان دادن اینکه سرویس درخواست اتصال مجدد برای تونل اولیه بافت را داده است استفاده می شود.

kStatus_TunPrimaryUp

برای نشان دادن بالا بودن تونل بافت اولیه استفاده می شود.

TunnelConnNotifyReasons

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

TunnelConnectionState

 TunnelConnectionState
خواص
kState_Connecting

برای نشان دادن اینکه اتصال Weave Tunnel آغاز شده است استفاده می شود.

kState_ConnectionEstablished

برای نشان دادن اینکه اتصال تونل Weave برقرار است و اطلاعات مسیر در حال تبادل است استفاده می شود.

kState_NotConnected

برای نشان دادن عدم اتصال تونل بافت استفاده می شود.

kState_ReconnectRecvd

برای نشان دادن اینکه سرویس می خواهد دروازه مرزی پس از جستجوی دایرکتوری دوباره متصل شود استفاده می شود.

kState_TunnelClosing

برای نشان دادن بسته شدن تونل بافتنی و قطع شدن اتصال استفاده می شود.

kState_TunnelOpen

برای نشان دادن باز بودن و آماده بودن تونل بافتنی برای انتقال ترافیک داده استفاده می شود.

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
)

اجرای سیاست پیش‌فرض برای واکشی دفعه بعدی برای اتصال به سرویس.

این خط‌مشی یک شکاف زمانی تصادفی (با وضوح میلی‌ثانیه) را در یک پنجره رو به افزایش، به دنبال دنباله فیبوناچی تا WEAVE_CONFIG_TUNNELING_RECONNECT_MAX_FIBONACCI_INDEX انتخاب می‌کند.

جزئیات
پارامترها
[in] appState
نشانگر وضعیت برنامه در هنگام شروع اولیه SubscriptionClient تنظیم شد.
[in] reconnectParam
ساختار با پارامترهایی که بر محاسبه تاخیر اتصال مجدد تاثیر می گذارد.
[out] delayMsec
زمان انتظار بر حسب میلی ثانیه قبل از تلاش بعدی برای اتصال مجدد.

HandleServiceConnectionClosed

void HandleServiceConnectionClosed(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

هنگامی که اتصال TCP سرویس بسته است، Handler فراخوانی می شود.

اگر mServiceConKeepAlive روی true تنظیم شده باشد، دستگاه سعی می کند اتصال به سرویس را دوباره برقرار کند.

دستگاه متعاقباً سعی می کند اتصال به سرویس را دوباره برقرار کند.

جزئیات
پارامترها
[in] con
اشاره گر به شی WeaveConnection .
[in] conErr
هر گونه خطا در WeaveConnection یا WEAVE_NO_ERROR.

HandleServiceConnectionComplete

void HandleServiceConnectionComplete(
  WeaveConnection *con,
  WEAVE_ERROR conErr
)

وقتی اتصال سرویس TCP تکمیل شد، هندلر فراخوانی می‌شود.

دستگاه از این تابع دستورات کنترل تونل را به سرویس آغاز می کند.

دستگاه از این تابع دستورات کنترل تونل را به سرویس آغاز می کند.

جزئیات
پارامترها
[in] con
اشاره گر به شی WeaveConnection .
[in] conErr
هر گونه خطا در WeaveConnection یا WEAVE_NO_ERROR.

RecvdFromService

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

Handler برای دریافت بسته های IPv6 تونل شده از اتصال Service TCP و ارسال به رابط Tunnel EndPoint پس از کپسوله کردن بسته IPv6 خام از داخل هدر تونل.

جزئیات
پارامترها
[in] con
اشاره گر به شی WeaveConnection .
[in] msgInfo
یک اشاره گر به شی WeaveMessageInfo .
[in] message
یک اشاره گر به شی PacketBuffer که بسته IPv6 تونل شده را نگه می دارد.

ServiceMgrStatus Handler

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

اگر مدیر سرویس نتواند اتصال TCP به سرویس را برقرار کند، Handler فراخوانی می‌کند.