nl::Weave::Profiles::DataManagement_Legacy::Binding

#include <src/lib/profiles/data-management/Legacy/Binding.h>

Binding クラスは、Weave を使用してアプリケーション エンティティに代わって通信状態を管理します。

概要

アプリケーションが Weave を使用してリモートエンティティと通信する場合、さまざまなオプションがあります。Binding クラスはこれらのオプションをまとめ、簡単なものは簡単で、難しいものは少なくとも扱いやすいように配置しています。次のオプションを利用できます。

  • 既知のピアノードとのユニキャスト UDP 通信を通信します。
  • 「any」が指定された UDP ブロードキャストあります。
  • 既知のピアノードとのユニキャスト WRMP 通信によって暗号化されます。
  • 既知のピアノードとの TCP 通信。
  • 設定を行うための Service Manager インスタンスを使用した既知のサービス エンドポイントとの TCP 通信。
  • 確立済みの接続に基づく TCP 通信。

コンストラクタとデストラクタ

Binding(void)
Binding オブジェクトのデフォルト コンストラクタ。
~Binding(void)
Binding オブジェクトのデストラクタ。

公開タイプ

@165{
  kState_Incomplete = 0,
  kState_Completing = 1,
  kState_Complete = 2
}
enum
Binding オブジェクトの状態のセット。

パブリック属性

mAuthMode
WeaveAuthMode
使用する Weave 認証モード。
mConnection
このバインディングで現在使用されている Weave 接続へのポインタ。
mEngine
この Binding に関連する ProtocolEngine オブジェクトへのポインタ。
mPeerNodeId
uint64_t
バインディング ターゲットの 64 ビットのノード ID。
mServiceMgr
このバインディングの完了に使用する ServiceManager オブジェクト(省略可)へのポインタ。
mState
uint8_t
現在の Binding オブジェクトの状態。
mTransport
uint8_t
この Binding の完了に使用するトランスポート。

パブリック関数

CompleteConfirm(WeaveConnection *aConnection)
void
バインド リクエストの確認を処理します。
CompleteConfirm(StatusReport & aReport)
void
バインド リクエストの失敗を処理する。
CompleteConfirm(void)
void
バインド リクエストの確認を処理します。
CompleteRequest(ProtocolEngine *aEngine)
バインディングの完了をリクエストします。
Connect(WeaveConnection *aConnection)
完了した接続を指定して TCP バインディングを完了します。
Finalize(void)
void
「未完了」解放します
Finalize(WEAVE_ERROR aErr)
void
「未完了」解放します
Free(void)
void
バインディング状態をクリアします。
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
Binding から ExchangeContext オブジェクトを生成します。
IncompleteIndication(StatusReport & aReport)
void
バインディングの失敗を処理する。
Init(const uint64_t & aPeerNodeId)
ノード ID のみで Binding を初期化します。
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
ピア ID とトランスポートに基づいて Binding オブジェクトを初期化します。
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
サービス エンドポイントに Binding オブジェクトを初期化します。
Init(WeaveConnection *aConnection)
WeaveConnection を使用して Binding オブジェクトを初期化します。
IsComplete(void)
bool
バインディングが完了したかどうかを確認します。
IsFree(void)
bool
バインディングが空であることを確認します。
UncompleteRequest(void)
void
バインディングが不完全になります。
UncompleteRequest(WEAVE_ERROR aErr)
void
バインディングが不完全になります。

公開タイプ

@165

 @165

Binding オブジェクトの状態のセット。

プロパティ
kState_Complete

完了して使用できる状態の Binding の状態。

kState_Completing

完了中の Binding の状態。

kState_Incomplete

Binding の初期(および最終)状態。

パブリック属性

mAuthMode

WeaveAuthMode mAuthMode

使用する Weave 認証モード。

(READ_ONLY)

これは、このバインディングによって管理されるすべての通信で使用される認証モードです。

mConnection

WeaveConnection * mConnection

このバインディングで現在使用されている Weave 接続へのポインタ。

(読み取り専用)

TCP バインディングは、すぐに接続して初期化することも、完了時に割り当てることもできます。

をご覧ください。

mEngine

ProtocolEngine * mEngine

この Binding に関連する ProtocolEngine オブジェクトへのポインタ。

通常、バインディングは特定のプロトコル エンジンに関して完了します。プロトコル エンジンは、主に MessageLayer にアクセスする方法として使用されます。ここで記録しています。

mPeerNodeId

uint64_t mPeerNodeId

バインディング ターゲットの 64 ビットのノード ID。

(読み取り専用)

