Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

nl ::織り:: WeaveMessageLayer

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

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

概要

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

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

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

パブリックタイプ

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
}
列挙型
TunneledMsgReceiveFunct )(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
この関数は、ローカルUDPトンネルを介してトンネリングパケットを受信したときに呼び出される上位層のコールバックです。

パブリック属性

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

公の行事

ClearUnsecuredConnectionListener ( ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints (void)
開いているすべてのTCPおよびUDPエンドポイントを閉じます。
CreateTunnel ( WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
作成WeaveConnectionTunnelを一緒に指定された2つのWeaveConnectionsを連結することによって。
DecodeHeader ( PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
受信したWeaveメッセージからWeaveMessageレイヤーヘッダーをデコードします。
EncodeMessage ( WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
エンコードA WeaveMessageLayerヘッダPacketBufferに。
EncodeMessage (const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
ウィーブメッセージレイヤーヘッダーをPacketBufferにエンコードします。
EphemeralUDPPortEnabled (void) const
bool
ローカルで開始されたWeaveUDP交換をエフェメラル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)
WeaveMessageレイヤーオブジェクトを初期化します。
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)
基盤となるInetlayerUDPエンドポイントを使用して、エンコードされたWeaveメッセージを再送信します。
ResendMessage (const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
基盤となるInetlayerUDPエンドポイントを使用して、エンコードされたWeaveメッセージを再送信します。
ResendMessage (const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
基盤となるInetlayerUDPエンドポイントを使用して、エンコードされたWeaveメッセージを再送信します。
ResendMessage (const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
基盤となるInetlayerUDPエンドポイントを使用して、エンコードされたWeaveメッセージを再送信します。
SendMessage ( WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
エンコード後、基盤となるInetlayerUDPエンドポイントを使用してWeaveメッセージを送信します。
SendMessage (const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
エンコード後、基盤となるInetlayerUDPエンドポイントを使用してWeaveメッセージを送信します。
SendMessage (const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
エンコード後、基盤となるInetlayerUDPエンドポイントを使用してWeaveメッセージを送信します。
SendUDPTunneledMessage (const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
ローカルUDPトンネルを介してトンネリングパケットを送信する機能。
SetSignalMessageLayerActivityChanged ( MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
メッセージレイヤーのアクティビティが変更されるたびに呼び出されるアプリケーションハンドラーを設定します。
SetTCPListenEnabled (bool val)
void
インバウンドTCP接続のために有効または無効にリスニングWeaveMessageLayer
SetUDPListenEnabled (bool val)
void
有効またはインバウンドUDPメッセージの無効化リスニングWeaveMessageLayer
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送信元ポートからのWeaveUDP交換の開始を有効または無効にします。

パブリック静的関数

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 ::織り:: 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

[READ ONLY]関連WeaveExchangeManagerのオブジェクト。

FabricState

WeaveFabricState * FabricState

[READ ONLY]関連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

[READ ONLY]関連WeaveSecurityManagerのオブジェクト。

状態

uint8_t State

[READ ONLY]状態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のオブジェクトを。

参照:
シャットダウン() 。

CreateTunnel

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

作成WeaveConnectionTunnelを一緒に指定された2つのWeaveConnectionsを連結することによって。

成功した創造に、成分に対応TCPEndPoints WeaveConnectionのオブジェクトはに引き渡されるWeaveConnectionTunnelさもなければWeaveConnectionsが閉じられています。

詳細
パラメーター
[out] tunPtr
ポインタへのポインタWeaveConnectionTunnelのオブジェクト。
[in] conOne
最初に参照WeaveConnectionのオブジェクト。
[in] conTwo
第二に参照WeaveConnectionのオブジェクト。
[in] inactivityTimeoutMS
Weave接続トンネルがアイドル状態になる可能性がある最大時間(ミリ秒単位)。
戻り値
WEAVE_NO_ERROR
作成に成功したのWeaveConnectionTunnel
WEAVE_ERROR_INCORRECT_STATE
もし成分WeaveConnection用のオブジェクトWeaveConnectionTunnelが正しい状態にありません。
WEAVE_ERROR_NO_MEMORY
新しい場合WeaveConnectionTunnelのオブジェクトを作成することはできません。

DecodeHeader

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

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

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

EncodeMessage

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

エンコードA 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_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
)

ウィーブメッセージレイヤーヘッダーを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_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 

ローカルで開始されたWeaveUDP交換をエフェメラル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からのインバウンド通信をリッスンするよう構成されています。

初期化

WEAVE_ERROR Init(
  InitContext *context
)

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

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

基盤となるInetlayerUDPエンドポイントを使用して、エンコードされた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
)

基盤となるInetlayerUDPエンドポイントを使用して、エンコードされた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
)

基盤となるInetlayerUDPエンドポイントを使用して、エンコードされた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
)

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

注:宛先アドレスが供給されていない-if、メッセージヘッダ内のノード識別子からそれを決定することを試みます。これができない場合は失敗します。 -宛先アドレスがローカルファブリックのファブリックアドレスであり、呼び出し元が宛先ノードIDを指定しなかった場合は、宛先アドレスからそれを抽出します。

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

メッセージを送る

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

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

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

メッセージを送る

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

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

注:使用-The宛先ポートがあるWEAVE_PORT 。 -宛先アドレスが指定されていない場合は、メッセージヘッダーのノード識別子から宛先アドレスを判別してください。これができない場合は失敗します。

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

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

メッセージを送る

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

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

注:宛先アドレスが供給されていない-if、メッセージヘッダ内のノード識別子からそれを決定することを試みます。これができない場合は失敗します。 -宛先アドレスがローカルファブリックのファブリックアドレスであり、呼び出し元が宛先ノード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トンネルを介してトンネリングパケットを送信する機能。

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

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

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

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

具体的には、アプリケーションは毎回通知されます。

  • 開かれた取引所の数が変わります。
  • 保留中のメッセージカウンタ同期要求の数がゼロから少なくとも1に変更され、ゼロに戻ります。ハンドラーは、進行中のWeave会話または保留中の応答があるかどうかを示す一般的なシグナルとして機能します。後にハンドラが設定されている必要がありWeaveMessageLayerが初期化されています。シャットダウンWeaveMessageLayerは現在のハンドラをクリアします。

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

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

インバウンドTCP接続のために有効または無効にリスニングWeaveMessageLayer

注: RefreshEndpoints() TCPリスニング状態が変更された後に呼び出さなければなりません。

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

有効またはインバウンドUDPメッセージの無効化リスニングWeaveMessageLayer

注: RefreshEndpoints() UDPリスニング状態が変更された後に呼び出さなければなりません。

SetUnsecuredConnectionListener

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

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

シャットダウンWeaveMessageLayer

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

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

かどうかをチェックしWeaveMessageLayerは、インバウンドTCP接続をリッスンするよう構成されています。

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

かどうかをチェックしWeaveMessageLayerは、インバウンドUDPメッセージをリッスンするように設定されています。

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

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

注: RefreshEndpoints()一時的なポートの状態が変更された後に呼び出さなければなりません。安全でないリスニングが有効になっているかどうかを確認します。

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

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

パブリック静的関数

GetMaxWeavePayloadSize

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

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

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

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

最後に、返される最大ペイロードサイズは、最大WeaveメッセージサイズをオーバーフローするWeaveメッセージにはなりません。

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

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
ポインタWeaveConnectionのロギングID印刷されるべき物体、接続IDを出力しない場合はNULL。

GetPeerDescription

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

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

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