nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelAgent
摘要
建構函式和解構函式 |
|
---|---|
WeaveTunnelAgent(void)
|
公開類型 |
|
---|---|
AgentState{
|
列舉 通道代理程式與服務連線的狀態。 |
AgentState
|
typedef 通道代理程式與服務連線的狀態。 |
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)
|
typedefvoid(*
從服務收到 Tunnel Reconnect 時,套用至較高層設定的處理常式的函式指標。 |
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)
|
typedefvoid(*
由較高層設定的處理常式函式指標,用於處理與通道與 Service 相關的各種通知。 |
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)
|
typedefvoid(*
用於執行網路層級線上檢查的應用程式所提供的處理常式的函式指標。 |
WeaveTunnelFlags{
|
列舉 Weave Tunnel 標記位元。 |
WeaveTunnelFlags
|
typedef Weave Tunnel 標記位元。 |
公開屬性 |
|
---|---|
NetworkOnlineCheck
|
|
OnServiceTunReconnectNotify
|
|
OnServiceTunStatusNotify
|
由較高層設定的處理常式函式指標,用於處理與通道與 Service 相關的各種通知。
|
mServiceMgr
|
WeaveServiceManager *
用於查詢和連線至 Service 的服務管理工具指標。
|
公開函式 |
|
---|---|
DisablePrimaryTunnel(void)
|
void
停用主要通道。
|
EnablePrimaryTunnel(void)
|
void
啟用主要通道。
|
GetAgentStateName(const AgentState state)
|
const char *
取得 WeaveTunnelAgentState 名稱。
|
GetTimeMsec(void)
|
uint64_t
取得系統時間 (以毫秒為單位)。
|
GetWeaveTunnelAgentState(void)
|
取得 TunnelAgent 狀態。
|
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext)
|
初始化 Tunnel 代理程式。
|
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
|
初始化 Tunnel 代理程式。
|
IsPrimaryTunnelEnabled(void) const
|
bool
檢查是否已啟用主要通道。
|
IsPrimaryTunnelRoutingRestricted(void)
|
bool
檢查主要通道是否受到服務轉送限制。
|
IsTunnelRoutingRestricted(void)
|
bool
檢查通道是否受到服務的轉送限制規範。
|
NetworkOnlineCheckResult(TunnelType tunType, bool isOnline)
|
void
可使用網路線上檢查工具的結果時,平台叫用的回呼。
|
ResetPrimaryReconnectBackoff(bool reconnectImmediately)
|
重設主要通道的重新連線時間。
|
SetAuthMode(const WeaveAuthMode authMode)
|
void
設定通道的 WeaveAuthMode。
|
SetDestination(const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort)
|
void
設定通道的目的地 nodeId、IPAddress 和通訊埠。
|
SetTunnelingDeviceRole(const Role role)
|
void
設定 Tunnel 的 Tunneling 裝置角色(BorderGateway、獨立裝置、MobileDevice)。
|
Shutdown(void)
|
關閉通道代理程式。
|
StartServiceTunnel(void)
|
啟動服務通道。
|
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
|
啟動服務通道。
|
StopServiceTunnel(void)
|
void
關閉與服務的通道連線。
|
StopServiceTunnel(WEAVE_ERROR err)
|
void
關閉與服務的通道連線。
|
公開的靜態函式 |
|
---|---|
RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
|
void
在邊界閘道和行動裝置之間的捷徑 UDP 通道接收通道 IPv6 封包的處理常式,並在將原始 IPv6 封包從通道標頭中解除封裝後,轉送至 Tunnel EndPoint 介面。
|
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
|
void
在通道標頭中封裝 IPv6 封包後,用於接收從 Tunnel EndPoint 介面接收 IPv6 封包並轉送至服務的處理常式,以及在通道標頭中封裝 IPv6 封包,或是透過快速通道傳送至行動裝置用戶端。
|
公開類型
AgentState
AgentState
通道代理程式與服務連線的狀態。
屬性 | |
---|---|
kState_BkupOnlyTunModeEstablished
|
用來表示已建立服務的備份通道。 |
kState_Initialized_NoTunnel
|
用於表示通道代理程式已初始化,但尚未建立任何通道。 |
kState_NotInitialized
|
表示通道代理程式未初始化。 |
kState_PrimaryAndBkupTunModeEstablished
|
用於表示主要通道和備份通道已建立。 |
kState_PrimaryTunModeEstablished
|
用來表示已建立服務的主要通道。 |
AgentState
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::AgentState AgentState
通道代理程式與服務連線的狀態。
OnServiceTunnelReconnectNotifyFunct
void(* OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)
從服務收到 Tunnel Reconnect 時,套用至較高層設定的處理常式的函式指標。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
OnServiceTunnelStatusNotifyFunct
void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)
由較高層設定的處理常式函式指標,用於處理與通道與 Service 相關的各種通知。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
PlatformNetworkOnlineCheck
void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)
用於執行網路層級線上檢查的應用程式所提供的處理常式的函式指標。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
WeaveTunnelFlags
WeaveTunnelFlags
Weave Tunnel 標記位元。
屬性 | |
---|---|
kTunnelFlag_BackupEnabled
|
在啟用備份通道時設定。 |
kTunnelFlag_BackupRestricted
|
在備份通道受到轉送限制時設定。 |
kTunnelFlag_PrimaryEnabled
|
在啟用主要通道時設定。 |
kTunnelFlag_PrimaryRestricted
|
在主要通道受到轉送限制時設定。 |
WeaveTunnelFlags
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::WeaveTunnelFlags WeaveTunnelFlags
Weave Tunnel 標記位元。
公開屬性
NetworkOnlineCheck
PlatformNetworkOnlineCheck NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify
OnServiceTunStatusNotify
OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify
由較高層設定的處理常式函式指標,用於處理與通道與 Service 相關的各種通知。
mServiceMgr
WeaveServiceManager * mServiceMgr
用於查詢和連線至 Service 的服務管理工具指標。
公開函式
DisablePrimaryTunnel
void DisablePrimaryTunnel( void )
停用主要通道。
停用主要通道。
EnablePrimaryTunnel
void EnablePrimaryTunnel( void )
啟用主要通道。
啟用主要通道。
GetAgentStateName
const char * GetAgentStateName( const AgentState state )
取得 WeaveTunnelAgentState 名稱。
GetTimeMsec
uint64_t GetTimeMsec( void )
取得系統時間 (以毫秒為單位)。
在無法使用系統時間的情況下,取得以毫秒為單位的系統時間或單調時間。
,瞭解如何調查及移除這項存取權。GetWeaveTunnelAgentState
AgentState GetWeaveTunnelAgentState( void )
Init
WEAVE_ERROR Init( InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, WeaveAuthMode authMode, WeaveServiceManager *svcMgr, const char *intfName, uint8_t role, void *appContext )
初始化 Tunnel 代理程式。
這項操作會建立 te Tunnel 端點物件,設定通道介面、初始化成員變數、回呼和 WeaveTunnelControl。
Init
WEAVE_ERROR Init( InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext )
初始化 Tunnel 代理程式。
這項操作會建立 te Tunnel 端點物件,設定通道介面、初始化成員變數、回呼和 WeaveTunnelControl。
IsPrimaryTunnelEnabled
bool IsPrimaryTunnelEnabled( void ) const
檢查是否已啟用主要通道。
詳細資料 | |
---|---|
傳回 |
如果已啟用,則為 true,否則為 false。
|
IsPrimaryTunnelRoutingRestricted
bool IsPrimaryTunnelRoutingRestricted( void )
檢查主要通道是否受到服務轉送限制。
確認主要通道是否受到轉送限制。
詳細資料 | |
---|---|
傳回 |
如果主要通道已建立,但受到服務的轉送限制,則傳回 true。
|
IsTunnelRoutingRestricted
bool IsTunnelRoutingRestricted( void )
檢查通道是否受到服務的轉送限制規範。
確認通道是否受到轉送限制規範。
詳細資料 | |
---|---|
傳回 |
如果主要或備用通道已建立,並且受到服務的轉送限制限制,則為 true。
|
NetworkOnlineCheckResult
void NetworkOnlineCheckResult( TunnelType tunType, bool isOnline )
可使用網路線上檢查工具的結果時,平台叫用的回呼。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
ResetPrimaryReconnectBackoff
WEAVE_ERROR ResetPrimaryReconnectBackoff( bool reconnectImmediately )
重設主要通道的重新連線時間。
詳細資料 | |||
---|---|---|---|
參數 |
|
SetAuthMode
void SetAuthMode( const WeaveAuthMode authMode )
設定通道的 WeaveAuthMode。
詳細資料 | |||
---|---|---|---|
參數 |
|
SetDestination
void SetDestination( const uint64_t nodeId, const IPAddress ipAddr, const uint16_t servicePort )
設定通道的目的地 nodeId、IPAddress 和通訊埠。
設定通道的目的地 nodeId 和 IPAddress。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
SetTunnelingDeviceRole
void SetTunnelingDeviceRole( const Role role )
設定 Tunnel 的 Tunneling 裝置角色(BorderGateway、獨立裝置、MobileDevice)。
設定通道的通道裝置角色(BorderGateway 與獨立)。
詳細資料 | |||
---|---|---|---|
參數 |
|
關閉
WEAVE_ERROR Shutdown( void )
關閉通道代理程式。
移除與通道介面相關聯的地址和路徑後,會中斷與 Service 的連線並關閉 TunEndPoint 介面。
移除與通道介面相關聯的地址和路徑後,會中斷與 Service 的連線並關閉 TunEndPoint 介面。
詳細資料 | |
---|---|
傳回 |
成功時 WEAVE_NO_ERROR,否則會對應 WEAVE_ERROR 類型。
|
StartServiceTunnel
WEAVE_ERROR StartServiceTunnel( void )
啟動服務通道。
這會啟用通道並嘗試建立與服務的連線。
這會嘗試連線至服務,也會設定前往通道介面的布料路徑。
詳細資料 | |
---|---|
傳回 |
成功時 WEAVE_NO_ERROR,否則會對應 WEAVE_ERROR 類型。
|
StartServiceTunnel
WEAVE_ERROR StartServiceTunnel( uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode )
啟動服務通道。
這會啟用通道並嘗試建立與服務的連線。
StopServiceTunnel
void StopServiceTunnel( void )
關閉與服務的通道連線。
StopServiceTunnel
void StopServiceTunnel( WEAVE_ERROR err )
關閉與服務的通道連線。
詳細資料 | |||
---|---|---|---|
參數 |
|
WeaveTunnelAgent
WeaveTunnelAgent( void )
公開的靜態函式
RecvdFromShortcutUDPTunnel
void RecvdFromShortcutUDPTunnel( WeaveMessageLayer *msgLayer, PacketBuffer *message )
在邊界閘道和行動裝置之間的捷徑 UDP 通道接收通道 IPv6 封包的處理常式,並在將原始 IPv6 封包從通道標頭中解除封裝後,轉送至 Tunnel EndPoint 介面。
這個處理常式從通道標頭內部解壓縮原始 IPv6 封包後,可接收來自 Service TCP 連線的通道 IPv6 封包,並轉送至 Tunnel EndPoint 介面。
詳細資料 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
RecvdFromTunnelEndPoint
void RecvdFromTunnelEndPoint( TunEndPoint *tunEP, PacketBuffer *message )
在通道標頭中封裝 IPv6 封包後,用於接收從 Tunnel EndPoint 介面接收 IPv6 封包並轉送至服務的處理常式,以及在通道標頭中封裝 IPv6 封包,或是透過快速通道傳送至行動裝置用戶端。
在通道標頭中封裝 IPv6 封包後,用於接收從 Tunnel EndPoint 介面接收 IPv6 封包並轉送至服務的處理常式,以及在通道標頭中封裝 IPv6 封包,或透過本機通道接收行動用戶端。
如果尚未設定服務連線,訊息會排入佇列,直到連線設定完成為止。針對通道連至行動裝置用戶端裝置,請參考下一個躍點資料表。
如果尚未設定服務連線,訊息會排入佇列,直到連線設定完成為止。針對通道連至行動裝置用戶端裝置,請參考下一個躍點資料表。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|