NL::编织::简介:: DataManagement_Legacy::协议引擎

这是一个抽象类。

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

WDM 协议引擎类。

概括

数据管理实体(客户端或发布者)具有协议引擎组件和数据管理器组件。这个抽象类代表了协议引擎的共同特征。

遗产

直接已知的子类:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

构造函数和析构函数

ProtocolEngine (void)
~ProtocolEngine (void)

受保护的属性

mBindingTable [kBindingTableSize]
ProtocolEngine有一个绑定表,如果发动机将是负责超出了简单的接收广播通知事情,可能需要至少包含一个条目。
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable [kTransactionTableSize]

公共职能

BindConfirm ( Binding *aBinding)
virtual WEAVE_ERROR
处理绑定请求已成功完成的确认。
BindConfirm ( Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
处理绑定请求失败的确认。
BindRequest (const uint64_t & aPeerNodeId, uint8_t aTransport)
使用已知的对等节点 ID 和传输说明符请求绑定。
BindRequest (const uint64_t & aPeerNodeId)
使用默认传输绑定到已知对等方。
BindRequest ( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest ( WeaveConnection *aConnection)
使用活动的 Weave 连接请求绑定。
IncompleteIndication ( Binding *aBinding, StatusReport & aReport)
virtual void
处理绑定失败的指示。
IncompleteIndication (const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
处理绑定已不完整的指示。
Init ( WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init ( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest (const uint64_t & aPeerNodeId)
void
请求取消绑定并从绑定表中删除绑定。
UnbindRequest (const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
请求取消绑定并从绑定表中删除绑定。

受保护的功能

Clear (void)
void
ClearBindingTable (void)
void
ClearTransactionTable (void)
void
DequeueTransaction ( DMTransaction *aTransaction)
void
EnqueueTransaction ( DMTransaction *aTransaction, Binding *aBinding)
EnqueueTransaction ( DMTransaction *aTransaction)
FailTransactions ( Binding *aBinding, StatusReport & aReport)
bool
Finalize (void)
virtual void
FinalizeBindingTable (void)
void
FinalizeTransactionTable (void)
void
FinalizeTransactions ( Binding *aBinding)
void
FromExchangeCtx ( ExchangeContext *aExchangeCtx)
GetBinding (const uint64_t & aPeerNodeId)
NewBinding (void)
StartTransaction ( DMTransaction *aTransaction, Binding *aBinding)
StartTransaction ( DMTransaction *aTransaction)
StatusResponse ( ExchangeContext *aExchangeCtx, StatusReport & aStatus)

班级

NL ::编织::概况:: DataManagement_Legacy :: ProtocolEngine :: DMTransaction

受保护的属性

绑定表

Binding mBindingTable[kBindingTableSize]

ProtocolEngine有一个绑定表,如果发动机将是负责超出了简单的接收广播通知事情,可能需要至少包含一个条目。

绑定通常按节点 ID 进行索引。这意味着每个引擎只能绑定到给定的服务端点。

WDM 规范有这个“默认绑定”的概念,如果没有提供明确的目的地,这是消息去的地方。这主要用于具有单个绑定或少量绑定的非常简单的设备,对于其他目的,这将只是形成的第一个绑定。

交换管理器

WeaveExchangeManager * mExchangeMgr

响应超时

uint32_t mResponseTimeout

事务表

TransactionTableEntry mTransactionTable[kTransactionTableSize]

公共职能

绑定确认

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

处理绑定请求已成功完成的确认。

绑定完成后,协议引擎会遍历事务表并启动任何依赖于该绑定的事务。

细节
参数
[in] aBinding
指向已完成绑定的指针。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映了一个无法启动事务。

绑定确认

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

处理绑定请求失败的确认。

当绑定请求失败时,协议引擎必须遍历事务表并根据绑定使任何事务失败。

细节
参数
[in] aBinding
指向失败绑定的指针。
[in] aReport
对详细说明失败原因的 StatusReport 对象的引用。
退货

绑定请求

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

使用已知的对等节点 ID 和传输说明符请求绑定。

给定对等节点 ID 和传输规范,此请求会建立与该对等节点的绑定。仅当传输是 TCP 时,投标才需要额外完成。如果已经存在与对等体的绑定,则重新使用它。

细节
参数
[in] aPeerNodeId
对作为绑定目标的对等实体的 64 位节点 ID 的引用。
[in] aTransport
要使用的传输。
退货
WEAVE_NO_ERROR成功或WEAVE_ERROR_NO_MEMORY如果绑定表已满。否则返回WEAVE_ERROR反映初始化失败的结合。
也可以看看:
编织传输选项

绑定请求

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

使用默认传输绑定到已知对等方。

细节
参数
[in] aPeerNodeId
对作为绑定目标的对等实体的 64 位节点 ID 的引用。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映绑定操作失败。

绑定请求

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

绑定请求

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

使用活动的 Weave 连接请求绑定。

也可以使用现有的、开放的连接来建立绑定。请注意,以这种方式建立的绑定不需要额外的完成。

细节
参数
[in] aConnection
绑定使用的指向 Weave 连接的指针。
退货
WEAVE_NO_ERROR成功或WEAVE_ERROR_NO_MEMORY如果绑定表已满。否则返回一个错误,反映初始化绑定失败。

指示不全

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

处理绑定失败的指示。

当绑定变得不完整时,即当 TCP 绑定的连接关闭时,协议引擎必须使依赖它的任何事务失败,包括调用它们的状态处理程序。此外,不完整的指示被传递给任何实现此方法的替代形式的超类对象,该方法采用对等 ID。

细节
参数
[in] aBinding
指向失败绑定的指针。
[in] aReport
对详细说明失败原因的 StatusReport 对象的引用。

指示不全

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

处理绑定已不完整的指示。

想要被告知绑定失败的高层应该使用这种方法,它只是传递对等 ID 和状态报告。事实上,由于这种方法是虚拟无效,任何DMClientDMPublisher子类必须提供一个实现。

细节
参数
[in] aPeerNodeId
对作为失败绑定目标的对等节点或服务端点的 64 位 ID 的引用。
[in] aReport
对详细说明失败原因的 StatusReport 对象的引用。

在里面

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

在里面

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

协议引擎

 ProtocolEngine(
  void
)

解除绑定请求

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

请求取消绑定并从绑定表中删除绑定。

当绑定被“解除绑定”时,当前依赖于它的任何事务也应该被删除。此方法自动完成具有此绑定的所有事务。

细节
参数
[in] aPeerNodeId
对标识绑定的 64 位节点 ID 或服务端点的引用。
也可以看看:
UnbindRequest(const uint64_t, WEAVE_ERROR)

解除绑定请求

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

请求撤销绑定并从绑定表中删除绑定。

当绑定被“解除绑定”时,当前依赖于它的任何事务也应该被删除。此方法自动完成具有此绑定的所有事务。

细节
参数
[in] aPeerNodeId
对标识绑定的 64 位节点 ID 或服务端点的引用。
[in] aErr
WEAVE_NO_ERROR 如果这个解除绑定请求没有特定原因,否则错误的原因会被传递下去。
也可以看看:
解除绑定请求(const uint64_t)

~协议引擎

virtual  ~ProtocolEngine(
  void
)

受保护的功能

清除

void Clear(
  void
)

清除绑定表

void ClearBindingTable(
  void
)

清除事务表

void ClearTransactionTable(
  void
)

出队事务

void DequeueTransaction(
  DMTransaction *aTransaction
)

入队交易

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

入队交易

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction
)

失败交易

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

敲定

virtual void Finalize(
  void
)

完成绑定表

void FinalizeBindingTable(
  void
)

完成交易表

void FinalizeTransactionTable(
  void
)

完成交易

void FinalizeTransactions(
  Binding *aBinding
)

FromExchangeCtx

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

获取绑定

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

新绑定

Binding * NewBinding(
  void
)

开始交易

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

开始交易

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

状态响应

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)