nl::Weave::Profiles::WeaveTunnel::WeaveTunnelControl

摘要

建構函式和解構函式

WeaveTunnelControl(void)

公開類型

TunnelStatusRcvdFunct)(uint8_t tType, StatusReport &tunStatus) typedef
void(*
由較高層設定的處理常式的函式指標,用於在收到 StatusReport 訊息以回應傳送的 Tunnel 控制項訊息時採取動作。

公開屬性

OnTunStatusRcvd
mCtrlResponseTimeout
uint16_t
回應控制訊息的回應逾時時間(以秒為單位)。
mShortcutTunnelAdvInterval
uint16_t
定期捷徑通道廣告的間隔時間,單位為秒。

公用函式

Close(void)
關閉所有尚未處理的交換背景資訊並重設成員,藉此關閉 WeaveTunnelControl
DisableShortcutTunneling(void)
void
停用從邊界閘道或行動用戶端傳送廣告的捷徑通道,並聆聽來自捷徑通道對應廣告的廣告。
EnableShortcutTunneling(void)
void
透過邊界閘道或行動用戶端傳送廣告,並聆聽來自快速鍵通道的廣告,來啟用捷徑通道。
Init(WeaveTunnelAgent *tunAgent, TunnelStatusRcvdFunct statusRcvd)
初始化 WeaveTunnelControl,以便設定 Weave 通道代理程式和回呼等相關成員。
IsPeerInShortcutTunnelCache(uint64_t peerId)
bool
確認對等端是否位於通道捷徑快取中,以便在本機傳送。
Reconnect(WeaveTunnelConnectionMgr *conMgr)
重新連線至對等互連節點。
SendBorderRouterAdvertise(void)
傳送邊界路由器廣告訊息,宣傳自家的架構 ID。
SendMessageOverTunnelShortcut(uint64_t peerId, WeaveMessageInfo *msgHdr, PacketBuffer *msg)
透過通道捷徑傳送訊息。
SendMobileClientAdvertise(void)
傳送宣傳其節點 ID 的行動用戶端廣告訊息。
SendTunnelClose(WeaveTunnelConnectionMgr *conMgr)
將「通道關閉」控制訊息傳送至具有一組通道路徑的對等互連節點。
SendTunnelOpen(WeaveTunnelConnectionMgr *conMgr, WeaveTunnelRoute *tunRoute)
將「通道開啟」控制訊息傳送至有一組通道路徑的對等互連節點。
SendTunnelRouteUpdate(WeaveTunnelConnectionMgr *conMgr, WeaveTunnelRoute *tunRoute)
將「通道更新」控制訊息傳送至含有一組通道路徑的對等互連節點。

公開的靜態函式

HandleShortcutTunnelAdvertiseMessage(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
使用 WeaveMessageLayer 註冊的函式,以監聽捷徑通道廣告並更新快取。

公開類型

TunnelStatusRcvdFunct

void(* TunnelStatusRcvdFunct)(uint8_t tType, StatusReport &tunStatus)

由較高層設定的處理常式的函式指標,用於在收到 StatusReport 訊息以回應傳送的 Tunnel 控制項訊息時採取動作。

詳細說明
參數
[in] tType
通道類型,例如主要或備用。
[in] tunStatus
Tunnel Control StatusReport 訊息的參考資料。

公開屬性

OnTunStatusRcvd

TunnelStatusRcvdFunct OnTunStatusRcvd

mCtrlResponseTimeout

uint16_t mCtrlResponseTimeout

回應控制訊息的回應逾時時間(以秒為單位)。

mShortcutTunnelAdvInterval

uint16_t mShortcutTunnelAdvInterval

定期捷徑通道廣告的間隔時間,單位為秒。

公用函式

關閉

WEAVE_ERROR Close(
  void
)

關閉所有尚未處理的交換背景資訊並重設成員,藉此關閉 WeaveTunnelControl

詳細說明
傳回
WEAVE_NO_ERROR。

DisableShortcutTunneling

void DisableShortcutTunneling(
  void
)

停用從邊界閘道或行動用戶端傳送廣告的捷徑通道,並聆聽來自捷徑通道對應廣告的廣告。

EnableShortcutTunneling

void EnableShortcutTunneling(
  void
)

透過邊界閘道或行動用戶端傳送廣告,並聆聽來自快速鍵通道的廣告,來啟用捷徑通道。

Init

WEAVE_ERROR Init(
  WeaveTunnelAgent *tunAgent,
  TunnelStatusRcvdFunct statusRcvd
)

初始化 WeaveTunnelControl,以便設定 Weave 通道代理程式和回呼等相關成員。

詳細說明
參數
[in] tunAgent
指向 WeaveTunnelAgent 物件的指標。
[in] statusRcvd
指向 StatusRcvd 處理常式的回呼指標。
傳回
WEAVE_NO_ERROR

IsPeerInShortcutTunnelCache

bool IsPeerInShortcutTunnelCache(
  uint64_t peerId
)

確認對等端是否位於通道捷徑快取中,以便在本機傳送。

重新連結

WEAVE_ERROR Reconnect(
  WeaveTunnelConnectionMgr *conMgr
)

重新連線至對等互連節點。

SendBorderRouterAdvertise

WEAVE_ERROR SendBorderRouterAdvertise(
  void
)

傳送邊界路由器廣告訊息,宣傳自家的架構 ID。

SendMessageOverTunnelShortcut

WEAVE_ERROR SendMessageOverTunnelShortcut(
  uint64_t peerId,
  WeaveMessageInfo *msgHdr,
  PacketBuffer *msg
)

透過通道捷徑傳送訊息。

SendMobileClientAdvertise

WEAVE_ERROR SendMobileClientAdvertise(
  void
)

傳送宣傳其節點 ID 的行動用戶端廣告訊息。

SendTunnelClose

WEAVE_ERROR SendTunnelClose(
  WeaveTunnelConnectionMgr *conMgr
)

將「通道關閉」控制訊息傳送至具有一組通道路徑的對等互連節點。

將「通道關閉」控制訊息傳送給對等互連節點。

詳細說明
參數
[in] conMgr
指向 WeaveTunnelConnectionMgr 物件的指標。
傳回
WEAVE_ERROR WEAVE_NO_ERROR 成功時,其他錯誤。

SendTunnelOpen

WEAVE_ERROR SendTunnelOpen(
  WeaveTunnelConnectionMgr *conMgr,
  WeaveTunnelRoute *tunRoute
)

將「通道開啟」控制訊息傳送至有一組通道路徑的對等互連節點。

詳細說明
參數
[in] conMgr
指向 WeaveTunnelConnectionMgr 物件的指標。
[in] tunRoutes
要新增至路徑資料表的前置字串路徑清單。
傳回
WEAVE_ERROR WEAVE_NO_ERROR 成功時,其他錯誤。

SendTunnelRouteUpdate

WEAVE_ERROR SendTunnelRouteUpdate(
  WeaveTunnelConnectionMgr *conMgr,
  WeaveTunnelRoute *tunRoute
)

將「通道更新」控制訊息傳送至含有一組通道路徑的對等互連節點。

詳細說明
參數
[in] conMgr
指向 WeaveTunnelConnectionMgr 物件的指標。
[in] tunRoutes
要新增至路徑資料表的前置字串路徑清單。
傳回
WEAVE_ERROR WEAVE_NO_ERROR 成功時,其他錯誤。

WeaveTunnelControl

 WeaveTunnelControl(
  void
)

公開的靜態函式

HandleShortcutTunnelAdvertiseMessage

void HandleShortcutTunnelAdvertiseMessage(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

使用 WeaveMessageLayer 註冊的函式,以監聽捷徑通道廣告並更新快取。