nl::Weave::WeaveExchangeManager

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

このクラスは、他の Weave ノードとの ExchangeContext の管理に使用されます。

概要

これは上位レイヤに代わって動作し、ExchangeContext を作成して、未承諾のメッセージ ハンドラの登録/登録解除を処理します。

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

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)
ピアノード ID で指定された特定のピア 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)
特定のインターフェース上のピアノード ID、ピア 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 接続上の特定のプロファイル ID とメッセージ タイプの未承諾のメッセージ ハンドラを登録します。
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
指定された Weave 接続上の特定のプロファイル ID とメッセージ タイプの未承諾のメッセージ ハンドラを登録します。
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)
指定されたプロファイル ID、メッセージ タイプ、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。

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
)

ピアノード ID で指定された特定のピア 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
)

特定のインターフェース上のピアノード ID、ピア 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 接続上の特定のプロファイル ID とメッセージ タイプの未承諾のメッセージ ハンドラを登録します。

詳細
パラメータ
[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 接続上の特定のプロファイル ID とメッセージ タイプの未承諾のメッセージ ハンドラを登録します。

詳細
パラメータ
[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
)

指定されたプロファイル ID、メッセージ タイプ、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 に設定します。