NL::編織::簡介:: DataManagement_Legacy::捆綁

#include <src/lib/profiles/data-management/Legacy/Binding.h>

綁定類管理代表用紡織品的應用實體的通信狀態。

概括

當應用程序想要使用 Wea​​ve 與遠程實體進行通信時,存在多種選擇。該綁定的簡單的東西是容易的,更困難的東西至少是聽話的類畜欄這些選項並安排他們以這樣的方式。涵蓋的選項包括:

  • 與已知對等節點的單播 UDP 通信。
  • UDP 廣播與“任何”節點。
  • 與已知對等節點的單播 WRMP 通信。
  • 與已知對等節點的 TCP 通信。
  • 使用服務管理器實例與已知服務端點進行 TCP 通信以進行設置。
  • 基於預先建立的連接的 TCP 通信。

構造函數和析構函數

Binding (void)
默認構造函數用於綁定的對象。
~Binding (void)
析構函數用於綁定的對象。

公共類型

@165 {
kState_Incomplete = 0,
kState_Completing = 1,
kState_Complete = 2
}
枚舉
該組綁定的對象狀態。

公共屬性

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

該組綁定的對象狀態。

特性
kState_Complete

A的狀態綁定是完成並準備使用。

kState_Completing

的狀態綁定是在即將完成。

kState_Incomplete

一的初始(和最終的)狀態結合

公共屬性

授權模式

WeaveAuthMode mAuthMode

要使用的 Weave 身份驗證模式。

(只讀)

這是在此綁定管理的所有通信中使用的身份驗證模式。

移動連接

WeaveConnection * mConnection

指向當前在此綁定中使用的 Weave 連接的指針。

(只讀)

TCP 綁定可以立即使用連接進行初始化,也可以在完成時分配一個連接。

引擎

ProtocolEngine * mEngine

的指針ProtocolEngine與此相關的綁定

綁定一般是針對特定的協議引擎完成的,它主要用作訪問 MessageLayer 的一種方式。這是我們跟踪它的地方。

對等節點ID

uint64_t mPeerNodeId

綁定目標的 64 位節點 ID。

(只讀)

每個綁定有一個目標實體,這是這裡命名。除了 Weave 節點 ID 之外,這還可以命名服務端點。

移動服務管理器

nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr

指向用於完成此綁定的(可選)ServiceManager 對象的指針。

(只讀)

綁定到 Weave 服務時,可以在初始化時提供 64 位服務端點 ID 代替 Weave 節點 ID。在這種情況下,還需要一個 ServiceManager 對象來完成綁定。普通 TCP 或 WRMP 綁定不需要 ServiceManager 對象。

狀態

uint8_t mState

當前綁定的對象狀態。

一次只能運行一個“完成”操作,在任何情況下,如果您要求完成一個已完成的綁定,它只會立即調用確認函數。下面的狀態變量跟踪當前狀態並充當鎖定。

移動傳輸

uint8_t mTransport

運輸在完成此使用綁定

(只讀)

mTransport 的可能值在 DMConstants.h 中定義。

公共職能

捆綁

 Binding(
  void
)

默認構造函數用於綁定的對象。

清除所有內部狀態。

完成確認

void CompleteConfirm(
  WeaveConnection *aConnection
)

處理綁定請求的確認。

細節
參數
[in] aConnection
一個指向有源WeaveConnection到結合目標。

完成確認

void CompleteConfirm(
  StatusReport & aReport
)

處理綁定請求的失敗。

細節
參數
[in] aReport
對描述失敗的 StatusReport 對象的引用。

完成確認

void CompleteConfirm(
  void
)

處理綁定請求的確認。

完成請求

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

請求完成綁定。

結合完成後,至少為需要TCP綁定,相對於進行了特定ProtocolEngine對象,它提供訪問一個ExchangeManager實例。

細節
參數
[in] aEngine
指向一個ProtocolEngine對象代表其中正在執行的完成。
返回值
WEAVE_NO_ERROR
關於成功。
WEAVE_ERROR_INCORRECT_STATE
如果綁定已經完成。
WEAVE_ERROR_NO_MEMORY
如果需要連接但沒有可用連接
退貨
否則,任何WEAVE_ERROR嘗試連接返回。

連接

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

通過提供完整的連接來完成 TCP 綁定。

新初始化的 TCP 綁定在完成之前不能使用。通常這是在應用程序嘗試使用綁定發送消息時按需完成的,但也可以通過提供 Weave 連接來明確完成。

細節
參數
[in] aConnection
指向一個WeaveConnection用來完成結合。
返回值
WEAVE_NO_ERROR
關於成功。
WEAVE_ERROR_INCORRECT_STATE
如果綁定已經有連接。
WEAVE_ERROR_INVALID_ARGUMENT
如果連接為NULL。

敲定

void Finalize(
  void
)

“未完成”綁定並釋放它。

綁定可能具有需要清理,例如連接閉合,其由Uncomplete()方法在除了簡單地由清除到其初始狀態的狀態處理狀態免費()方法。這種方法主要是為了方便起見,同時調用了兩者。

