nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelConnectionMgr
#include <src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h>
Lớp này đóng gói tất cả trạng thái kết nối đường hầm Weave, logic và hàm quản lý liên quan.
Tóm tắt
Một thực thể của lớp này sẽ được dùng để quản lý đường hầm trên mỗi giao diện mà qua đó đường hầm Weave đến Dịch vụ sẽ tồn tại.
Hàm khởi tạo và hàm phá |
|
---|---|
WeaveTunnelConnectionMgr(void)
|
Loại công khai |
|
---|---|
ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
|
typedefvoid(*
Lệnh gọi lại để tìm nạp khoảng thời gian chờ trước khi đường hầm tiếp theo kết nối lại. |
TunnelConnNotifyReasons{
|
enum |
TunnelConnNotifyReasons
|
typedef |
TunnelConnectionState{
|
enum |
TunnelConnectionState
|
typedef |
Thuộc tính công khai |
|
---|---|
mServiceConnDelayPolicyCallback
|
Hàm công khai |
|
---|---|
Init(WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName)
|
Khởi chạy WeaveTunnelConnectionMgr.
|
ServiceTunnelClose(WEAVE_ERROR err)
|
void
Đóng Đường hầm dịch vụ.
|
SetInterfaceName(const char *intfName)
|
void
Đặt InterfaceName cho kết nối Đường hầm.
|
SetInterfaceType(const SrcInterfaceType srcIntfType)
|
void
Đặt SrcInterfaceType cho kết nối Đường hầm.
|
Shutdown(void)
|
void
|
StopAndReconnectTunnelConn(ReconnectParam & reconnParam)
|
void
Dừng kết nối Đường hầm dịch vụ rồi thử kết nối lại.
|
TryConnectingNow(void)
|
Cố gắng thiết lập kết nối với Dịch vụ.
|
Hàm tĩnh công khai |
|
---|---|
DefaultReconnectPolicyCallback(void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec)
|
void
Phương thức triển khai chính sách mặc định để tìm nạp lần kết nối tiếp theo với Dịch vụ.
|
HandleServiceConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Trình xử lý được gọi khi kết nối Service TCP kết nối.
|
HandleServiceConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
|
void
Trình xử lý được gọi khi hoàn tất kết nối Service TCP kết nối.
|
RecvdFromService(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message)
|
void
Trình xử lý để nhận các gói IPv6 được phân luồng từ kết nối Service TCP và chuyển tiếp tới giao diện Tunnel EndPoint sau khi phân giải gói IPv6 thô từ bên trong tiêu đề đường hầm.
|
ServiceMgrStatusHandler(void *appState, WEAVE_ERROR err, StatusReport *report)
|
void
Trình xử lý được gọi nếu Trình quản lý dịch vụ không thiết lập được kết nối TCP với Dịch vụ.
|
Loại công khai
ConnectPolicyCallback
void(* ConnectPolicyCallback)(void *const appState, ReconnectParam &reconnectParam, uint32_t &delayMsec)
Lệnh gọi lại để tìm nạp khoảng thời gian chờ trước khi đường hầm tiếp theo kết nối lại.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các tham số |
|
TunnelConnNotifyReasons
TunnelConnNotifyReasons
Thuộc tính | |
---|---|
kStatus_TunBackupConnError
|
Dùng để thông báo kết nối đường hầm sao lưu không thành công hoặc một kết nối hiện có đã bị ứng dụng ngang hàng huỷ hoặc đóng cục bộ. |
kStatus_TunBackupLiveness
|
Dùng để biểu thị thông tin về thăm dò Tunnel Liveness trên đường hầm Backup Weave. |
kStatus_TunBackupOnlyDown
|
Dùng để cho biết đường hầm sao lưu bị gián đoạn. |
kStatus_TunBackupReconnectRcvd
|
Dùng để cho biết Dịch vụ đã yêu cầu kết nối lại cho đường hầm Sao lưu Weave. |
kStatus_TunBackupUp
|
Dùng để cho biết đường hầm Sao lưu của Weave đang đi lên. |
kStatus_TunDown
|
Dùng để cho biết đường hầm Weave đã bị sập. |
kStatus_TunFailoverToBackup
|
Được dùng để thông báo rằng đường hầm chính bị gián đoạn và đang chuyển sang đường hầm dự phòng. |
kStatus_TunPrimaryAndBackupUp
|
Dùng để cho biết cả đường hầm Chính và đường hầm Dệt dự phòng đều hoạt động. |
kStatus_TunPrimaryConnError
|
Dùng để cho biết rằng một cố gắng kết nối đường hầm chính đã không thành công hoặc một kết nối hiện có đã bị trình ngang hàng huỷ hoặc đóng cục bộ. |
kStatus_TunPrimaryLiveness
|
Dùng để thể hiện thông tin về tàu thăm dò Tunnel Liveness trên đường hầm Main Weave. |
kStatus_TunPrimaryReconnectRcvd
|
Dùng để cho biết Dịch vụ đã yêu cầu kết nối lại cho đường hầm Weave chính. |
kStatus_TunPrimaryUp
|
Dùng để cho biết đường hầm Weave chính đang đi lên. |
TunnelConnNotifyReasons
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnNotifyReasons TunnelConnNotifyReasons
TunnelConnectionState
TunnelConnectionState
Thuộc tính | |
---|---|
kState_Connecting
|
Dùng để cho biết kết nối Weave Tunnel đã được bắt đầu. |
kState_ConnectionEstablished
|
Dùng để chỉ báo kết nối Weave Tunnel đã được thiết lập và thông tin tuyến đường đang được trao đổi. |
kState_NotConnected
|
Dùng để cho biết rằng Đường hầm dệt chưa được kết nối. |
kState_ReconnectRecvd
|
Dùng để cho biết rằng Dịch vụ muốn cổng biên giới kết nối lại sau khi tra cứu thư mục. |
kState_TunnelClosing
|
Dùng để cho biết rằng đường hầm Weave Tunnel đang đóng và kết nối đang bị tháo ra. |
kState_TunnelOpen
|
Dùng để cho biết rằng đường Weave Tunnel đã được mở và sẵn sàng cho việc chuyển giao lưu lượng dữ liệu. |
TunnelConnectionState
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr::TunnelConnectionState TunnelConnectionState
Thuộc tính công khai
mServiceConnDelayPolicyCallback
ConnectPolicyCallback mServiceConnDelayPolicyCallback
Hàm công khai
Bắt đầu
WEAVE_ERROR Init( WeaveTunnelAgent *tunAgent, TunnelType tunType, SrcInterfaceType srcIntfType, const char *connIntfName )
Khởi chạy WeaveTunnelConnectionMgr.
ServiceTunnelClose
void ServiceTunnelClose( WEAVE_ERROR err )
Đóng Đường hầm dịch vụ.
Thông tin chi tiết | |||
---|---|---|---|
Các tham số |
|
SetInterfaceName
void SetInterfaceName( const char *intfName )
Đặt InterfaceName cho kết nối Đường hầm.
Thông tin chi tiết | |||
---|---|---|---|
Các tham số |
|
SetInterfaceType
void SetInterfaceType( const SrcInterfaceType srcIntfType )
Đặt SrcInterfaceType cho kết nối Đường hầm.
Thông tin chi tiết | |||
---|---|---|---|
Các tham số |
|
StopAndReconnectTunnelConn
void StopAndReconnectTunnelConn( ReconnectParam & reconnParam )
Dừng kết nối Đường hầm dịch vụ rồi thử kết nối lại.
Thông tin chi tiết | |||
---|---|---|---|
Các tham số |
|
TryConnectingNow
WEAVE_ERROR TryConnectingNow( void )
Cố gắng thiết lập kết nối với Dịch vụ.
Thử thiết lập kết nối với Dịch vụ bằng ServiceManager hoặc trực tiếp.
WeaveTunnelConnectionMgr
WeaveTunnelConnectionMgr( void )
Hàm tĩnh công khai
DefaultReconnectPolicyCallback
void DefaultReconnectPolicyCallback( void *const appstate, ReconnectParam & reconnectParam, uint32_t & delayMsec )
Phương thức triển khai chính sách mặc định để tìm nạp lần kết nối tiếp theo với Dịch vụ.
Chính sách này chọn một khe thời gian ngẫu nhiên (có độ phân giải mili giây) trong khoảng thời gian tăng dần, theo sau một trình tự fibonacci tối đa WEAVE_CONFIG_TSUBSCRIPTIONING_RECONNECT_MAX_FIBONACCI_INDEX.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các tham số |
|
HandleServiceConnectionClosed
void HandleServiceConnectionClosed( WeaveConnection *con, WEAVE_ERROR conErr )
Trình xử lý được gọi khi kết nối Service TCP kết nối.
Thiết bị cố gắng thiết lập lại kết nối với Dịch vụ nếu mServiceConKeepAlive được đặt thành true.
Sau đó, thiết bị sẽ cố gắng thiết lập lại kết nối với Dịch vụ.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
HandleServiceConnectionComplete
void HandleServiceConnectionComplete( WeaveConnection *con, WEAVE_ERROR conErr )
Trình xử lý được gọi khi hoàn tất kết nối Service TCP kết nối.
Thiết bị tiếp tục khởi động các lệnh điều khiển Đường hầm đến Dịch vụ qua chức năng này.
Thiết bị tiếp tục khởi động các lệnh điều khiển Đường hầm đến Dịch vụ qua chức năng này.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
RecvdFromService
void RecvdFromService( WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *message )
Trình xử lý để nhận các gói IPv6 được phân luồng từ kết nối Service TCP và chuyển tiếp tới giao diện Tunnel EndPoint sau khi phân giải gói IPv6 thô từ bên trong tiêu đề đường hầm.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các tham số |
|
ServiceMgrStatusHandler
void ServiceMgrStatusHandler( void *appState, WEAVE_ERROR err, StatusReport *report )
Trình xử lý được gọi nếu Trình quản lý dịch vụ không thiết lập được kết nối TCP với Dịch vụ.