NL::編織::簡介:: DataManagement_Legacy::捆綁
#include <src/lib/profiles/data-management/Legacy/Binding.h>
該綁定類管理代表用紡織品的應用實體的通信狀態。
概括
當應用程序想要使用 Weave 與遠程實體進行通信時,存在多種選擇。該綁定的簡單的東西是容易的,更困難的東西至少是聽話的類畜欄這些選項並安排他們以這樣的方式。涵蓋的選項包括:
- 與已知對等節點的單播 UDP 通信。
- UDP 廣播與“任何”節點。
- 與已知對等節點的單播 WRMP 通信。
- 與已知對等節點的 TCP 通信。
- 使用服務管理器實例與已知服務端點進行 TCP 通信以進行設置。
- 基於預先建立的連接的 TCP 通信。
構造函數和析構函數 | |
---|---|
Binding (void) 默認構造函數用於綁定的對象。 | |
~Binding (void) 析構函數用於綁定的對象。 |
公共類型 | |
---|---|
@165 { | 枚舉 該組綁定的對象狀態。 |
公共屬性 | |
---|---|
mAuthMode | WeaveAuthMode 要使用的 Weave 身份驗證模式。 |
mConnection | 指向當前在此綁定中使用的 Weave 連接的指針。 |
mEngine | 的指針ProtocolEngine與此相關的綁定。 |
mPeerNodeId | uint64_t 綁定目標的 64 位節點 ID。 |
mServiceMgr | 指向用於完成此綁定的(可選)ServiceManager 對象的指針。 |
mState | uint8_t 當前綁定的對象狀態。 |
mTransport | uint8_t 運輸在完成此使用綁定。 |
公共職能 | |
---|---|
CompleteConfirm ( WeaveConnection *aConnection) | void 處理綁定請求的確認。 |
CompleteConfirm ( StatusReport & aReport) | void 處理綁定請求的失敗。 |
CompleteConfirm (void) | void 處理綁定請求的確認。 |
CompleteRequest ( ProtocolEngine *aEngine) | 請求完成綁定。 |
Connect ( WeaveConnection *aConnection) | 通過提供完整的連接來完成 TCP 綁定。 |
Finalize (void) | void “未完成”綁定並釋放它。 |
Finalize ( WEAVE_ERROR aErr) | void “未完成”綁定並釋放它。 |
Free (void) | void 清除綁定狀態。 |
GetExchangeCtx ( WeaveExchangeManager *aExchangeMgr, void *aAppState) | 產生ExchangeContext從一個對象綁定。 |
IncompleteIndication ( StatusReport & aReport) | void 處理綁定失敗。 |
Init (const uint64_t & aPeerNodeId) | 初始化綁定只是一個節點ID。 |
Init (const uint64_t & aPeerNodeId, uint8_t aTransport) | 初始化一個綁定基於對等體ID和傳輸對象。 |
Init (const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode) | 初始化一個綁定對象的服務端點。 |
Init ( WeaveConnection *aConnection) | 初始化綁定一個對象WeaveConnection 。 |
IsComplete (void) | bool 檢查綁定是否完成。 |
IsFree (void) | bool 檢查是綁定是免費的。 |
UncompleteRequest (void) | void 導致綁定不完整。 |
UncompleteRequest ( WEAVE_ERROR aErr) | void 導致綁定不完整。 |
公共類型
@165
@165
公共屬性
授權模式
WeaveAuthMode mAuthMode
要使用的 Weave 身份驗證模式。
(只讀)
這是在此綁定管理的所有通信中使用的身份驗證模式。
引擎
ProtocolEngine * mEngine
的指針ProtocolEngine與此相關的綁定。
綁定一般是針對特定的協議引擎完成的,它主要用作訪問 MessageLayer 的一種方式。這是我們跟踪它的地方。
移動服務管理器
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
指向用於完成此綁定的(可選)ServiceManager 對象的指針。
(只讀)
綁定到 Weave 服務時,可以在初始化時提供 64 位服務端點 ID 代替 Weave 節點 ID。在這種情況下,還需要一個 ServiceManager 對象來完成綁定。普通 TCP 或 WRMP 綁定不需要 ServiceManager 對象。
公共職能
完成確認
void CompleteConfirm( WeaveConnection *aConnection )
處理綁定請求的確認。
細節 | |||
---|---|---|---|
參數 |
|
完成確認
void CompleteConfirm( StatusReport & aReport )
處理綁定請求的失敗。
細節 | |||
---|---|---|---|
參數 |
|
完成確認
void CompleteConfirm( void )
處理綁定請求的確認。
完成請求
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
請求完成綁定。
結合完成後,至少為需要TCP綁定,相對於進行了特定ProtocolEngine對象,它提供訪問一個ExchangeManager實例。
細節 | |||||||
---|---|---|---|---|---|---|---|
參數 |
| ||||||
返回值 |
| ||||||
退貨 | 否則,任何WEAVE_ERROR嘗試連接返回。 |
連接
WEAVE_ERROR Connect( WeaveConnection *aConnection )
通過提供完整的連接來完成 TCP 綁定。
新初始化的 TCP 綁定在完成之前不能使用。通常這是在應用程序嘗試使用綁定發送消息時按需完成的,但也可以通過提供 Weave 連接來明確完成。
細節 | |||||||
---|---|---|---|---|---|---|---|
參數 |
| ||||||
返回值 |
|
敲定
void Finalize( void )
“未完成”綁定並釋放它。
綁定可能具有需要清理,例如連接閉合,其由Uncomplete()方法在除了簡單地由清除到其初始狀態的狀態處理狀態免費()方法。這種方法主要是為了方便起見,同時調用了兩者。
也可以看看:完成(WEAVE_ERROR)
敲定
void Finalize( WEAVE_ERROR aErr )
自由
void Free( void )
清除綁定狀態。
無條件地將所有綁定狀態返回到其原始狀態。
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
產生ExchangeContext從一個對象綁定。
細節 | |||||
---|---|---|---|---|---|
參數 |
| ||||
退貨 | 的指針ExchangeContext對象,或NULL上失敗。 |
指示不全
void IncompleteIndication( StatusReport & aReport )
處理綁定失敗。
這個方法被調用,並且反過來調用較高層處理程序時,所述結合失敗結束後,即在CompleteConfirm()被調用,並顯示狀態表示成功。
細節 | |||
---|---|---|---|
參數 |
|
CompleteConfirm(StatusReport&880) 。
在裡面
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
初始化綁定只是一個節點ID。
這會導致與配置的默認傳輸綁定。
細節 | |||||
---|---|---|---|---|---|
參數 |
| ||||
返回值 |
|
在裡面
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
初始化一個綁定基於對等體ID和傳輸對象。
細節 | |||||
---|---|---|---|---|---|
參數 |
| ||||
返回值 |
|
在裡面
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
初始化一個綁定對象的服務端點。
這是綁定到 Nest 服務上特定端點的方式。此類綁定需要多階段完成過程,其中可能包括填充或更新本地服務目錄緩存。在大多數情況下,這個過程對應用程序是隱藏的,但這意味著在過程後期出現的錯誤可能會被傳遞,通常通過相關的“確認”回調,在 - 有時很長時間之後 - 原始使用請求(和完成)之後綁定。
細節 | |||||||
---|---|---|---|---|---|---|---|
參數 |
| ||||||
返回值 |
|
在裡面
WEAVE_ERROR Init( WeaveConnection *aConnection )
初始化綁定一個對象WeaveConnection 。
細節 | |||||
---|---|---|---|---|---|
參數 |
| ||||
返回值 |
|
已經完成
bool IsComplete( void )
免費
bool IsFree( void )
檢查是綁定是免費的。
“免費”在此上下文中僅表示“具有已定義的對等節點 ID”。 IsFree()應該被認為是意“已免費()調用了它,一直沒有被使用”。
細節 | |
---|---|
退貨 | 如果綁定是免費的,則為 true,否則為 false。 |
未完成的請求
void UncompleteRequest( void )
導致綁定不完整。
從根本上說,綁定應該在調用此方法後處於“不完整”狀態,但更巧妙的是,綁定本身不包含的任何相關狀態,例如 TCP 連接,也應該清除。應用程序可以考慮引用UncompleteRequest()作為錯誤清理的一部分。
也可以看看:未完成請求(WEAVE_ERROR)
未完成的請求
void UncompleteRequest( WEAVE_ERROR aErr )
導致綁定不完整。
從根本上說,綁定應該在調用此方法後處於“不完整”狀態,但更巧妙的是,綁定本身不包含的任何相關狀態,例如 TCP 連接,也應該被清除。應用程序可以考慮引用UncompleteRequest()作為錯誤清理的一部分。
細節 | |||
---|---|---|---|
參數 |
|
未完成請求(無效)