すべての Binding にはターゲット エンティティがあり、ここで名前を指定します。Weave ノード ID のほか、サービス エンドポイントに名前を付けることができます。

mServiceMgr

nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr

このバインディングの完了に使用する ServiceManager オブジェクト(省略可)へのポインタ。

(読み取り専用)

Weave サービスにバインドする際、初期化時に Weave ノード ID の代わりに 64 ビットのサービス エンドポイント ID を指定できます。この場合、バインディングを完了するために ServiceManager オブジェクトも必要です。通常の TCP バインディングや WRMP バインディングには、ServiceManager オブジェクトは必要ありません。

mState

uint8_t mState

現在の Binding オブジェクトの状態。

「完了」は 1 つだけオペレーションは一度に実行できます。いずれの場合も、完了したバインディングの完了を求められた場合は、直ちに確定関数が呼び出されます。以下の状態変数は現在の状態を追跡し、ロックアウトとして機能します。

mTransport

uint8_t mTransport

この Binding の完了に使用するトランスポート。

(読み取り専用)

mTransport に指定できる値は、DMConstants.h で定義されています。

パブリック関数

バインディング

 Binding(
  void
)

Binding オブジェクトのデフォルト コンストラクタ。

すべての内部状態をクリアします。

CompleteConfirm

void CompleteConfirm(
  WeaveConnection *aConnection
)

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

詳細
パラメータ
[in] aConnection
バインディング ターゲットへのアクティブな WeaveConnection へのポインタ。

CompleteConfirm

void CompleteConfirm(
  StatusReport & aReport
)

バインド リクエストの失敗を処理する。

詳細
パラメータ
[in] aReport
エラーを説明する StatusReport オブジェクトへの参照。

CompleteConfirm

void CompleteConfirm(
  void
)

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

CompleteRequest

WEAVE_ERROR CompleteRequest(
  ProtocolEngine *aEngine
)

バインディングの完了をリクエストします。

バインディングの完了は、少なくとも TCP を必要とするバインディングの場合、ExchangeManager インスタンスへのアクセスを提供する特定の ProtocolEngine オブジェクトに対して実行されます。

詳細
パラメータ
[in] aEngine
その代りに完了が実行される ProtocolEngine オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
バインディングがすでに完了している場合。
WEAVE_ERROR_NO_MEMORY
接続が必要で、利用できるものがない場合
戻り値
それ以外の場合は、接続の試行中に WEAVE_ERROR が返されます。

接続

WEAVE_ERROR Connect(
  WeaveConnection *aConnection
)

完了した接続を指定して、TCP バインディングを完了します。

新たに初期化された TCP バインディングは、完了するまで使用できません。これは通常、アプリケーションがこのバインディングを利用してメッセージを送信しようとしたときにオンデマンドで行われますが、Weave 接続を提供することによって明示的に完了することもできます。

詳細
パラメータ
[in] aConnection
バインディングを完了するために使用される WeaveConnection へのポインタ。
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
バインディングにすでに接続がある場合。
WEAVE_ERROR_INVALID_ARGUMENT
接続が NULL の場合。

完了

void Finalize(
  void
)

「未完了」解放します

バインディングには、クリーンアップが必要な状態が含まれている場合があります。次に例を示します。接続クロージャは、Free() メソッドによって初期状態に単純にクリアされる状態に加え、Uncomplete() メソッドで処理されます。このメソッドは主に利便性のために、両方を呼び出します。

関連情報:
ファイナライズ(WEAVE_ERROR)

完了

void Finalize(
  WEAVE_ERROR aErr
)

「未完了」解放します

バインディングには、クリーンアップが必要な状態が含まれている場合があります。次に例を示します。接続クロージャは、Free() メソッドによって初期状態に単純にクリアされる状態に加え、Uncomplete() メソッドで処理されます。このメソッドは主に便宜上、両方を呼び出します。

詳細
パラメータ
[in] aErr
このエラーコードは、このリクエストの原因を示します。WEAVE_NO_ERROR でない場合、TCP 接続が中止される可能性があります。
関連情報:
ファイナライズ(無効)

無料

void Free(
  void
)

バインディング状態をクリアします。

すべてのバインディング状態を無条件に元の状態に戻します。

GetExchangeCtx

ExchangeContext * GetExchangeCtx(
  WeaveExchangeManager *aExchangeMgr,
  void *aAppState
)

Binding から ExchangeContext オブジェクトを生成します。

