nl:: Weave:: Profiles:: DataManagement_Legacy:: ProtocolEngine
これは抽象クラスです。
#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 にはバインディング テーブルがあります。エンジン側でブロードキャスト通知の受信以外の処理を行う場合、少なくとも 1 つのエントリを含める必要があると考えられます。
|
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:: |
プロテクト属性
mBindingTable
Binding mBindingTable[kBindingTableSize]
ProtocolEngine にはバインディング テーブルがあります。エンジン側でブロードキャスト通知の受信以外の処理を行う場合、少なくとも 1 つのエントリを含める必要があると考えられます。
バインディングは通常、ノード ID でインデックスに登録されます。つまり、各エンジンが指定のサービス エンドポイントに対して設定できるバインディングは 1 つのみです。
WDM 仕様では、「デフォルト バインディング」という概念があります。これは、明示的な宛先が指定されていない場合にメッセージの配置場所です。これは主に、1 つのバインディングまたは少数のバインディングの非常にシンプルなデバイスで使用され、他の目的では、形成される最初のバインディングになります。
mExchangeMgr
WeaveExchangeManager * mExchangeMgr
mResponseTimeout
uint32_t mResponseTimeout
mTransactionTable
TransactionTableEntry mTransactionTable[kTransactionTableSize]
パブリック関数
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding )
バインド リクエストが正常に完了したことの確認を処理します。
バインディングが完了すると、プロトコル エンジンはトランザクション テーブルを調べ、そのバインディングに依存するトランザクションを開始します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
WEAVE_NO_ERROR 成功の場合。それ以外の場合は、トランザクションを開始できないことを示す WEAVE_ERROR を返します。
|
BindConfirm
virtual WEAVE_ERROR BindConfirm( Binding *aBinding, StatusReport & aReport )
バインド リクエストが失敗したことの確認を処理します。
バインド リクエストが失敗した場合、プロトコル エンジンはトランザクション テーブルを確認し、バインディングに応じてトランザクションをすべて失敗させる必要があります。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId, uint8_t aTransport )
既知のピアノード ID とトランスポート指定子を使用してバインディングをリクエストします。
ピアノード ID とトランスポート仕様を指定すると、このリクエストがそのピアへのバインディングを設定します。入札では、トランスポートが TCP の場合にのみ、追加の完了が必要になります。ピアへのバインディングがすでに存在する場合は、再利用されます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
WEAVE_NO_ERROR(成功の場合)、または WEAVE_ERROR_NO_MEMORY(バインディング テーブルがいっぱいの場合)。それ以外の場合は、バインディングの初期化に失敗したことを反映する WEAVE_ERROR を返します。
|
WeaveTransportOption
BindRequest
WEAVE_ERROR BindRequest( const uint64_t & aPeerNodeId )
デフォルトのトランスポートを使用して既知のピアにバインドする。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
WEAVE_NO_ERROR 成功の場合。それ以外の場合は、バインド オペレーションの失敗を示す WEAVE_ERROR を返します。
|
BindRequest
WEAVE_ERROR BindRequest( nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
BindRequest
WEAVE_ERROR BindRequest( WeaveConnection *aConnection )
アクティブな Weave 接続を使用してバインディングをリクエストします。
バインディングは、既存のオープンな接続を使用して確立することもできます。この方法で確立されるバインディングでは、追加の補完は必要ありません。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
WEAVE_NO_ERROR(成功の場合)、または WEAVE_ERROR_NO_MEMORY(バインディング テーブルがいっぱいの場合)。それ以外の場合は、バインディングの初期化に失敗したことを反映するエラーを返します。
|
IncompleteIndication
virtual void IncompleteIndication( Binding *aBinding, StatusReport & aReport )
バインディングが失敗した通知を処理します。
バインディングが未完了になったとき、つまり、TCP バインディングのために接続が閉じられたとき、プロトコル エンジンは、それに依存するトランザクション(ステータス ハンドラの呼び出しを含む)をすべて失敗させる必要があります。また、未完了の指示は、ピア ID を受け取るこのメソッドの代替形式を実装するすべてのスーパークラス オブジェクトに渡されます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
IncompleteIndication
virtual void IncompleteIndication( const uint64_t & aPeerNodeId, StatusReport & aReport )=0
バインディングが未完了であることを示す通知を処理します。
バインディング失敗を通知する必要がある上位レイヤは、このメソッドを使用します。このメソッドでは、単にピア ID とステータス レポートが渡されます。実際、このメソッドは仮想 void であるため、DMClient または DMPublisher のサブクラスはすべて実装を提供する必要があります。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr )
init
virtual WEAVE_ERROR Init( WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout )
ProtocolEngine
ProtocolEngine( void )
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId )
バインディングを取り消してバインディング テーブルから削除するようリクエストします。
バインディングが「バインド解除」されるときは、現在そのバインディングに依存しているトランザクションも削除する必要があります。このメソッドは、このバインディングを含むすべてのトランザクションを自動的に終了します。
詳細 | |||
---|---|---|---|
パラメータ |
|
UnbindRequest(const uint64_t, WEAVE_ERROR)
UnbindRequest
void UnbindRequest( const uint64_t & aPeerNodeId, WEAVE_ERROR aErr )
バインディングを取り消してバインディング テーブルから削除するようリクエストします。
バインディングが「バインド解除」されるときは、現在そのバインディングに依存しているトランザクションも削除する必要があります。このメソッドは、このバインディングを含むすべてのトランザクションを自動的に終了します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
UnbindRequest(const uint64_t)
~ProtocolEngine
virtual ~ProtocolEngine( void )
プロテクト関数
消去
void Clear( void )
ClearBindingTable
void ClearBindingTable( void )
ClearTransactionTable
void ClearTransactionTable( void )
DequeueTransaction
void DequeueTransaction( DMTransaction *aTransaction )
EnqueueTransaction
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction, Binding *aBinding )
EnqueueTransaction
WEAVE_ERROR EnqueueTransaction( DMTransaction *aTransaction )
FailTransactions
bool FailTransactions( Binding *aBinding, StatusReport & aReport )
ファイナライズ
virtual void Finalize( void )
FinalizeBindingTable
void FinalizeBindingTable( void )
FinalizeTransactionTable
void FinalizeTransactionTable( void )
FinalizeTransactions
void FinalizeTransactions( Binding *aBinding )
FromExchangeCtx
Binding * FromExchangeCtx( ExchangeContext *aExchangeCtx )
GetBinding
Binding * GetBinding( const uint64_t & aPeerNodeId )
NewBinding
Binding * NewBinding( void )
StartTransaction
WEAVE_ERROR StartTransaction( DMTransaction *aTransaction, Binding *aBinding )