nl::Weave::WeaveExchangeManager

#include <src/lib/core/WeaveExchangeMgr.h>

このクラスは、他の Weave ノードで ExchangeContexts を管理するために使用されます。

概要

上位層の代わりとして機能し、ExchangeContexts を作成し、未承諾メッセージ ハンドラの登録/登録解除を処理します。

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

WeaveExchangeManager(void)
WeaveExchangeManager クラスのコンストラクタ。

公開タイプ

State{
  kState_NotInitialized = 0,
  kState_Initialized = 1
}
enum

パブリック属性

FabricState
[読み取り専用] 関連付けられている FabricState オブジェクト。
MessageLayer
[読み取り専用] 関連付けられている WeaveMessageLayer オブジェクト。
State
uint8_t
[読み取り専用] WeaveExchangeManager オブジェクトの状態。

パブリック関数

AllowUnsolicitedMessages(WeaveConnection *con)
void
指定した接続での未承諾メッセージの受信を許可します。
ClearMsgCounterSyncReq(uint64_t peerNodeId)
void
そのピアへのすべての保留中のメッセージの MsgCounterSyncReq フラグを消去。
FindContext(uint64_t peerNodeId, WeaveConnection *con, void *appState, bool isInitiator)
指定されたパラメータ セットに一致するプールから ExchangeContext を見つけます。
Init(WeaveMessageLayer *msgLayer)
WeaveExchangeManager オブジェクトを初期化します。
NewBinding(Binding::EventCallback eventCallback, void *appState)
指定された引数を使用して、新しい Binding を割り当てます。
NewContext(const uint64_t & peerNodeId, void *appState)
ピアノード識別子で指定された特定のピア Weave ノードで新しい ExchangeContext を作成します。
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, void *appState)
ピアノード ID とピア IP アドレスで指定された特定のピア Weave ノードを使用して、新しい ExchangeContext を作成します。
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId sendIntfId, void *appState)
特定のインターフェース上のピアノード識別子、ピア IP アドレス、宛先ポートで指定された特定のピア Weave ノードを使用して、新しい ExchangeContext を作成します。
NewContext(WeaveConnection *con, void *appState)
指定された WeaveConnection で特定のピア Weave ノードを使用して、新しい ExchangeContext を作成します。
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, void *appState)
特定のプロファイル ID に未承諾のメッセージ ハンドラを登録します。
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
特定のプロファイル ID に未承諾のメッセージ ハンドラを登録します。
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, void *appState)
特定のプロファイル ID とメッセージ タイプに未承諾のメッセージ ハンドラを登録します。
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
特定のプロファイル ID とメッセージ タイプに未承諾のメッセージ ハンドラを登録します。
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, void *appState)
指定の Weave 接続で、特定のプロファイル識別子、メッセージ タイプに未承諾のメッセージ ハンドラを登録します。
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
指定の Weave 接続で、特定のプロファイル識別子、メッセージ タイプに未承諾のメッセージ ハンドラを登録します。
Shutdown(void)
WeaveExchangeManager をシャットダウンします。
UnregisterUnsolicitedMessageHandler(uint32_t profileId)
指定されたプロファイル ID に対する未承諾のメッセージ ハンドラの登録を解除します。
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType)
指定されたプロファイル ID とメッセージ タイプの未承諾メッセージ ハンドラの登録を解除します。
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con)
特定のプロファイル識別子、メッセージ タイプ、Weave 接続の未承諾メッセージ ハンドラの登録を解除します。

公開タイプ

 State
プロパティ
kState_Initialized

WeaveExchangeManager が初期化されたことを示すために使用されます。

kState_NotInitialized

WeaveExchangeManager が初期化されていないことを示すために使用されます。

パブリック属性

FabricState

WeaveFabricState * FabricState

[読み取り専用] 関連付けられている FabricState オブジェクト。

MessageLayer

WeaveMessageLayer * MessageLayer

[読み取り専用] 関連付けられている WeaveMessageLayer オブジェクト。

uint8_t State

[読み取り専用] WeaveExchangeManager オブジェクトの状態。

パブリック関数

AllowUnsolicitedMessages

void AllowUnsolicitedMessages(
  WeaveConnection *con
)

指定した接続での未承諾メッセージの受信を許可します。

このメソッドは、指定された Weave 接続にメッセージ受信ハンドラを設定します。

詳細
パラメータ
[in] con
Weave 接続オブジェクトへのポインタ。

ClearMsgCounterSyncReq

void ClearMsgCounterSyncReq(
  uint64_t peerNodeId
)

そのピアへのすべての保留中のメッセージの MsgCounterSyncReq フラグを消去。

詳細
パラメータ
[in] peerNodeId
宛先ノードのノード ID。

FindContext

ExchangeContext * FindContext(
  uint64_t peerNodeId,
  WeaveConnection *con,
  void *appState,
  bool isInitiator
)

