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

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

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

概要

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

  • ユニキャスト UDP 通信を確立します。
  • 「any」ノードを持つ UDP ブロードキャスト。
  • 既知のピアノードとのユニキャスト WRMP 通信。
  • 既知のピアノードとの TCP 通信。
  • サービス マネージャー インスタンスを使用した既知のサービス エンドポイントとの 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 つのみです。いずれの場合でも、完了済みのバインディングの完了を要求した場合でも、Confirm 関数が直ちに呼び出されます。以下の状態変数は現在の状態を追跡し、ロックアウトとして機能します。

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 接続が中止された可能性があります。
関連項目:
Finalize(void)

無料

void Free(
  void
)

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

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

GetExchangeCtx

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

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

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

IncompleteIndication

void IncompleteIndication(
  StatusReport & aReport
)

バインディングのエラーを処理します。

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

詳細
パラメータ
[in] aReport
エラーを説明する StatusReport への参照。
関連項目:
CompleteConfirm(StatusReport &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 オブジェクトを初期化します。

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

詳細
パラメータ
[in] aServiceEpt
対象の Weave サービス エンドポイントの 64 ビット ID への参照。
[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
)

バインディングは無料です。

この文脈における「無料」は単に「定義されたピアノード ID を持つ」ことを意味します。IsFree() は、「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 オブジェクトのデストラクタ。

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