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)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

クラス

nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine::DMTransaction

プロテクト属性

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
)

バインド リクエストが正常に完了したことの確認を処理します。

バインディングが完了すると、プロトコル エンジンはトランザクション テーブルを実行し、そのバインディングに依存するトランザクションを開始します。

詳細
パラメータ
[in] aBinding
完了したバインディングへのポインタ。
戻り値
WEAVE_NO_ERROR: 成功時。それ以外の場合は、トランザクションを開始できないことを示す WEAVE_ERROR が返されます。

BindConfirm

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

バインド リクエストの失敗の確認を処理します。

バインド リクエストが失敗すると、プロトコル エンジンはトランザクション テーブルを実行し、バインディングに応じてすべてのトランザクションを失敗させる必要があります。

詳細
パラメータ
[in] aBinding
失敗したバインディングへのポインタ。
[in] aReport
失敗の理由を示す StatusReport オブジェクトへの参照。
戻り値

BindRequest

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 が返されます。
関連情報:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

デフォルトのトランスポートを使用して既知のピアにバインドします。

詳細
パラメータ
[in] aPeerNodeId
バインディング ターゲットであるピア エンティティの 64 ビットのノード ID への参照。
戻り値
WEAVE_NO_ERROR: 成功時。それ以外の場合は、バインド オペレーションの失敗を示す WEAVE_ERROR が返されます。

BindRequest

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

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

アクティブな Weave 接続を使用してバインディングをリクエストします。

既存のオープンな接続を使用してバインディングを確立することもできます。この方法で設定されたバインディングは、追加で完了する必要はありません。

詳細
パラメータ
[in] aConnection
バインディングで使用される Weave 接続へのポインタ。
戻り値
成功した場合は WEAVE_NO_ERROR、バインディング テーブルがいっぱいの場合は WEAVE_ERROR_NO_MEMORY。それ以外の場合は、バインディングの開始に失敗したことを示すエラーが返されます。

IncompleteIndication

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

バインディングの失敗を処理する。

バインディングが不完全になった場合(TCP バインディングの接続が閉じられたとき)、プロトコル エンジンは、ステータス ハンドラの呼び出しなど、それに依存するトランザクションをすべて失敗させる必要があります。また、不完全な表示は、ピア ID を受け取るこのメソッドの代替形式を実装する任意のスーパークラス オブジェクトに渡されます。

詳細
パラメータ
[in] aBinding
失敗したバインディングへのポインタ。
[in] aReport
失敗の理由を示す StatusReport オブジェクトへの参照。

IncompleteIndication

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

バインディングが不完全になったという通知を処理します。

バインディングの失敗を通知する必要がある上位レイヤは、この方法を使用します。ステータス レポートとともにピア ID を渡すだけです。実際、このメソッドは仮想 void であるため、DMClient または DMPublisher のサブクラスはすべて実装を提供する必要があります。

詳細
パラメータ
[in] aPeerNodeId
失敗したバインディングのターゲットであるピアノードまたはサービス エンドポイントの 64 ビット ID への参照。
[in] aReport
失敗の理由を示す StatusReport オブジェクトへの参照。

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
)

バインディングを取り消して、バインディング テーブルから削除するようリクエストします。

バインディングが「アンバウンド」の場合現在このトランザクションに依存しているトランザクションも削除する必要があります。このメソッドは、このバインディングを持つすべてのトランザクションを自動的にファイナライズします。

詳細
パラメータ
[in] aPeerNodeId
バインディングを識別する 64 ビットのノード ID またはサービス エンドポイントへの参照。
関連情報:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

バインディングを取り消して、バインディング テーブルから削除するようリクエストします。

バインディングが「アンバウンド」の場合現在このトランザクションに依存しているトランザクションも削除する必要があります。このメソッドは、このバインディングを持つすべてのトランザクションを自動的にファイナライズします。

詳細
パラメータ
[in] aPeerNodeId
バインディングを識別する 64 ビットのノード ID またはサービス エンドポイントへの参照。
[in] aErr
このバインド解除リクエストに特別な理由がない場合は WEAVE_NO_ERROR が返されます。それ以外の場合は、エラーの原因が渡されます。
関連情報:
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
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)