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
)