指定されたパラメータ セットに一致するプールから ExchangeContext を見つけます。

詳細
パラメータ
[in] peerNodeId
ExchangeContext が設定されているピアのノード ID。
[in] con
ピアとの TCP 接続を表す WeaveConnection オブジェクトへのポインタ。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
[in] isInitiator
ローカルノードが交換の開始者かどうかを示すブール値インジケーター。
戻り値
指定されたパラメータに一致する ExchangeContext オブジェクトへのポインタ。成功した場合は NULL、一致しない場合は NULL。

init

WEAVE_ERROR Init(
  WeaveMessageLayer *msgLayer
)

WeaveExchangeManager オブジェクトを初期化します。

このインスタンスの存続期間中に、オブジェクトの構築後、インスタンスを終了する Shutdown の呼び出しが行われるまで、このメソッドが 1 回呼び出されます。

詳細
パラメータ
[in] msgLayer
WeaveMessageLayer オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_INCORRECT_STATE
状態が kState_NotInitialized と等しくない場合。
WEAVE_NO_ERROR
成功時。

NewBinding

Binding * NewBinding(
  Binding::EventCallback eventCallback,
  void *appState
)

指定された引数を使用して、新しい Binding を割り当てます。

詳細
パラメータ
[in] eventCallback
イベント コールバックに使用される関数ポインタ
[in] appState
後でイベント コールバックで保持されるコンテキストへのポインタ
戻り値
新しく割り当てられた Binding へのポインタ。プールが使い果たされている場合は NULL

NewContext

ExchangeContext * NewContext(
  const uint64_t & peerNodeId,
  void *appState
)

ピアノード識別子で指定された特定のピア Weave ノードで新しい ExchangeContext を作成します。

詳細
パラメータ
[in] peerNodeId
ExchangeContext が設定されているピアのノード ID。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
正常に作成された ExchangeContext オブジェクトへのポインタ。割り当てできないオブジェクトまたは使用可能なオブジェクトがない場合は NULL。

NewContext

ExchangeContext * NewContext(
  const uint64_t & peerNodeId,
  const IPAddress & peerAddr,
  void *appState
)

ピアノード ID とピア IP アドレスで指定された特定のピア Weave ノードを使用して、新しい ExchangeContext を作成します。

詳細
パラメータ
[in] peerNodeId
ExchangeContext が設定されているピアのノード ID。
[in] peerAddr
ピアノードの IP アドレス。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
正常に作成された ExchangeContext オブジェクトへのポインタ。割り当てできないオブジェクトまたは使用可能なオブジェクトがない場合は NULL を返します。

NewContext

ExchangeContext * NewContext(
  const uint64_t & peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  InterfaceId sendIntfId,
  void *appState
)

特定のインターフェース上のピアノード識別子、ピア IP アドレス、宛先ポートで指定された特定のピア Weave ノードを使用して、新しい ExchangeContext を作成します。

詳細
パラメータ
[in] peerNodeId
ExchangeContext が設定されているピアのノード ID。
[in] peerAddr
ピアノードの IP アドレス。
[in] peerPort
ピアノードのポート。
[in] sendIntfId
このエクスチェンジで Weave メッセージを送信するために使用するインターフェース。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
正常に作成された ExchangeContext オブジェクトへのポインタ。割り当てできないオブジェクトまたは使用可能なオブジェクトがない場合は NULL を返します。

NewContext

ExchangeContext * NewContext(
  WeaveConnection *con,
  void *appState
)

指定された WeaveConnection で特定のピア Weave ノードを使用して、新しい ExchangeContext を作成します。

詳細
パラメータ
[in] con
ピアとの TCP 接続を表す WeaveConnection オブジェクトへのポインタ。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
正常に作成された ExchangeContext オブジェクトへのポインタ。割り当てできないオブジェクトまたは使用可能なオブジェクトがない場合は NULL を返します。

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  ExchangeContext::MessageReceiveFunct handler,
  void *appState
)

特定のプロファイル ID に未承諾のメッセージ ハンドラを登録します。

このハンドラは、指定されたプロファイルのすべてのメッセージに対して呼び出されます。

詳細
パラメータ
[in] profileId
受信したメッセージのプロファイル ID。
[in] handler
未承諾メッセージ ハンドラ。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
未承諾のメッセージ ハンドラのプールがいっぱいで、新しいものを割り当てることができない場合。
WEAVE_NO_ERROR
成功時。

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  ExchangeContext::MessageReceiveFunct handler,
  bool allowDups,
  void *appState
)

特定のプロファイル ID に未承諾のメッセージ ハンドラを登録します。

このハンドラは、指定されたプロファイルのすべてのメッセージに対して呼び出されます。

