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
)

析构函数用于绑定的对象。

清除所有内部状态,并在必要时关闭打开的连接。