nl::Weave::WeaveMessageLayer

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

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

概要

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

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

WeaveMessageLayer(void)
Weave Message レイヤのコンストラクタ。

公開タイプ

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 つの WeaveConnection を結合して 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
WeaveMessageLayer が IPv4 経由の受信通信をリッスンするように構成されているかどうかを確認します。
IPv6ListenEnabled(void) const
bool
WeaveMessageLayer が IPv4 経由の受信通信をリッスンするように構成されているかどうかを確認します。
Init(InitContext *context)
Weave Message レイヤ オブジェクトを初期化します。
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
WeaveMessageLayer が受信 TCP 接続をリッスンするように構成されているかどうかを確認します。
UDPListenEnabled(void) const
bool
WeaveMessageLayer が受信 UDP メッセージをリッスンするように構成されているかどうかを確認します。
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

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

Inet

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 オブジェクトに対応する TCPEndPoints が WeaveConnectionTunnel に渡されます。成功しなかった場合は、WeaveConnection が閉じられます。

詳細
パラメータ
[out] tunPtr
WeaveConnectionTunnel オブジェクトのポインタへのポインタ。
[in] conOne
最初の 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 Message ヘッダー形式のバージョンがサポートされていない場合。
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
メッセージ バッファ内のペイロードの長さが 0 の場合。
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 Message レイヤのヘッダーを PacketBuffer にエンコードします。

詳細
パラメータ
[in] destAddr
宛先 IP アドレス。
[in] destPort
宛先ポート。
[in] sendIntId
Weave メッセージを送信するインターフェース。
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] payload
Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
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
ファブリック状態オブジェクトによって生成されたエラーは、

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 

WeaveMessageLayer が IPv4 経由の受信通信をリッスンするように構成されているかどうかを確認します。

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

WeaveMessageLayer が IPv4 経由の受信通信をリッスンするように構成されているかどうかを確認します。

init

WEAVE_ERROR Init(
  InitContext *context
)

Weave Message レイヤ オブジェクトを初期化します。

詳細
パラメータ
[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
エンドポイントが正常に更新された場合に 通知を受け取ることができます
InetLayer
TCP/UDP エンドポイントの作成呼び出しに基づくエラー。

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
レイヤの UDP エンドポイントから生成されます。

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

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

具体的には、次のたびにアプリケーションに通知されます。

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

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

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

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

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

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

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

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

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 

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

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

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

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

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

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

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Weave Message レイヤのコンストラクタ。

静的パブリック関数

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 構造体へのポインタ。