也可以看看:
完成(WEAVE_ERROR)

敲定

void Finalize(
  WEAVE_ERROR aErr
)

“未完成”綁定並釋放它。

綁定可能具有需要清理,例如連接閉合,其由Uncomplete()方法在除了簡單地由清除到其初始狀態的狀態處理狀態免費()方法。這種方法主要是為了方便起見,同時調用了兩者。

細節
參數
[in] aErr
此錯誤代碼指示此請求的原因。如果不是 WEAVE_NO_ERROR,則 TCP 連接可能會中止。
也可以看看:
完成(無效)

自由

void Free(
  void
)

清除綁定狀態。

無條件地將所有綁定狀態返回到其原始狀態。

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

產生ExchangeContext從一個對象綁定

細節
參數
[in] aExchangeMgr
指向從中請求上下文的交換管理器的指針。
[in] aAppState
指向要存儲在交換上下文中供以後使用的應用程序狀態對象的空指針。
退貨
的指針ExchangeContext對象,或NULL上失敗。

指示不全

void IncompleteIndication(
  StatusReport & aReport
)

處理綁定失敗。

這個方法被調用,並且反過來調用較高層處理程序時,所述結合失敗結束後,即在CompleteConfirm()被調用,並顯示狀態表示成功。

細節
參數
[in] aReport
對描述出了什麼問題的 StatusReport 的引用。
也可以看看:
CompleteConfirm(StatusReport&880) 。

在裡面

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

初始化綁定只是一個節點ID。

這會導致與配置的默認傳輸綁定。

細節
參數
[in] aPeerNodeId
對綁定目標的 64 位 ID 的引用。
返回值
WEAVE_NO_ERROR
關於成功。
WEAVE_ERROR_INVALID_ARGUMENT
如果綁定未指定。

在裡面

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

初始化一個綁定基於對等體ID和傳輸對象。

細節
參數
[in] aPeerNodeId
對綁定目標的 64 位節點標識符的引用。
[in] aTransport
傳輸規範,來自 WeaveTransportOption。
返回值
WEAVE_NO_ERROR
關於成功。
WEAVE_ERROR_INVALID_ARGUMENT
如果綁定未指定。

在裡面

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

初始化一個綁定對象的服務端點。

這是綁定到 Nest 服務上特定端點的方式。此類綁定需要多階段完成過程,其中可能包括填充或更新本地服務目錄緩存。在大多數情況下,這個過程對應用程序是隱藏的,但這意味著在過程後期​​出現的錯誤可能會被傳遞,通常通過相關的“確認”回調,在 - 有時很長時間之後 - 原始使用請求(和完成)之後綁定。

細節
參數
[in] aServiceEpt
對感興趣的 Weave 服務端點的 64 位標識符的引用。
[in] aServiceMgr
指向服務管理器實例的指針,用於查找服務層並連接到它。
[in] aAuthMode
連接時使用的身份驗證模式。
返回值
WEAVE_NO_ERROR
關於成功。
WEAVE_ERROR_INVALID_ARGUMENT
如果綁定未指定。

在裡面

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

初始化綁定一個對象WeaveConnection

細節
參數
[in] aConnection
指向一個WeaveConnection作為結合的基礎使用..
返回值
WEAVE_NO_ERROR
關於成功。
WEAVE_ERROR_INVALID_ARGUMENT
如果綁定未指定。

已經完成

bool IsComplete(
  void
)

檢查綁定是否完成。

細節
退貨
如果完整則為真,否則為假。
也可以看看:
CompleteRequest(ProtocolEngine *aEngine)

免費

bool IsFree(
  void
)

檢查是綁定是免費的。

“免費”在此上下文中僅表示“具有已定義的對等節點 ID”。 IsFree()應該被認為是意“已免費()調用了它,一直沒有被使用”。

細節
退貨
如果綁定是免費的,則為 true,否則為 false。

未完成的請求

void UncompleteRequest(
  void
)

導致綁定不完整。

從根本上說,綁定應該在調用此方法後處於“不完整”狀態,但更巧妙的是,綁定本身不包含的任何相關狀態,例如 TCP 連接,也應該清除。應用程序可以考慮引用UncompleteRequest()作為錯誤清理的一部分。

也可以看看:
未完成請求(WEAVE_ERROR)

未完成的請求

void UncompleteRequest(
  WEAVE_ERROR aErr
)

導致綁定不完整。

從根本上說,綁定應該在調用此方法後處於“不完整”狀態,但更巧妙的是,綁定本身不包含的任何相關狀態,例如 TCP 連接,也應該被清除。應用程序可以考慮引用UncompleteRequest()作為錯誤清理的一部分。

細節
參數
[in] aErr
如果不是 WEAVE_NO_ERROR,則現有連接(如果有)將被中止而不是正常關閉。
也可以看看:
未完成請求(無效)

~綁定

virtual  ~Binding(
  void
)

析構函數用於綁定的對象。

清除所有內部狀態,並在必要時關閉打開的連接。