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 )