nl::Weave::WeaveConnection

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

Weave Connection クラスの定義。

概要

これは、別の Weave ノードへの TCP または BLE 接続を表します。

パブリック タイプ

@58{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
列挙型
ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
この関数は、接続が閉じられたときに呼び出されるアプリケーション コールバックです。
ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
この関数は、接続の設定が完了したときに呼び出されるアプリケーション コールバックです。
MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
この関数は、Weave 接続でメッセージを受信すると呼び出されるアプリケーション コールバックです。
NetworkType{
  kNetworkType_Unassigned = 0,
  kNetworkType_IP = 1,
  kNetworkType_BLE = 2
}
列挙型
Weave 接続オブジェクトのネットワーク タイプ。
ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err) typedef
void(*
この関数は、Weave メッセージを受信したときにエラーが発生すると呼び出されるアプリケーション コールバックです。
State{
  kState_ReadyToConnect = 0,
  kState_Resolving = 1,
  kState_Connecting = 2,
  kState_EstablishingSession = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_Closed = 6
}
列挙型
Weave 接続オブジェクトの状態。
TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
この関数は、Weave 接続でトンネリング データ パケットを受信すると呼び出されるアプリケーション コールバックです。

パブリック属性

AppState
void *
アプリケーション固有の状態オブジェクトへのポインタ。
AuthMode
WeaveAuthMode
[読み取り専用] 接続のデフォルトの暗号鍵を確立するために使用される認証モード。
DefaultEncryptionType
uint8_t
メッセージのデフォルトの暗号化タイプ。
DefaultKeyId
uint16_t
メッセージの送信時に使用するデフォルトの暗号鍵。
MessageLayer
[読み取り専用] 関連付けられた WeaveMessageLayer オブジェクト。
NetworkType
uint8_t
[読み取り専用] 関連するエンドポイントのネットワーク タイプ。
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[読み取り専用] ピアノードの IP アドレス。
PeerNodeId
uint64_t
[読み取り専用] ピアのノード ID。
PeerPort
uint16_t
[読み取り専用] ピアノードのポート番号。
ReceiveEnabled
bool
[読み取り専用] 受信が有効になっている場合は true、それ以外の場合は false。
SendDestNodeId
bool
この接続を介して送信されるすべてのメッセージに、明示的にエンコードされた宛先ノード識別子を含める必要がある場合は true、それ以外の場合は false。
SendSourceNodeId
bool
この接続を介して送信されるすべてのメッセージに、明示的にエンコードされたソースノード識別子を含める必要がある場合は true、それ以外の場合は false。
State
uint8_t
[読み取り専用] WeaveConnection オブジェクトの状態。

パブリック関数

Abort(void)
void
TCP または BLE ベースの WeaveConnection を正常に終了します。ピアとの間で送受信される可能性のあるデータはすべて破棄します。
AddRef(void)
void
WeaveConnection オブジェクトへの参照を予約します。
Close(void)
TCP または BLE ベースの WeaveConnection のノンブロッキング グレースフル クローズを実行し、残りの送信データを提供し、接続をリセットしたことをリモートホストに丁寧に通知します。
Close(bool suppressCloseLog)
TCP または BLE ベースの WeaveConnection のノンブロッキング グレースフル クローズを実行し、残りの送信データを提供し、接続をリセットしたことをリモートホストに丁寧に通知します。
Connect(uint64_t peerNodeId)
指定したノード ID から取得したファブリック IP アドレスを使用して、Weave ノードに接続します。
Connect(uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
ノード識別子や IP アドレスを使用して Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
ノード インターフェースや特定のインターフェースの IP アドレスを使用して Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t defaultPort)
ノード識別子や文字列ホスト名を使用して Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
ノード識別子や文字列ピアアドレスを使用して Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
ノード識別子や文字列ピアアドレスを使用して Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
ノード ID またはホスト名とポートのリストを使用して、Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
ノード ID またはホスト名とポートのリストを使用して、Weave ノードに接続します。
DisableKeepAlive(void)
DisableReceive(void)
void
この WeaveConnection を介した受信を無効にします。
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
この WeaveConnection 経由での受信を有効にします。
GetPeerAddressInfo(IPPacketInfo & addrInfo)
ピアの IP アドレス情報を取得します。
GetPeerDescription(char *buf, size_t bufSize) const
void
接続に関連付けられたピアノードを記述する文字列を作成します。
GetTCPEndPoint(void) const
TCPEndPoint *
IsIncoming(void) const
bool
LogId(void) const
uint16_t
Release(void)
void
WeaveConnection オブジェクトの参照数を減らします。
ResetUserTimeout(void)
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
確立済みの接続を介して Weave メッセージを送信します。
SendTunneledMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Weave 接続経由でトンネリング パケットを送信する関数。
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Connect がタイムアウトまたはエラーを返すようにタイムアウトを設定します。
SetIdleTimeout(uint32_t timeoutMS)
基盤となるネットワーク レイヤ接続のアイドル タイムアウトを設定します。
SetIncoming(bool val)
void
SetUserTimeout(uint32_t userTimeoutMillis)
WeaveConnection::SetUserTimeout を使用します。
Shutdown(void)
正常な TCP 送信シャットダウンを実行し、すべての送信データがピアの TCP スタックによって送受信されるようにする。

パブリック タイプ

58

 @58
Properties
kGetPeerDescription_MaxLength

GetPeerDescription() から返される文字列の最大長(NUL 文字を含む)です。

ConnectionClosedFunct

void(* ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

この関数は、接続が閉じられたときに呼び出されるアプリケーション コールバックです。

詳細
パラメータ
[in] con
WeaveConnection オブジェクトへのポインタ。
[in] conErr
接続が閉じられたときに WEAVE_ERROR が発生しました。

ConnectionCompleteFunct

void(* ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

この関数は、接続の設定が完了したときに呼び出されるアプリケーション コールバックです。

詳細
パラメータ
[in] con
WeaveConnection オブジェクトへのポインタ。
[in] conErr
接続の設定中に WEAVE_ERROR が発生しました。

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

この関数は、Weave 接続でメッセージを受信すると呼び出されるアプリケーション コールバックです。

詳細
パラメータ
[in] con
WeaveConnection オブジェクトへのポインタ。
[in] msgInfo
メッセージに関する情報を含む WeaveMessageInfo 構造体へのポインタ。
[in] msgBuf
メッセージを保持する PacketBuffer オブジェクトへのポインタ。

NetworkType

 NetworkType

Weave 接続オブジェクトのネットワーク タイプ。

Properties
kNetworkType_BLE

BLE ネットワーク タイプ。

kNetworkType_IP

TCP/IP ネットワークの種類。

kNetworkType_Unassigned

未割り当てのネットワーク タイプ。

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err)

この関数は、Weave メッセージを受信したときにエラーが発生すると呼び出されるアプリケーション コールバックです。

詳細
パラメータ
[in] con
WeaveConnection オブジェクトへのポインタ。
[in] err
接続を介してデータを受信中に WEAVE_ERROR が発生しました。

状態

 State

Weave 接続オブジェクトの状態。

Properties
kState_Closed

接続が閉じられたときの状態。

kState_Connected

接続が確立されたときの状態。

kState_Connecting

接続が試行されている状態。

kState_EstablishingSession

安全なセッションが確立されている状態。

kState_ReadyToConnect

Weave 接続の初期化後の状態。

kState_Resolving

DNS 名前解決が行われているときの状態。

kState_SendShutdown

接続がシャットダウンされている状態。

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

この関数は、Weave 接続でトンネリング データ パケットを受信すると呼び出されるアプリケーション コールバックです。

詳細
パラメータ
[in] con
WeaveConnection オブジェクトへのポインタ。
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタです。
[in] msgBuf
受信したトンネル パケットを含む PacketBuffer オブジェクトへのポインタ。

パブリック属性

アプリの状態

void * AppState

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

認証モード

WeaveAuthMode AuthMode

[読み取り専用] 接続のデフォルトの暗号鍵を確立するために使用される認証モード。

DefaultEncryptionType(デフォルトの暗号化タイプ)

uint8_t DefaultEncryptionType

メッセージのデフォルトの暗号化タイプ。

デフォルト キー ID

uint16_t DefaultKeyId

メッセージの送信時に使用するデフォルトの暗号鍵。

メッセージ レイヤ

WeaveMessageLayer * MessageLayer

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

NetworkType

uint8_t NetworkType

[読み取り専用] 関連するエンドポイントのネットワーク タイプ。

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnConnectionComplete

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived(メッセージの受信時)

MessageReceiveFunct OnMessageReceived

OnReceiveError(受信エラー)

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

PeerAddr

IPAddress PeerAddr

[読み取り専用] ピアノードの IP アドレス。

PeerNodeId

uint64_t PeerNodeId

[読み取り専用] ピアのノード ID。

ピアポート

uint16_t PeerPort

[読み取り専用] ピアノードのポート番号。

ReceiveEnabled(受信の有効化)

bool ReceiveEnabled

[読み取り専用] 受信が有効になっている場合は true、それ以外の場合は false。

SendDestNodeId

bool SendDestNodeId

この接続を介して送信されるすべてのメッセージに、明示的にエンコードされた宛先ノード識別子を含める必要がある場合は true、それ以外の場合は false。

SendSourceNodeId

bool SendSourceNodeId

この接続を介して送信されるすべてのメッセージに、明示的にエンコードされたソースノード識別子を含める必要がある場合は true、それ以外の場合は false。

状態

uint8_t State

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

パブリック関数

中止

void Abort(
  void
)

TCP または BLE ベースの WeaveConnection を正常に終了します。ピアとの間で送受信される可能性のあるデータはすべて破棄します。

Abort() を呼び出すと、基盤となる接続がすぐに終了します。それ以降は、WeaveConnection オブジェクトを使用してこれ以上通信することはできません。

Abort() を呼び出すと、メソッドの呼び出し時に接続がオープン/アクティブであるかどうかにかかわらず、WeaveConnection オブジェクトに関連付けられた参照カウントが減ります。その結果、参照数がゼロになると、接続オブジェクトに関連付けられたリソースが解放されます。このとき、アプリケーションでオブジェクトを操作する必要はありません。

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

AddRef

void AddRef(
  void
)

WeaveConnection オブジェクトへの参照を予約します。

AddRef() メソッドは、WeaveConnection オブジェクトに関連付けられた参照カウントを増分します。アプリケーションは、AddRef() を呼び出すたびに、対応する Release()Close()Abort() のいずれかの呼び出しを行う必要があります。

閉じる

WEAVE_ERROR Close(
  void
)

TCP または BLE ベースの WeaveConnection のノンブロッキング グレースフル クローズを実行し、残りの送信データを提供し、接続をリセットしたことをリモートホストに丁寧に通知します。

この方法では、アプリケーション プロトコル レベルで確認応答されていない送信メッセージがリモートピアで受信されると保証されるわけではありません。TCP と BLE のどちらの場合も、基盤となるプロトコル スタックは、接続をリセットする前に保留中の送信データの提供をベストエフォート型で行います。TCP の場合、接続を閉じる前にトランスポート レイヤ メッセージの受信確認が必要な場合は、Close() の前に Shutdown() を使用する必要があります。BLE 接続には、Shutdown() に相当するものはありません。

BLE ベースの接続の場合、Close()WeaveConnection を閉じてすぐに終了しますが、すべての送信データが送信されるまで、基になる BLEEndPoint オブジェクトを残しておく場合があります。これは、Weave BleLayer 内に存在する Weave over BLE トランスポート プロトコルの実装の副作用です。

Close() が呼び出されると、WeaveConnection オブジェクトを使用して通信することはできなくなります。

Close() を呼び出すと、WeaveConnection オブジェクトに関連付けられた参照カウントが、メソッドが呼び出されたときに接続が開いている/アクティブなかどうかにかかわらず減ります。その結果、参照数がゼロになると、接続オブジェクトに関連付けられたリソースが解放されます。このとき、アプリケーションでオブジェクトを操作する必要はありません。

詳細
戻り値
WEAVE_NO_ERROR(無条件)。
関連情報:
Shutdown()Abort()AddRef()Release() も参照してください。

閉じる

WEAVE_ERROR Close(
  bool suppressCloseLog
)

TCP または BLE ベースの WeaveConnection のノンブロッキング グレースフル クローズを実行し、残りの送信データを提供し、接続をリセットしたことをリモートホストに丁寧に通知します。

この方法では、アプリケーション プロトコル レベルで確認応答されていない送信メッセージがリモートピアで受信されると保証されるわけではありません。TCP と BLE のどちらの場合も、基盤となるプロトコル スタックは、接続をリセットする前に保留中の送信データの提供をベストエフォート型で行います。TCP の場合、接続を閉じる前にトランスポート レイヤ メッセージの受信確認が必要な場合は、Close() の前に Shutdown() を使用する必要があります。BLE 接続には、Shutdown() に相当するものはありません。

BLE ベースの接続の場合、Close()WeaveConnection を閉じてすぐに終了しますが、すべての送信データが送信されるまで、基になる BLEEndPoint オブジェクトを残しておく場合があります。これは、Weave BleLayer 内に存在する Weave over BLE トランスポート プロトコルの実装の副作用です。

Close() が呼び出されると、WeaveConnection オブジェクトを使用して通信することはできなくなります。

Close() を呼び出すと、WeaveConnection オブジェクトに関連付けられた参照カウントが、メソッドが呼び出されたときに接続が開いている / アクティブなかどうかにかかわらず減ります。その結果、参照数がゼロになると、接続オブジェクトに関連付けられたリソースが解放されます。このとき、アプリケーションでオブジェクトを操作する必要はありません。

詳細
パラメータ
[in] suppressCloseLog
ログを抑制する必要がある場合は true、それ以外の場合は false。
戻り値
WEAVE_NO_ERROR(無条件)。
関連情報:
Shutdown()Abort()AddRef()Release() も参照してください。

接続

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

指定したノード ID から取得したファブリック IP アドレスを使用して、Weave ノードに接続します。

詳細
パラメータ
[in] peerNodeId
ピアのノード ID。
戻り値
WEAVE_NO_ERROR
ピアへの接続の開始に成功します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection の状態が正しくない場合。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
要求された認証モードがサポートされていない場合。
WEAVE_ERROR_INVALID_ADDRESS
宛先 ID をノード ID から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort
)

ノード識別子や IP アドレスを使用して Weave ノードに接続します。

詳細
パラメータ
[in] peerNodeId
ピアのノード識別子。kNodeIdNotSpecified、不明な場合は 0。
[in] peerAddr
ピアの IP アドレス。不明な場合は IPAddress::Any です。
[in] peerPort
ピアのオプションのポート。デフォルトは WEAVE_PORT です。
戻り値
WEAVE_NO_ERROR
ピアへの接続の開始に成功します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection の状態が正しくない場合。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
要求された認証モードがサポートされていない場合。
WEAVE_ERROR_INVALID_ADDRESS
宛先 ID をノード ID から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  InterfaceId intf
)

