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) | Binding * |
GetBinding (const uint64_t & aPeerNodeId) | Binding * |
NewBinding (void) | Binding * |
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 )
处理绑定请求已成功完成的确认。
绑定完成后,协议引擎会遍历事务表并启动任何依赖于该绑定的事务。
细节 | |||
---|---|---|---|
参数 |
| ||
退货 | WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映了一个无法启动事务。 |
绑定确认
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
处理绑定请求失败的确认。
当绑定请求失败时,协议引擎必须遍历事务表并根据绑定使任何事务失败。
细节 | |||||
---|---|---|---|---|---|
参数 |
| ||||
退货 |
绑定请求
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
使用已知的对等节点 ID 和传输说明符请求绑定。
给定对等节点 ID 和传输规范,此请求会建立与该对等节点的绑定。仅当传输是 TCP 时,投标才需要额外完成。如果已经存在与对等体的绑定,则重新使用它。
细节 | |||||
---|---|---|---|---|---|
参数 |
| ||||
退货 |
编织传输选项
绑定请求
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
使用默认传输绑定到已知对等方。
细节 | |||
---|---|---|---|
参数 |
| ||
退货 | WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映绑定操作失败。 |
绑定请求
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
绑定请求
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
使用活动的 Weave 连接请求绑定。
也可以使用现有的、开放的连接来建立绑定。请注意,以这种方式建立的绑定不需要额外的完成。
细节 | |||
---|---|---|---|
参数 |
| ||
退货 | WEAVE_NO_ERROR成功或WEAVE_ERROR_NO_MEMORY如果绑定表已满。否则返回一个错误,反映初始化绑定失败。 |
指示不全
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
处理绑定失败的指示。
当绑定变得不完整时,即当 TCP 绑定的连接关闭时,协议引擎必须使依赖它的任何事务失败,包括调用它们的状态处理程序。此外,不完整的指示被传递给任何实现此方法的替代形式的超类对象,该方法采用对等 ID。
细节 | |||||
---|---|---|---|---|---|
参数 |
|
指示不全
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
处理绑定已不完整的指示。
想要被告知绑定失败的高层应该使用这种方法,它只是传递对等 ID 和状态报告。事实上,由于这种方法是虚拟无效,任何DMClient或DMPublisher子类必须提供一个实现。
细节 | |||||
---|---|---|---|---|---|
参数 |
|
在里面
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
在里面
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
协议引擎
ProtocolEngine( void )
解除绑定请求
void UnbindRequest( const uint64_t & aPeerNodeId )
请求取消绑定并从绑定表中删除绑定。
当绑定被“解除绑定”时,当前依赖于它的任何事务也应该被删除。此方法自动完成具有此绑定的所有事务。
细节 | |||
---|---|---|---|
参数 |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
解除绑定请求
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
请求撤销绑定并从绑定表中删除绑定。
当绑定被“解除绑定”时,当前依赖于它的任何事务也应该被删除。此方法自动完成具有此绑定的所有事务。
细节 | |||||
---|---|---|---|---|---|
参数 |
|
解除绑定请求(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 )