nl::Weave::WeaveMessageLayer

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

他の Weave ノードとの通信を管理する WeaveMessageLayer クラスの定義。

概要

複数の InetLayer エンドポイントの 1 つを使用して、他の Weave ノードとの通信チャネルを確立します。

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

WeaveMessageLayer(void)
Weave メッセージ レイヤ コンストラクタ。

パブリック タイプ

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
この関数は、TCP 受信接続の処理中にエラーを報告するための上位レイヤのコールバックです。
CallbackRemovedFunct)(void *listenerState) typedef
void(*
この関数は、コールバックを削除するために呼び出されます。
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
この関数は、TCP 接続の受信を処理する上位レイヤのコールバックです。
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
この関数は、メッセージ レイヤのアクティビティの変更を報告するためのアプリケーション コールバックです。
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
この関数は、UDP 経由で Weave メッセージを受信したときに呼び出される上位レイヤのコールバックです。
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
この関数は、エラーが発生したときに呼び出される上位レイヤのコールバックです。
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
WeaveMessageLayer の状態。
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
この関数は、ローカル UDP トンネルでトンネリングされたパケットの受信時に呼び出される上位レイヤのコールバックです。

パブリック属性

AppState
void *
アプリケーション固有の状態オブジェクトへのポインタ。
ExchangeMgr
[読み取り専用] 関連付けられている WeaveExchangeManager オブジェクト。
FabricState
[読み取り専用] 関連付けられている WeaveFabricState オブジェクト。
IncomingConIdleTimeout
uint32_t
受信接続のデフォルトのアイドル タイムアウト(ミリ秒単位)。
Inet
InetLayer *
[読み取り専用] 関連する InetLayer オブジェクト。
IsListening
bool
[読み取り専用] 受信接続/メッセージをリッスンする場合は true、それ以外の場合は false です。
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[読み取り専用] 関連付けられている WeaveSecurityManager オブジェクト。
State
uint8_t
[読み取り専用] WeaveMessageLayer オブジェクトの状態。
SystemLayer
mDropMessage
bool
内部およびデバッグ専用。設定すると、WeaveMessageLayer はメッセージをドロップして返します。

パブリック関数

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
開いている TCP エンドポイントと UDP エンドポイントをすべて閉じます。
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
指定した 2 つの WeaveConnections を結合して WeaveConnectionTunnel を作成します。
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
受信した Weave メッセージから Weave メッセージ レイヤ ヘッダーをデコードします。
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
WeaveMessageLayer ヘッダーを PacketBuffer にエンコードします。
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Weave メッセージ レイヤのヘッダーを PacketBuffer にエンコードします。
EphemeralUDPPortEnabled(void) const
bool
ローカルで開始された Weave UDP 交換をエフェメラル UDP 送信元ポートから送信する必要があるかどうかを確認します。
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
使用中の WeaveConnections の数とプールのサイズを取得します。
IPv4ListenEnabled(void) const
bool
IPv4 経由のインバウンド通信をリッスンするように WeaveMessageLayer が構成されていることを確認します。
IPv6ListenEnabled(void) const
bool
IPv4 経由のインバウンド通信をリッスンするように WeaveMessageLayer が構成されていることを確認します。
Init(InitContext *context)
Weave メッセージ レイヤ オブジェクトを初期化します。
IsBoundToLocalIPv4Address(void) const
bool
WeaveMessageLayer がローカル IPv4 アドレスにバインドされていることを確認します。
IsBoundToLocalIPv6Address(void) const
bool
WeaveMessageLayer がローカル IPv6 アドレスにバインドされているかどうかを確認します。
IsMessageLayerActive(void)
bool
NewConnection(void)
プールから新しい WeaveConnection オブジェクトを作成します。
NewConnectionTunnel(void)
プールから新しい WeaveConnectionTunnel オブジェクトを作成します。
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
システムのネットワーク インターフェースの現在の状態に基づいて InetLayer エンドポイントを更新する。
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
基盤となる Inetlayer UDP エンドポイントを使用して、エンコードされた Weave メッセージを再送信します。
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
基盤となる Inetlayer UDP エンドポイントを使用して、エンコードされた Weave メッセージを再送信します。
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
基盤となる Inetlayer UDP エンドポイントを使用して、エンコードされた Weave メッセージを再送信します。
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
基盤となる Inetlayer UDP エンドポイントを使用して、エンコードされた Weave メッセージを再送信します。
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
エンコード後、基盤となる Inetlayer UDP エンドポイントを使用して Weave メッセージを送信します。
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
エンコード後、基盤となる Inetlayer UDP エンドポイントを使用して Weave メッセージを送信します。
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
エンコード後、基盤となる Inetlayer UDP エンドポイントを使用して Weave メッセージを送信します。
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ローカル UDP トンネルを介してトンネリングされたパケットを送信する機能。
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
メッセージ レイヤのアクティビティが変更されるたびに呼び出されるアプリケーション ハンドラを設定します。
SetTCPListenEnabled(bool val)
void
WeaveMessageLayer で受信 TCP 接続のリッスンを有効または無効にします。
SetUDPListenEnabled(bool val)
void
WeaveMessageLayer で受信 UDP メッセージのリッスンを有効または無効にします。
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
WeaveMessageLayer をシャットダウンします。
TCPListenEnabled(void) const
bool
受信 TCP 接続をリッスンするように WeaveMessageLayer が構成されていることを確認します。
UDPListenEnabled(void) const
bool
受信 UDP メッセージをリッスンするように WeaveMessageLayer が構成されていることを確認します。
UnsecuredListenEnabled(void) const
bool
エフェメラル UDP 送信元ポートからの Weave UDP エクスチェンジ開始を有効または無効にします。

静的パブリック関数

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
メッセージ設定と提供された PacketBuffer に対する Weave ペイロードの最大サイズを取得します。
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
ピアノードとそれに関連付けられたアドレス / 接続情報を記述する文字列を作成します。
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
ピアから受信したメッセージに関連付けられた情報に基づいて、ピアノードを記述する文字列を作成します。

クラス

nl::Weave::WeaveMessageLayer::InitContext

InitContext クラスの定義。

パブリック タイプ

AcceptErrorFunct

void(* AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err)

この関数は、TCP 受信接続の処理中にエラーを報告するための上位レイヤのコールバックです。

詳細
パラメータ
[in] msgLayer
WeaveMessageLayer オブジェクトへのポインタ。
[in] err
受信 TCP 接続の処理中に発生した WEAVE_ERROR。

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

この関数は、コールバックを削除するために呼び出されます。

詳細
パラメータ
[in] listenerState
アプリ状態オブジェクトへのポインタ。

ConnectionReceiveFunct

void(* ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con)

この関数は、TCP 接続の受信を処理する上位レイヤのコールバックです。

詳細
パラメータ
[in] msgLayer
WeaveMessageLayer オブジェクトへのポインタ。
[in] con
WeaveConnection オブジェクトへのポインタ。

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

この関数は、メッセージ レイヤのアクティビティの変更を報告するためのアプリケーション コールバックです。

少なくとも 1 つの未解決のエクスチェンジまたは保留中のメッセージ カウンタ同期リクエストがある場合、メッセージ レイヤはアクティブとみなされます。

詳細
パラメータ
[in] messageLayerIsActive
メッセージ レイヤがアクティブかどうかを示すブール値。

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload)