ノード インターフェースや特定のインターフェースの IP アドレスを使用して Weave ノードに接続します。

詳細
パラメータ
[in] peerNodeId
ピアのノード識別子。kNodeIdNotSpecified、不明な場合は 0。
[in] authMode
ピアに必要な認証モード。CASE、PASE、未認証のモードのみがサポートされています。
[in] peerAddr
ピアの IP アドレス。不明な場合は IPAddress::Any です。
[in] peerPort
ピアのオプションのポート。デフォルトは WEAVE_PORT です。
[in] intf
ピアノードへの接続に使用するオプションのインターフェース。デフォルトは INET_NULL_INTERFACEID です。
戻り値
WEAVE_NO_ERROR
ピアへの接続の開始に成功します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection の状態が正しくない場合。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
要求された認証モードがサポートされていない場合。
WEAVE_ERROR_INVALID_ADDRESS
宛先 ID をノード ID から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t defaultPort
)

ノード識別子や文字列ホスト名を使用して Weave ノードに接続します。

指定する場合、peerAddr は次のいずれかになります。


:

:

[]:

詳細
パラメータ
[in] peerNodeId
ピアのノード識別子。kNodeIdNotSpecified、不明な場合は 0。
[in] authMode
ピアに必要な認証モード。CASE、PASE、未認証のモードのみがサポートされています。
[in] peerAddr
ピアのアドレスまたはホスト名。NULL で終わる C 文字列で指定します。
[in] defaultPort
接続に使用するデフォルトのデフォルト ポート。peerAddr 文字列で指定されていない場合。
戻り値
WEAVE_NO_ERROR
ピアへの接続の開始に成功します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection の状態が正しくない場合。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
要求された認証モードがサポートされていない場合。
WEAVE_ERROR_INVALID_ADDRESS
宛先 ID をノード ID から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint16_t defaultPort
)

