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{
|
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
パブリック関数
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() メソッドで処理されます。このメソッドは主に便宜上、両方を呼び出します。
詳細 | |||
---|---|---|---|
パラメータ |
|
ファイナライズ(無効)
無料
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 オブジェクトを初期化します。
これにより、Google Nest サービスの特定のエンドポイントにバインドします。この種のバインディングには、ローカル サービス ディレクトリ キャッシュの入力や更新など、マルチステージの完了プロセスが必要です。このプロセスのほとんどはアプリケーションには表示されませんが、通常は関連する「確認」を介して、プロセスの後半で発生するエラーが発生する可能性があります。バインディングを使用(および完了)するための元のリクエストの後(場合によってはかなり後)のコールバック。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
init
WEAVE_ERROR Init( WeaveConnection *aConnection )
WeaveConnection を使用して Binding オブジェクトを初期化します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
IsComplete
bool IsComplete( void )
バインディングが完了したかどうかを確認します。
詳細 | |
---|---|
戻り値 |
完了した場合は true、それ以外の場合は false です。
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
バインディングが空であることを確認します。
「無料」この文脈での単に「定義されたピアノードが 表示されます。IsFree() should be thought of as meaning "has had Free() それ以来使用されていません」
詳細 | |
---|---|
戻り値 |
バインディングが解放されている場合は true、それ以外の場合は false です。
|
UncompleteRequest
void UncompleteRequest( void )
バインディングが不完全になります。
基本的に、バインディングは「未完了」のこのメソッドが呼び出された後の状態ですが、より厳密に言えば、バインディング自体に含まれていない関連する状態(たとえば、TCP 接続もクリーンアップする必要があります。アプリケーションでは、エラー発生時のクリーンアップの一環として UncompleteRequest() の呼び出しを検討する場合があります。
関連情報:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
バインディングが不完全になります。
基本的に、バインディングは「未完了」のこのメソッドが呼び出された後の状態ですが、より厳密には、バインディング自体に含まれていない関連する状態(たとえば、TCP 接続もクリーンアップする必要があります。アプリケーションでは、エラー発生時のクリーンアップの一環として UncompleteRequest() の呼び出しを検討する場合があります。
詳細 | |||
---|---|---|---|
パラメータ |
|
UncompleteRequest(void)