この関数は、UDP 経由で Weave メッセージを受信したときに呼び出される上位レイヤのコールバックです。

詳細
パラメータ
[in] msgLayer
WeaveMessageLayer オブジェクトへのポインタ。
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
トンネリング受信パケットを含む PacketBuffer メッセージへのポインタ。

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo)

この関数は、エラーが発生したときに呼び出される上位レイヤのコールバックです。

詳細
パラメータ
[in] msgLayer
WeaveMessageLayer オブジェクトへのポインタ。
[in] err
データの受信時に発生した WEAVE_ERROR。
[in] pktInfo
IPPacketInfo オブジェクトへの読み取り専用ポインタ。

状態

 State

WeaveMessageLayer の状態。

プロパティ
kState_Initialized

WeaveMessageLayer が初期化されたときの状態。

kState_Initializing

WeaveMessageLayer が初期化中の状態。

kState_NotInitialized

WeaveMessageLayer が初期化されていない場合の状態。

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload)

この関数は、ローカル UDP トンネルでトンネリングされたパケットの受信時に呼び出される上位レイヤのコールバックです。

詳細
パラメータ
[in] msgLayer
WeaveMessageLayer オブジェクトへのポインタ。
[in] payload
トンネリング受信パケットを含む PacketBuffer メッセージへのポインタ。