ノード識別子や文字列ピアアドレスを使用して Weave ノードに接続します。

指定する場合、peerAddr は次のいずれかになります。


:

:

[]:

詳細
パラメータ
[in] peerNodeId
ピアのノード識別子。kNodeIdNotSpecified、不明な場合は 0。
[in] authMode
ピアに必要な認証モード。CASE、PASE、未認証のモードのみがサポートされています。
[in] peerAddr
ピアのアドレスまたはホスト名(非 NULL 終端 C 文字列)。
[in] peerAddrLen
peerAddr 文字列の長さ。
[in] defaultPort
接続に使用するデフォルトのデフォルト ポート。peerAddr 文字列で指定されていない場合。
戻り値
WEAVE_NO_ERROR
ピアへの接続の開始に成功します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection の状態が正しくない場合。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
要求された認証モードがサポートされていない場合。
WEAVE_ERROR_INVALID_ADDRESS
宛先 ID をノード ID から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint8_t dnsOptions,
  uint16_t defaultPort
)

ノード識別子や文字列ピアアドレスを使用して Weave ノードに接続します。

指定する場合、peerAddr は次のいずれかになります。


:

:

[]:

詳細
パラメータ
[in] peerNodeId
ピアのノード識別子。kNodeIdNotSpecified、不明な場合は 0。
[in] authMode
ピアに必要な認証モード。CASE、PASE、未認証のモードのみがサポートされています。
[in] peerAddr
ピアのアドレスまたはホスト名(非 NULL 終端 C 文字列)。
[in] peerAddrLen
peerAddr 文字列の長さ。
[in] dnsOptions
ホスト名の解決方法を制御する整数値。値は #::nl::Inet::DNSOptions 列挙型の値の OR にする必要があります。
[in] defaultPort
接続に使用するデフォルトのデフォルト ポート。peerAddr 文字列で指定されていない場合。
戻り値
WEAVE_NO_ERROR
ピアへの接続の開始に成功します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection の状態が正しくない場合。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
要求された認証モードがサポートされていない場合。
WEAVE_ERROR_INVALID_ADDRESS
宛先 ID をノード ID から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  InterfaceId intf
)