詳細
パラメータ
[in] profileId
受信したメッセージのプロファイル ID。
[in] handler
未承諾メッセージ ハンドラ。
[in] allowDups
特定のプロファイルで重複メッセージが許可されるかどうかを示すブール値インジケーター。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
未承諾のメッセージ ハンドラのプールがいっぱいで、新しいものを割り当てることができない場合。
WEAVE_NO_ERROR
成功時。

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  ExchangeContext::MessageReceiveFunct handler,
  void *appState
)

特定のプロファイル ID とメッセージ タイプに未承諾のメッセージ ハンドラを登録します。

詳細
パラメータ
[in] profileId
受信したメッセージのプロファイル ID。
[in] msgType
対応するプロファイルのメッセージ タイプ。
[in] handler
未承諾メッセージ ハンドラ。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
未承諾のメッセージ ハンドラのプールがいっぱいで、新しいものを割り当てることができない場合。
WEAVE_NO_ERROR
成功時。

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  ExchangeContext::MessageReceiveFunct handler,
  bool allowDups,
  void *appState
)

特定のプロファイル ID とメッセージ タイプに未承諾のメッセージ ハンドラを登録します。

詳細
パラメータ
[in] profileId
受信したメッセージのプロファイル ID。
[in] msgType
対応するプロファイルのメッセージ タイプ。
[in] handler
未承諾メッセージ ハンドラ。
[in] allowDups
特定のプロファイル ID とメッセージ タイプで重複メッセージが許可されるかどうかを示すブール値インジケーター。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
未承諾のメッセージ ハンドラのプールがいっぱいで、新しいものを割り当てることができない場合。
WEAVE_NO_ERROR
成功時。

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  WeaveConnection *con,
  ExchangeContext::MessageReceiveFunct handler,
  void *appState
)

指定の Weave 接続で、特定のプロファイル識別子、メッセージ タイプに未承諾のメッセージ ハンドラを登録します。

詳細
パラメータ
[in] profileId
受信したメッセージのプロファイル ID。
[in] msgType
対応するプロファイルのメッセージ タイプ。
[in] con
ピアとの TCP 接続を表す WeaveConnection オブジェクトへのポインタ。
[in] handler
未承諾メッセージ ハンドラ。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
未承諾のメッセージ ハンドラのプールがいっぱいで、新しいものを割り当てることができない場合。
WEAVE_NO_ERROR
成功時。

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  WeaveConnection *con,
  ExchangeContext::MessageReceiveFunct handler,
  bool allowDups,
  void *appState
)

指定の Weave 接続で、特定のプロファイル識別子、メッセージ タイプに未承諾のメッセージ ハンドラを登録します。

詳細
パラメータ
[in] profileId
受信したメッセージのプロファイル ID。
[in] msgType
対応するプロファイルのメッセージ タイプ。
[in] con
ピアとの TCP 接続を表す WeaveConnection オブジェクトへのポインタ。
[in] handler
未承諾メッセージ ハンドラ。
[in] allowDups
指定した Weave 接続で、特定のプロファイル ID、メッセージ タイプに対して重複メッセージが許可されているかどうかを示すブール値インジケーター。
[in] appState
コンテキストの状態を保持する上位レイヤ オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
未承諾のメッセージ ハンドラのプールがいっぱいで、新しいものを割り当てることができない場合。
WEAVE_NO_ERROR
成功時。

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

WeaveExchangeManager をシャットダウンします。

これにより、オブジェクトのこのインスタンスが終了し、保持されているすべてのリソースが解放されます。

詳細
戻り値
WEAVE_NO_ERROR が無条件に発生します。

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId
)

指定されたプロファイル ID に対する未承諾のメッセージ ハンドラの登録を解除します。

詳細
パラメータ
[in] profileId
受信したメッセージのプロファイル ID。
戻り値
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
一致する未承諾メッセージ ハンドラが見つからない場合。
WEAVE_NO_ERROR
成功時。

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType
)

指定されたプロファイル ID とメッセージ タイプの未承諾メッセージ ハンドラの登録を解除します。

詳細
パラメータ
[in] profileId
受信したメッセージのプロファイル ID。
[in] msgType
対応するプロファイルのメッセージ タイプ。
戻り値
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
一致する未承諾メッセージ ハンドラが見つからない場合。
WEAVE_NO_ERROR
成功時。

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  WeaveConnection *con
)

特定のプロファイル識別子、メッセージ タイプ、Weave 接続の未承諾メッセージ ハンドラの登録を解除します。

詳細
パラメータ
[in] profileId
受信したメッセージのプロファイル ID。
[in] msgType
対応するプロファイルのメッセージ タイプ。
[in] con
ピアとの TCP 接続を表す WeaveConnection オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
一致する未承諾メッセージ ハンドラが見つからない場合。
WEAVE_NO_ERROR
成功時。

WeaveExchangeManager

 WeaveExchangeManager(
  void
)

WeaveExchangeManager クラスのコンストラクタ。

状態を kState_NotInitialized に設定します。