パブリック属性

AppState

void * AppState

アプリケーション固有の状態オブジェクトへのポインタ。

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

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

FabricState

WeaveFabricState * FabricState

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

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

受信接続のデフォルトのアイドル タイムアウト(ミリ秒単位)。

イネット

InetLayer * Inet

[読み取り専用] 関連する InetLayer オブジェクト。

IsListening

bool IsListening

[読み取り専用] 受信接続/メッセージをリッスンする場合は true、それ以外の場合は false です。

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

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

状態

uint8_t State

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

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

内部およびデバッグ専用。設定すると、WeaveMessageLayer はメッセージをドロップして返します。

パブリック関数

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

開いている TCP エンドポイントと UDP エンドポイントをすべて閉じます。

次に、開いている WeaveConnections をすべて中止し、開いている WeaveConnectionTunnel オブジェクトをすべてシャットダウンします。

関連項目:
Shutdown() も参照してください。

CreateTunnel

WEAVE_ERROR CreateTunnel(
  WeaveConnectionTunnel **tunPtr,
  WeaveConnection & conOne,
  WeaveConnection & conTwo,
  uint32_t inactivityTimeoutMS
)

指定した 2 つの WeaveConnections を結合して WeaveConnectionTunnel を作成します。

作成が成功すると、コンポーネント WeaveConnection オブジェクトに対応する TCPEndPoint が WeaveConnectionTunnel に引き継がれます。引き継がれない場合は、WeaveConnections が閉じられます。

詳細
パラメータ
[out] tunPtr
WeaveConnectionTunnel オブジェクトのポインタへのポインタ。
[in] conOne
1 つ目の WeaveConnection オブジェクトへの参照。
[in] conTwo
2 番目の WeaveConnection オブジェクトへの参照。
[in] inactivityTimeoutMS
Weave 接続トンネルがアイドル状態である最長時間(ミリ秒)。
戻り値
WEAVE_NO_ERROR
WeaveConnectionTunnel が正常に作成されていることを確認してください。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnectionTunnel のコンポーネント WeaveConnection オブジェクトが正しい状態でない場合。
WEAVE_ERROR_NO_MEMORY
新しい WeaveConnectionTunnel オブジェクトを作成できない場合。

DecodeHeader

WEAVE_ERROR DecodeHeader(
  PacketBuffer *msgBuf,
  WeaveMessageInfo *msgInfo,
  uint8_t **payloadStart
)

受信した Weave メッセージから Weave メッセージ レイヤ ヘッダーをデコードします。

詳細
パラメータ
[in] msgBuf
Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
[in] msgInfo
メッセージに関する情報を受け取る WeaveMessageInfo オブジェクトへのポインタ。
[out] payloadStart
デコードが完了した後のメッセージ バッファ内の位置へのポインタ。
戻り値
WEAVE_NO_ERROR
メッセージ ヘッダーのデコードに成功したとき。
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
渡されたメッセージ バッファの長さが無効の場合。
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Weave メッセージ ヘッダー形式のバージョンがサポートされていない場合。

EncodeMessage

WEAVE_ERROR EncodeMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf,
  WeaveConnection *con,
  uint16_t maxLen,
  uint16_t reserve
)

WeaveMessageLayer ヘッダーを PacketBuffer にエンコードします。

詳細
パラメータ
[in] msgInfo
エンコードされるメッセージに関する情報を含む WeaveMessageInfo オブジェクトへのポインタ。
[in] msgBuf
Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
[in] con
WeaveConnection オブジェクトへのポインタ。
[in] maxLen
エンコードされた Weave メッセージの最大長。
[in] reserve
ペイロードの前にある予約済みのスペース。Weave メッセージ ヘッダーを保持します。
戻り値
WEAVE_NO_ERROR
エラーが返されます。
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Weave メッセージ ヘッダー形式がサポートされていない場合。
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
メッセージ バッファのペイロード長がゼロの場合。
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
メールのヘッダーに含まれる暗号化タイプがサポートされていない
WEAVE_ERROR_MESSAGE_TOO_LONG
エンコードされたメッセージがリクエストされた最大値より長くなる場合。
WEAVE_ERROR_BUFFER_TOO_SMALL
メッセージ ペイロードの前後に十分なスペースがない場合。
other
セッション状態の取得時にファブリック状態オブジェクトによって生成されたエラー