ノード ID またはホスト名とポートのリストを使用して、Weave ノードに接続します。

詳細
パラメータ
[in] peerNodeId
ピアのノード ID。
[in] authMode
接続に使用された認証モード。
[in] hostPortList
ホスト名とポートのリスト。
[in] intf
ピアノードへの接続に使用するオプションのインターフェース。デフォルトは INET_NULL_INTERFACEID です。
戻り値
WEAVE_NO_ERROR
ピアへの接続の開始に成功します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection の状態が正しくない場合。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
要求された認証モードがサポートされていない場合。
WEAVE_ERROR_INVALID_ADDRESS
宛先 ID をノード ID から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  uint8_t dnsOptions,
  InterfaceId intf
)

ノード ID またはホスト名とポートのリストを使用して、Weave ノードに接続します。

詳細
パラメータ
[in] peerNodeId
ピアのノード ID。
[in] authMode
接続に使用された認証モード。
[in] hostPortList
ホスト名とポートのリスト。
[in] dnsOptions
ホスト名の解決方法を制御する整数値。値は #::nl::Inet::DNSOptions 列挙型の値の OR にする必要があります。
[in] intf
ピアノードへの接続に使用するオプションのインターフェース。デフォルトは INET_NULL_INTERFACEID です。
戻り値
WEAVE_NO_ERROR
ピアへの接続の開始に成功します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection の状態が正しくない場合。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
要求された認証モードがサポートされていない場合。
WEAVE_ERROR_INVALID_ADDRESS
宛先 ID をノード ID から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

KeepKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive

基盤となる TCP 接続で TCP キープアライブ プローブを無効にします。

注: このメソッドは、TCP 接続に基づく Weave 接続でのみ呼び出すことができます。このメソッドは、接続が可能な状態にある場合にのみ呼び出すことができます。

接続でキープアライブが有効になっていない場合、このメソッドは何も行いません。

詳細
戻り値
WEAVE_NO_ERROR
、接続での TCP キープアライブ プローブの正常な無効化。
WEAVE_ERROR_NOT_IMPLEMENTED
互換性のないエンドポイント(BLE など)をネットワーク レイヤに追加します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection オブジェクトがメッセージを送信できる正しい状態でない場合。
other
TCP エンドポイントに関連する Inet レイヤエラーにより、キープアライブ オペレーションが可能になります。

DisableReceive(無効にする)

void DisableReceive(
  void
)

この WeaveConnection を介した受信を無効にします。

このメソッドは、アプリケーションが TCP 接続で受信したデータを受信する準備ができていないことを示します。受信を再度有効にするには、アプリで EnableReceive() を呼び出して、適切なコールバックを呼び出して WeaveConnection が受信データを渡すことができます。

関連情報:
EnableReceive()

KeepKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive

基盤となる TCP 接続で TCP キープアライブ プローブを有効にします。