詳細
パラメータ
[in] aExchangeMgr
コンテキストをリクエストするエクスチェンジ マネージャーへのポインタ。
[in] aAppState
後で使用するためにエクスチェンジのコンテキストに保存されるアプリケーション状態オブジェクトへの void ポインタ。
戻り値
ExchangeContext オブジェクトへのポインタ。失敗した場合は NULL。

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

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

このメソッドは、完了後、つまり CompleteConfirm() が成功を示すステータスで呼び出された後でバインディングが失敗した場合に、上位レイヤのハンドラを呼び出します。

詳細
パラメータ
[in] aReport
エラーの内容を説明する StatusReport の参照。
関連情報:
CompleteConfirm(StatusReport &amp;aReport)

init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId
)

ノード ID のみで Binding を初期化します。

これにより、デフォルト トランスポートが構成されたバインディングが作成されます。

詳細
パラメータ
[in] aPeerNodeId
バインディング ターゲットの 64 ビット ID への参照。
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INVALID_ARGUMENT
バインディングが未指定の場合。

init

WEAVE_ERROR Init(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

ピア ID とトランスポートに基づいて Binding オブジェクトを初期化します。

詳細
パラメータ
[in] aPeerNodeId
バインディング ターゲットの 64 ビットのノード識別子への参照。
[in] aTransport
WeaveTransportOption のトランスポート仕様。
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INVALID_ARGUMENT
バインディングが未指定の場合。

init

WEAVE_ERROR Init(
  const uint64_t & aServiceEpt,
  WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

サービス エンドポイントに Binding オブジェクトを初期化します。

これにより、Google Nest サービスの特定のエンドポイントにバインドします。この種のバインディングには、ローカル サービス ディレクトリ キャッシュの入力や更新など、マルチステージの完了プロセスが必要です。このプロセスのほとんどはアプリケーションには表示されませんが、通常は関連する「確認」を介して、プロセスの後半で発生するエラーが発生する可能性があります。バインディングを使用(および完了)するための元のリクエストの後(場合によってはかなり後)のコールバック。

詳細
パラメータ
[in] aServiceEpt
対象の Weave サービス エンドポイントの 64 ビット識別子への参照。
[in] aServiceMgr
サービスティアの検索と接続に使用するサービス マネージャー インスタンスへのポインタ。
[in] aAuthMode
接続で使用する認証モード。
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INVALID_ARGUMENT
バインディングが未指定の場合。

init

WEAVE_ERROR Init(
  WeaveConnection *aConnection
)

WeaveConnection を使用して Binding オブジェクトを初期化します。

詳細
パラメータ
[in] aConnection
バインディングのベースとして使用する WeaveConnection へのポインタ。
戻り値
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INVALID_ARGUMENT
バインディングが未指定の場合。

IsComplete

bool IsComplete(
  void
)

バインディングが完了したかどうかを確認します。

詳細
戻り値
完了した場合は true、それ以外の場合は false です。
関連情報:
CompleteRequest(ProtocolEngine *aEngine)

IsFree

bool IsFree(
  void
)

バインディングが空であることを確認します。

「無料」この文脈での単に「定義されたピアノードが 表示されます。IsFree() should be thought of as meaning &quot;has had Free() それ以来使用されていません」

詳細
戻り値
バインディングが解放されている場合は true、それ以外の場合は false です。

UncompleteRequest

void UncompleteRequest(
  void
)

バインディングが不完全になります。

基本的に、バインディングは「未完了」のこのメソッドが呼び出された後の状態ですが、より厳密に言えば、バインディング自体に含まれていない関連する状態(たとえば、TCP 接続もクリーンアップする必要があります。アプリケーションでは、エラー発生時のクリーンアップの一環として UncompleteRequest() の呼び出しを検討する場合があります。

関連情報:
UncompleteRequest(WEAVE_ERROR )

UncompleteRequest

void UncompleteRequest(
  WEAVE_ERROR aErr
)

バインディングが不完全になります。

基本的に、バインディングは「未完了」のこのメソッドが呼び出された後の状態ですが、より厳密には、バインディング自体に含まれていない関連する状態(たとえば、TCP 接続もクリーンアップする必要があります。アプリケーションでは、エラー発生時のクリーンアップの一環として UncompleteRequest() の呼び出しを検討する場合があります。

詳細
パラメータ
[in] aErr
WEAVE_NO_ERROR でない場合、既存の接続(存在する場合)は正常に終了するのではなく、中止されます。
関連情報:
UncompleteRequest(void)

バインディング

virtual  ~Binding(
  void
)

Binding オブジェクトのデストラクタ。

すべての内部状態をクリアし、必要に応じて開いている接続を閉じます。