EncodeMessage

WEAVE_ERROR EncodeMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *payload
)

Weave メッセージ レイヤのヘッダーを PacketBuffer にエンコードします。

詳細
パラメータ
[in] destAddr
宛先 IP アドレス。
[in] destPort
宛先ポート。
[in] sendIntId
Weave メッセージを送信するインターフェース。
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
Weave メッセージのエンコードに成功する
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Weave Message のバージョンがサポートされていない場合。
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
メッセージ バッファのペイロード長がゼロの場合。
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
暗号化タイプがサポートされていない場合。
WEAVE_ERROR_MESSAGE_TOO_LONG
エンコードされたメッセージがリクエストされた最大値より長くなる場合。
WEAVE_ERROR_BUFFER_TOO_SMALL
メッセージ ペイロードの前後に十分なスペースがない場合。
other
セッション状態の取得時にファブリック状態オブジェクトによって生成されたエラー

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

ローカルで開始された Weave UDP 交換をエフェメラル UDP 送信元ポートから送信する必要があるかどうかを確認します。

GetConnectionPoolStats

void GetConnectionPoolStats(
  nl::Weave::System::Stats::count_t & aOutInUse
) const 

使用中の WeaveConnections の数とプールのサイズを取得します。

詳細
パラメータ
[out] aOutInUse
使用中の接続数が格納される size_t の参照。

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

IPv4 経由のインバウンド通信をリッスンするように WeaveMessageLayer が構成されていることを確認します。

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

IPv4 経由のインバウンド通信をリッスンするように WeaveMessageLayer が構成されていることを確認します。

init

WEAVE_ERROR Init(
  InitContext *context
)

Weave メッセージ レイヤ オブジェクトを初期化します。

詳細
パラメータ
[in] context
InitContext オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
通知されます。
WEAVE_ERROR_INVALID_ARGUMENT
渡された InitContext オブジェクトが NULL の場合。
WEAVE_ERROR_INCORRECT_STATE
WeaveMessageLayer オブジェクトの状態が正しくない場合。
other
エンドポイントの作成時に下位の Inet レイヤによって生成されたエラー

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

WeaveMessageLayer がローカル IPv4 アドレスにバインドされていることを確認します。

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

WeaveMessageLayer がローカル IPv6 アドレスにバインドされているかどうかを確認します。

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

プールから新しい WeaveConnection オブジェクトを作成します。

詳細
戻り値
成功した場合は新しく作成された WeaveConnection オブジェクトへのポインタ。それ以外の場合は NULL。

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

プールから新しい WeaveConnectionTunnel オブジェクトを作成します。

詳細
戻り値
成功した場合は新しく作成された WeaveConnectionTunnel オブジェクトへのポインタ。それ以外の場合は NULL。

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

システムのネットワーク インターフェースの現在の状態に基づいて InetLayer エンドポイントを更新する。

詳細
戻り値
WEAVE_NO_ERROR
on successful refreshing of endpoints.
InetLayer
エラーの数を減らすことができます。

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

基盤となる Inetlayer UDP エンドポイントを使用して、エンコードされた Weave メッセージを再送信します。

詳細
パラメータ
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
エンコードされた Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
ネットワーク層にメッセージを正常に送信することの
errors
下位の Inet レイヤの UDP エンドポイントから生成されて

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

基盤となる Inetlayer UDP エンドポイントを使用して、エンコードされた Weave メッセージを再送信します。

詳細
パラメータ
[in] destAddr
宛先 IP アドレス。
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
エンコードされた Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
ネットワーク層にメッセージを正常に送信することの
errors
下位の Inet レイヤの UDP エンドポイントから生成されて

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

基盤となる Inetlayer UDP エンドポイントを使用して、エンコードされた Weave メッセージを再送信します。

詳細
パラメータ
[in] destAddr
宛先 IP アドレス。
[in] destPort
宛先ポート。
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
エンコードされた Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
ネットワーク層にメッセージを正常に送信することの
errors
下位の Inet レイヤの UDP エンドポイントから生成されて

ResendMessage

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId interfaceId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

基盤となる Inetlayer UDP エンドポイントを使用して、エンコードされた Weave メッセージを再送信します。