注: - このメソッドは、TCP 接続に基づく Weave 接続でのみ呼び出すことができます。 - このメソッドは、接続が可能な状態にある場合にのみ呼び出すことができます。

詳細
パラメータ
[in] interval
キープアライブ プローブの間隔(秒単位)。この値は、最後に送信されたデータパケットから最初のキープアライブ プローブの送信までの時間も制御します。
[in] timeoutCount
接続が失敗したと見なされる前の未確認のプローブの最大数。

- このメソッドは、キープアライブの間隔やタイムアウト回数を調整するために複数回呼び出すことができます。

詳細
戻り値
WEAVE_NO_ERROR
接続で TCP キープアライブ プローブの有効化が成功した場合。
WEAVE_ERROR_NOT_IMPLEMENTED
互換性のないエンドポイント(BLE など)をネットワーク レイヤに追加します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection オブジェクトがメッセージを送信できる正しい状態でない場合。
other
TCP エンドポイントに関連する Inet レイヤエラーにより、キープアライブ オペレーションが可能になります。

EnableReceive(受信の受信を有効にする)

void EnableReceive(
  void
)

この WeaveConnection 経由での受信を有効にします。

このメソッドは、アプリケーションが TCP 接続を介して受信したデータを受信する準備ができていることを WeaveConnection オブジェクトに通知するために使用されます。

関連情報:
DisableReceive()

GetPeerAddressInfo

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

ピアの IP アドレス情報を取得します。

詳細
パラメータ
[out] addrInfo
IPPacketInfo オブジェクトへの参照。
戻り値
WEAVE_NO_ERROR
成功
WEAVE_ERROR_NOT_IMPLEMENTED
互換性のないエンドポイント(BLE など)をネットワーク レイヤに追加します。

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize
) const 

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

詳細
パラメータ
[in] buf
文字列を書き込むバッファ。指定するバッファは、kGetPeerDescription_MaxLength 以上にする必要があります。バッファが小さい場合、それに合わせて文字列が切り捨てられます。すべての場合で、出力には NUL 終了文字が含まれます。
[in] bufSize
buf がポイントするバッファのサイズ。

GetTCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

着信

bool IsIncoming(
  void
) const 

LogId

uint16_t LogId(
  void
) const 

リリース

void Release(
  void
)

WeaveConnection オブジェクトの参照数を減らします。

Release() メソッドは、WeaveConnection オブジェクトに関連付けられた参照カウントをデクリメントします。その結果、参照数がゼロになると、接続が閉じて接続オブジェクトが解放されます。このとき、アプリケーションでオブジェクトを操作する必要はありません。

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout

TCP ユーザー タイムアウト ソケット オプションをシステムのデフォルトにリセットします。

注: - このメソッドは、TCP 接続に基づく Weave 接続でのみ呼び出すことができます。 - このメソッドは、接続が可能な状態にある場合にのみ呼び出すことができます。

- 接続でユーザー タイムアウトが設定されていない場合、このメソッドは何もしません。

詳細
戻り値
WEAVE_NO_ERROR
接続での TCP ユーザー タイムアウトのリセットに成功しました。
WEAVE_ERROR_NOT_IMPLEMENTED
互換性のないエンドポイント(BLE など)をネットワーク レイヤに追加します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection オブジェクトがメッセージを送信できる正しい状態でない場合。
other
TCP エンドポイントが TCP ユーザー タイムアウトをリセットしたことに関連するレイヤエラー。

