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{
|
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
パブリック関数
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
バインド リクエストの失敗を処理します。
詳細 | |||
---|---|---|---|
パラメータ |
|
CompleteConfirm
void CompleteConfirm( void )
バインド リクエストの確認を処理します。
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
バインディングの完了をリクエストします。
バインディングの完了は、少なくとも TCP を必要とするバインディングの場合、ExchangeManager インスタンスへのアクセスを提供する特定の ProtocolEngine オブジェクトに対して行われます。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
||||||
戻り値 |
それ以外の場合は、接続試行中に WEAVE_ERROR が返されます。
|
交流
WEAVE_ERROR Connect( WeaveConnection *aConnection )
完了した接続を提供して、TCP バインディングを完了します。
新しく初期化された TCP バインディングは、完了するまで使用できません。これは通常、アプリケーションがバインディングを利用してメッセージを送信しようとしたときにオンデマンドで行われますが、Weave 接続を提供することで明示的に完了することもできます。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
ファイナライズ
void Finalize( void )
バインディングを「未完了」にして解放します。
バインディングには、Free() メソッドによって単純に初期状態にクリアする状態に加えて、クリーンアップを必要とする状態(例: Uncomplete() メソッドで処理される接続のクロージング)がある場合があります。このメソッドは主に便宜上、両方を呼び出します。
関連項目:最終処理(WEAVE_ERROR)
ファイナライズ
void Finalize( WEAVE_ERROR aErr )
バインディングを「未完了」にして解放します。
バインディングには、Free() メソッドによって単純に初期状態にクリアする状態に加えて、クリーンアップを必要とする状態(例: Uncomplete() メソッドで処理される接続のクロージング)がある場合があります。このメソッドは主に便宜上、両方を呼び出します。
詳細 | |||
---|---|---|---|
パラメータ |
|
Finalize(void)
無料
void Free( void )
バインディング状態をクリアします。
すべてのバインディング状態を元の状態に無条件に返します。
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Binding から ExchangeContext オブジェクトを生成します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
ExchangeContext オブジェクトへのポインタ、または失敗した場合は NULL。
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
バインディングのエラーを処理します。
このメソッドは、完了後にバインディングが失敗した場合、つまり、成功を示すステータスで CompleteConfirm() が呼び出された後に、上位レイヤのハンドラを呼び出します。
詳細 | |||
---|---|---|---|
パラメータ |
|
CompleteConfirm(StatusReport &aReport)。
init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
ノード ID のみを使用して Binding を初期化します。
これにより、構成済みのデフォルト トランスポートを使用したバインディングが作成されます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
ピア ID とトランスポートに基づいて Binding オブジェクトを初期化します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
サービス エンドポイントに対して Binding オブジェクトを初期化します。
これは、Nest サービスの特定のエンドポイントにバインドする方法です。この種のバインディングには、ローカル サービス ディレクトリ キャッシュへの挿入または更新を含むマルチステージ完了プロセスが必要です。ほとんどの場合、このプロセスはアプリケーションには見えませんが、プロセスの後半で発生するエラーは、通常は関連する「confirm」コールバックを介して、バインディングを使用(および完了)する元のリクエストの後(場合によってはかなり後)に送られる可能性があります。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
init
WEAVE_ERROR Init( WeaveConnection *aConnection )
WeaveConnection を使用して Binding オブジェクトを初期化します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
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() の呼び出しを検討できます。
詳細 | |||
---|---|---|---|
パラメータ |
|
UncompleteRequest(void)