注: - 宛先アドレスが提供されていない場合は、メッセージ ヘッダー内のノード ID から判断してみてください。これができない場合は失敗します。 - 宛先アドレスがローカル ファブリックのファブリック アドレスで、呼び出し元が宛先ノード ID を指定していない場合は、宛先アドレスから抽出します。

詳細
パラメータ
[in] aDestAddr
宛先 IP アドレス。
[in] destPort
宛先ポート。
[in] interfaceId
Weave メッセージを送信するインターフェース。
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
エンコードされた Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
ネットワーク層にメッセージを正常に送信することの
errors
下位の Inet レイヤの UDP エンドポイントから生成されて

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

エンコード後、基盤となる Inetlayer UDP エンドポイントを使用して Weave メッセージを送信します。

詳細
パラメータ
[in] msgInfo
送信されるメッセージに関する情報を含む WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
エンコードされた Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
ネットワーク層にメッセージを正常に送信することの
errors
下位の Inet レイヤの UDP エンドポイントから生成されて

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

エンコード後、基盤となる Inetlayer UDP エンドポイントを使用して Weave メッセージを送信します。

注: 使用される宛先ポートは WEAVE_PORT です。 - 宛先アドレスが提供されていない場合は、メッセージ ヘッダー内のノード ID から特定しようとします。これができない場合は失敗します。

- 宛先アドレスがローカル ファブリックのファブリック アドレスで、呼び出し元が宛先ノード ID を指定していない場合は、宛先アドレスから抽出します。

詳細
パラメータ
[in] destAddr
宛先 IP アドレス。
[in] msgInfo
送信されるメッセージに関する情報を含む WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
エンコードされた Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
ネットワーク層にメッセージを正常に送信することの
errors
下位の Inet レイヤの UDP エンドポイントから生成されて

SendMessage

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntfId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

エンコード後、基盤となる Inetlayer UDP エンドポイントを使用して Weave メッセージを送信します。

注: - 宛先アドレスが提供されていない場合は、メッセージ ヘッダー内のノード ID から判断してみてください。これができない場合は失敗します。 - 宛先アドレスがローカル ファブリックのファブリック アドレスで、呼び出し元が宛先ノード ID を指定していない場合は、宛先アドレスから抽出します。

詳細
パラメータ
[in] aDestAddr
宛先 IP アドレス。
[in] destPort
宛先ポート。
[in] sendIntfId
Weave メッセージを送信するインターフェース。
[in] msgInfo
送信されるメッセージに関する情報を含む WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
エンコードされた Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
ネットワーク層にメッセージを正常に送信することの
WEAVE_ERROR_INVALID_ADDRESS
destAddr が指定されていないか、宛先ノード ID から決定できない場合。
errors
下位の Inet レイヤの UDP エンドポイントから生成されて

SendUDPTunneledMessage

WEAVE_ERROR SendUDPTunneledMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

ローカル UDP トンネルを介してトンネリングされたパケットを送信する機能。

UDP を介してトンネリングされた IPv6 データ メッセージを送信します。

詳細
パラメータ
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] destAddr
UDP トンネルの宛先の IPAddress。
[in] msgBuf
送信するパケットを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
ネットワーク層にメッセージを正常に送信することの
WEAVE_ERROR_INVALID_ADDRESS
destAddr が指定されていないか、宛先ノード ID から決定できない場合。
errors
下位の Inet レイヤの UDP エンドポイントから生成されて

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

メッセージ レイヤのアクティビティが変更されるたびに呼び出されるアプリケーション ハンドラを設定します。

具体的には、次のたびに申請が通知されます。

  • 開始されたエクスチェンジの数が変化します。
  • 保留中のメッセージ カウンタ同期リクエストが 0 から少なくとも 1 に変わり、その後 0 に戻る。ハンドラは、進行中の Weave の会話または保留中のレスポンスがあるかどうかを示す一般的なシグナルとして機能します。ハンドラは、WeaveMessageLayer が初期化された後に設定する必要があります。WeaveMessageLayer をシャットダウンすると、現在のハンドラは消去されます。

詳細
パラメータ
[in] messageLayerActivityChangeHandler
メッセージ レイヤ アクティビティが変更されるたびに呼び出される関数へのポインタ。
戻り値
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

