nl:: Weave:: Profiles:: WeaveTunnel:: WeaveTunnelAgent
摘要
建構函式和解構函式 |
|
---|---|
WeaveTunnelAgent(void)
|
公開類型 |
|
---|---|
AgentState{
|
列舉 通道代理程式的狀態(與服務間的連線相關)。 |
AgentState
|
typedef 通道代理程式的狀態(與服務間的連線相關)。 |
OnServiceTunnelReconnectNotifyFunct)(TunnelType tunType, const char *reconnectHost, const uint16_t reconnectPort, void *appCtxt)
|
typedefvoid(*
從 Service 接收通道重新連線時,由更高層設定的處理常式的函式指標。 |
OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)
|
typedefvoid(*
由較高層設定的處理常式的函式指標,用於處理與 Service 的通道相關的各種通知。 |
PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)
|
typedefvoid(*
應用程式為執行網路層級檢查而提供的處理常式的函式指標。 |
WeaveTunnelFlags{
|
列舉 編織通道標記位元。 |
WeaveTunnelFlags
|
typedef 編織通道標記位元。 |
公開屬性 |
|
---|---|
NetworkOnlineCheck
|
|
OnServiceTunReconnectNotify
|
|
OnServiceTunStatusNotify
|
由較高層設定的處理常式的函式指標,用於處理與 Service 的通道相關的各種通知。
|
mServiceMgr
|
WeaveServiceManager *
用於查詢及連線至 Service 的 Service Manager 指標。
|
公用函式 |
|
---|---|
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)
|
初始化通道代理程式。
|
Init(InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext)
|
初始化通道代理程式。
|
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
設定通道的 Tunneling 裝置角色(BorderGateway、 StandaloneDevice、MobileDevice)。
|
Shutdown(void)
|
關閉通道代理程式。
|
StartServiceTunnel(void)
|
啟動服務通道。
|
StartServiceTunnel(uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode)
|
啟動服務通道。
|
StopServiceTunnel(void)
|
void
關閉與 Service 的通道連線。
|
StopServiceTunnel(WEAVE_ERROR err)
|
void
關閉與 Service 的通道連線。
|
公開的靜態函式 |
|
---|---|
RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer, PacketBuffer *message)
|
void
此處理常式可透過此處理常式從邊界閘道和行動裝置之間的捷徑 UDP 通道接收通道 IPv6 封包,並在從通道標頭內部解開原始 IPv6 封包後,轉送至 Tunnel EndPoint 介面。
|
RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer *message)
|
void
此處理常式可接收從 Tunnel EndPoint 介面和轉送的 IPv6 封包,並在將 IPv6 封包封裝於通道標頭內部後,透過服務 TCP 連線傳送至服務,或是透過捷徑通道傳送至 Mobile 用戶端。
|
公開類型
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)
從 Service 接收通道重新連線時,由更高層設定的處理常式的函式指標。
詳細說明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
OnServiceTunnelStatusNotifyFunct
void(* OnServiceTunnelStatusNotifyFunct)(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons reason, WEAVE_ERROR err, void *appCtxt)
由較高層設定的處理常式的函式指標,用於處理與 Service 的通道相關的各種通知。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
PlatformNetworkOnlineCheck
void(* PlatformNetworkOnlineCheck)(TunnelType tunType, void *appCtxt)
應用程式為執行網路層級檢查而提供的處理常式的函式指標。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
WeaveTunnelFlags
WeaveTunnelFlags
編織通道標記位元。
屬性 | |
---|---|
kTunnelFlag_BackupEnabled
|
設定備用通道的啟用時機。 |
kTunnelFlag_BackupRestricted
|
在備用通道的轉送限制時設定。 |
kTunnelFlag_PrimaryEnabled
|
設定主要通道的啟用時機。 |
kTunnelFlag_PrimaryRestricted
|
在主要通道受轉送限制時設定。 |
WeaveTunnelFlags
enum nl::Weave::Profiles::WeaveTunnel::WeaveTunnelAgent::WeaveTunnelFlags WeaveTunnelFlags
編織通道標記位元。
公開屬性
NetworkOnlineCheck
PlatformNetworkOnlineCheck NetworkOnlineCheck
OnServiceTunReconnectNotify
OnServiceTunnelReconnectNotifyFunct OnServiceTunReconnectNotify
OnServiceTunStatusNotify
OnServiceTunnelStatusNotifyFunct OnServiceTunStatusNotify
由較高層設定的處理常式的函式指標,用於處理與 Service 的通道相關的各種通知。
mServiceMgr
WeaveServiceManager * mServiceMgr
用於查詢及連線至 Service 的 Service Manager 指標。
公用函式
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 )
初始化通道代理程式。
這項操作會建立通道端點物件、設定通道介面,以及初始化成員變數、回呼和 WeaveTunnelControl。
Init
WEAVE_ERROR Init( InetLayer *inet, WeaveExchangeManager *exchMgr, uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode, const char *intfName, uint8_t role, void *appContext )
初始化通道代理程式。
這項操作會建立通道端點物件、設定通道介面,以及初始化成員變數、回呼和 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 )
設定通道的 Tunneling 裝置角色(BorderGateway、 StandaloneDevice、MobileDevice)。
設定通道的通道裝置角色(BorderGateway 或獨立)。
詳細說明 | |||
---|---|---|---|
參數 |
|
關機
WEAVE_ERROR Shutdown( void )
關閉通道代理程式。
這樣在移除與通道介面相關聯的地址和路徑後,就會中斷與 Service 的連線,並關閉 TunEndPoint 介面。
這樣在移除與通道介面相關聯的地址和路徑後,就會中斷與 Service 的連線,並關閉 TunEndPoint 介面。
詳細說明 | |
---|---|
傳回 |
處理成功時為 WEAVE_NO_ERROR,或其他對應的 WEAVE_ERROR 類型。
|
StartServiceTunnel
WEAVE_ERROR StartServiceTunnel( void )
啟動服務通道。
這會啟用通道,並嘗試與 Service 建立連線。
這會嘗試與 Service 建立連線,也會將 FBI 路徑設為通道介面。
詳細說明 | |
---|---|
傳回 |
處理成功時為 WEAVE_NO_ERROR,或其他對應的 WEAVE_ERROR 類型。
|
StartServiceTunnel
WEAVE_ERROR StartServiceTunnel( uint64_t dstNodeId, IPAddress dstIPAddr, WeaveAuthMode authMode )
啟動服務通道。
這會啟用通道,並嘗試與 Service 建立連線。
StopServiceTunnel
void StopServiceTunnel( void )
關閉與 Service 的通道連線。
StopServiceTunnel
void StopServiceTunnel( WEAVE_ERROR err )
關閉與 Service 的通道連線。
詳細說明 | |||
---|---|---|---|
參數 |
|
WeaveTunnelAgent
WeaveTunnelAgent( void )
公開的靜態函式
RecvdFromShortcutUDPTunnel
void RecvdFromShortcutUDPTunnel( WeaveMessageLayer *msgLayer, PacketBuffer *message )
此處理常式可透過此處理常式從邊界閘道和行動裝置之間的捷徑 UDP 通道接收通道 IPv6 封包,並在從通道標頭內部解開原始 IPv6 封包後,轉送至 Tunnel EndPoint 介面。
此處理常式可透過此處理常式從 Service TCP 連線接收通道 IPv6 封包,並在從通道標頭中解開原始 IPv6 封包後,轉送至 Tunnel EndPoint 介面。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
RecvdFromTunnelEndPoint
void RecvdFromTunnelEndPoint( TunEndPoint *tunEP, PacketBuffer *message )
此處理常式可接收從 Tunnel EndPoint 介面和轉送的 IPv6 封包,並在將 IPv6 封包封裝於通道標頭內部後,透過服務 TCP 連線傳送至服務,或是透過捷徑通道傳送至 Mobile 用戶端。
此處理常式可接收從 Tunnel EndPoint 介面和轉送的 IPv6 封包,並在將 IPv6 封包封裝至通道標頭內部後,或透過本機通道傳送到 Mobile 用戶端,然後透過 Service TCP 連線傳送至服務。
如果尚未建立服務連線,訊息會排入佇列,直到連線設定完成。如果是透過通道與行動裝置用戶端裝置建立通道,參照的下一個躍點相鄰表格。
如果尚未建立服務連線,訊息會排入佇列,直到連線設定完成。如果是透過通道與行動裝置用戶端裝置建立通道,參照的下一個躍點相鄰表格。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|