メッセージ送信

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

確立済みの接続を介して Weave メッセージを送信します。

詳細
パラメータ
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタです。
[in] msgBuf
送信するパケットを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
メッセージを正常にネットワーク レイヤに送信する
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection オブジェクトがメッセージを送信できる正しい状態でない場合。
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
宛先ノード識別子が指定されていない場合。
WEAVE_ERROR_SENDING_BLOCKED
メッセージの送信に時間がかかりすぎる場合。
other
特定のエンドポイント送信オペレーションに関連する Inet レイヤエラー。

SendTunneledMessage

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Weave 接続経由でトンネリング パケットを送信する関数。

確立済みの接続を介してトンネル Weave メッセージを送信します。

詳細
パラメータ
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタです。
[in] msgBuf
送信するパケットを保持する PacketBuffer オブジェクトへのポインタ。
戻り値
WEAVE_NO_ERROR
メッセージを正常にネットワーク レイヤに送信する
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection オブジェクトがメッセージを送信できる正しい状態でない場合。
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
宛先ノード識別子が指定されていない場合。
WEAVE_ERROR_SENDING_BLOCKED
メッセージの送信に時間がかかりすぎる場合。
other
特定のエンドポイント送信オペレーションに関連する Inet レイヤエラー。

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Connect がタイムアウトまたはエラーを返すようにタイムアウトを設定します。

詳細
パラメータ
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

基盤となるネットワーク レイヤ接続のアイドル タイムアウトを設定します。

詳細
パラメータ
[in] timeoutMS
タイムアウト(ミリ秒単位)
戻り値
WEAVE_NO_ERROR
接続のアイドル タイムアウトが正常に設定されたとき。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection オブジェクトが正しいメッセージを受信するための状態でない場合。

着信

void SetIncoming(
  bool val
)

SetUserTimeout

WEAVE_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

WeaveConnection::SetUserTimeout を使用します。

TCP ユーザー タイムアウト ソケット オプションを設定します。

値が 0 より大きい場合は、TCP が対応する接続を強制的に閉じる前に、送信されたデータが未確認のままとなる可能性のある最大時間(ミリ秒)を指定します。オプションの値を 0 に指定した場合、TCP はシステムのデフォルトを使用します。詳しくは、RFC 5482 についてのページをご覧ください。

詳細
パラメータ
[in] userTimeoutMillis
Tcp ユーザーのタイムアウト値(ミリ秒単位)。

注: - このメソッドは、TCP 接続に基づく Weave 接続でのみ呼び出すことができます。 - このメソッドは、接続が可能な状態にある場合にのみ呼び出すことができます。

- このメソッドは複数回呼び出して、TCP ユーザーのタイムアウトを調整できます。

詳細
戻り値
WEAVE_NO_ERROR
接続の TCP ユーザー タイムアウトの設定の成功例。
WEAVE_ERROR_NOT_IMPLEMENTED
互換性のないエンドポイント(BLE など)をネットワーク レイヤに追加します。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection オブジェクトがメッセージを送信できる正しい状態でない場合。
other
TCP ユーザー タイムアウトの TCP エンドポイント設定に関連する Inet レイヤエラー。

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

正常な TCP 送信シャットダウンを実行し、すべての送信データがピアの TCP スタックによって送受信されるようにする。

TCP の実装の大部分(すべてではありません)では、送信シャットダウンを受信すると、リモートホストも接続側をシャットダウンするため、接続が終了します。続いて Close() を呼び出すと、WeaveConnection が終了します。

詳細
戻り値
WEAVE_NO_ERROR
TCP 接続のシャットダウンに成功しました。
WEAVE_ERROR_NOT_IMPLEMENTED
互換性のないエンドポイント(BLE など)をネットワーク レイヤに追加します。
WEAVE_ERROR_INCORRECT_STATE
シャットダウンを開始する前に、WeaveConnection オブジェクトが正しい状態でない場合。
other
特定のエンドポイント シャットダウン オペレーションに関連する Inet レイヤエラー。
関連情報:
Close()Abort() も参照してください。