WeaveMessageLayer で受信 TCP 接続のリッスンを有効または無効にします。

注: TCP リスニング状態が変更された後に、RefreshEndpoints() を呼び出す必要があります。

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

WeaveMessageLayer で受信 UDP メッセージのリッスンを有効または無効にします。

注: UDP リスニング状態が変更された後に、RefreshEndpoints() を呼び出す必要があります。

SetUnsecuredConnectionListener

WEAVE_ERROR SetUnsecuredConnectionListener(
  ConnectionReceiveFunct newOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved,
  bool force,
  void *listenerState
)

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

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

開いている Inet レイヤのエンドポイントをすべて閉じ、上位レイヤのコールバック、メンバー変数、オブジェクトをすべてリセットします。Shutdown() を呼び出して、WeaveMessageLayer オブジェクトを終了します。

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

受信 TCP 接続をリッスンするように WeaveMessageLayer が構成されていることを確認します。

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

受信 UDP メッセージをリッスンするように WeaveMessageLayer が構成されていることを確認します。

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

エフェメラル UDP 送信元ポートからの Weave UDP エクスチェンジ開始を有効または無効にします。

注: RefreshEndpoints() は、エフェメラル ポートの状態が変更された後に呼び出す必要があります。セキュリティで保護されていないリッスンが有効になっているかどうかを確認します。

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Weave メッセージ レイヤ コンストラクタ。

静的パブリック関数

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const PacketBuffer *msgBuf,
  bool isUDP,
  uint32_t udpMTU
)

メッセージ設定と提供された PacketBuffer に対する Weave ペイロードの最大サイズを取得します。

返される最大ペイロード サイズは、指定された PacketBuffer 内のペイロードに使用可能な容量を超えることはありません。

メッセージが UDP の場合、返される最大ペイロード サイズは、指定された UDP MTU をオーバーフローしない Weave メッセージになりません。

最終的に、返される最大ペイロード サイズによって、Weave メッセージの最大サイズを超える Weave メッセージになることはありません。

詳細
パラメータ
[in] msgBuf
メッセージ ペイロードの書き込み先となる PacketBuffer へのポインタ。
[in] isUDP
メッセージが UDP メッセージの場合は true。
[in] udpMTU
UDP MTU のサイズ。isUDP が false の場合は無視されます。
戻り値
Weave の最大ペイロード サイズ。

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  InterfaceId interfaceId,
  const WeaveConnection *con
)

ピアノードとそれに関連付けられたアドレス / 接続情報を記述する文字列を作成します。

生成される文字列の形式は、

 ([]:%, con )
のようになります。

詳細
パラメータ
[in] buf
文字列を書き込むバッファへのポインタ。指定するバッファは少なくとも kWeavePeerDescription_MaxLength 以上にする必要があります。小さいバッファが指定された場合、文字列が収まるように切り捨てられます。いずれの場合も、出力には NUL 終了文字が含まれます。
[in] bufSize
buf が指すバッファのサイズ。
[in] nodeId
出力されるノード ID。
[in] addr
出力する IP アドレスへのポインタ。IP アドレスを出力しない場合は NULL。
[in] port
出力される IP ポート番号。addr が NULL の場合、ポート番号は出力されません。
[in] interfaceId
出力されるインターフェースを識別する InterfaceId。出力文字列には、基盤となるネットワーク スタックが認識しているインターフェースの名前が含まれます。interfaceId が INET_NULL_INTERFACEID の場合、または addr が NULL の場合、インターフェース名は出力されません。
[in] con
ロギング ID を出力する必要がある WeaveConnection オブジェクトへのポインタ。接続 ID を出力しない場合は NULL。

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  const WeaveMessageInfo *msgInfo
)

ピアから受信したメッセージに関連付けられた情報に基づいて、ピアノードを記述する文字列を作成します。

詳細
パラメータ
[in] buf
文字列を書き込むバッファへのポインタ。指定するバッファは少なくとも kWeavePeerDescription_MaxLength 以上にする必要があります。小さいバッファが指定された場合、文字列が収まるように切り捨てられます。いずれの場合も、出力には NUL 終了文字が含まれます。
[in] bufSize
buf が指すバッファのサイズ。
[in] msgInfo
メッセージに関する情報を含む WeaveMessageInfo 構造体へのポインタ。