nl::Weave::WeaveConnection

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

Weave Connection クラスの定義。

概要

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

公開タイプ

@58{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
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
}
enum
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
}
enum
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
この接続を介して送信されるすべてのメッセージに、明示的にエンコードされた宛先ノード ID を含める必要がある場合は true、それ以外の場合は false です。
SendSourceNodeId
bool
この接続を介して送信されるすべてのメッセージに、明示的にエンコードされた送信元ノード ID を含める必要がある場合は 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)
ノード ID や IP アドレスを使用して Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
ノード ID や特定のインターフェースの IP アドレスを使用して Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t defaultPort)
ノード ID や文字列ホスト名を使用して Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
ノード ID や文字列ピアアドレスを使用して Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
ノード ID や文字列ピアアドレスを使用して 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)
Shutdown(void)
TCP の送信/シャットダウンが正常に実行され、すべての送信データがピアの TCP スタックによって送受信されたことを確認します。

公開タイプ

@58

 @58
プロパティ
kGetPeerDescription_MaxLength

GetPeerDescription() によって返される文字列の最大長(null 文字を含む)。

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 接続オブジェクトのネットワークの種類。

プロパティ
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 接続オブジェクトの状態。

プロパティ
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 オブジェクトへのポインタ。

パブリック属性

AppState

void * AppState

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

AuthMode

WeaveAuthMode AuthMode

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

DefaultEncryptionType

uint8_t DefaultEncryptionType

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

DefaultKeyId

uint16_t DefaultKeyId

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

MessageLayer

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。

PeerPort

uint16_t PeerPort

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

ReceiveEnabled

bool ReceiveEnabled

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

SendDestNodeId

bool SendDestNodeId

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

SendSourceNodeId

bool SendSourceNodeId

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

uint8_t State

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

パブリック関数

中止

void Abort(
  void
)

TCP ベースまたは BLE ベースの WeaveConnection の異常なクローズを行い、ピアとの間で処理中のデータをすべて破棄します。

Abort() を呼び出すと、基盤となる接続が直ちに終了します。この時点以降、この WeaveConnection オブジェクトは以降の通信に使用できなくなります。

Abort() を呼び出すと、このメソッドが呼び出されたときに接続がオープン/アクティブかどうかに関係なく、WeaveConnection オブジェクトに関連付けられた参照カウントが減少します。これにより、参照カウントが 0 に達すると、接続オブジェクトに関連付けられているリソースが解放されます。この状態になると、アプリケーションはこれ以上、オブジェクトを操作しないようにする必要があります。

関連情報:
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 オブジェクトに関連付けられた参照カウントが減少します。これにより、参照カウントが 0 に達すると、接続オブジェクトに関連付けられているリソースが解放されます。この状態になると、アプリケーションはこれ以上、オブジェクトを操作しないようにする必要があります。

詳細
戻り値
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 オブジェクトに関連付けられた参照カウントが減少します。これにより、参照カウントが 0 に達すると、接続オブジェクトに関連付けられているリソースが解放されます。この状態になると、アプリケーションはこれ以上、オブジェクトを操作しないようにする必要があります。

詳細
パラメータ
[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 から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

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

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

詳細
パラメータ
[in] peerNodeId
ピアのノード ID。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 から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

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

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

詳細
パラメータ
[in] peerNodeId
ピアのノード ID。kNodeIdNotSpecified、不明な場合は 0。
[in] authMode
ピアに必要な認証モード。サポートされているモードは、CASE、PASE、Unauthenticated のみです。
[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
宛先アドレスをノード識別子から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

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

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

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


:

:

[]:

詳細
パラメータ
[in] peerNodeId
ピアのノード ID。kNodeIdNotSpecified、不明な場合は 0。
[in] authMode
ピアに必要な認証モード。サポートされているモードは、CASE、PASE、Unauthenticated のみです。
[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 から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

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

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

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


:

:

[]:

詳細
パラメータ
[in] peerNodeId
ピアのノード ID。kNodeIdNotSpecified、不明な場合は 0。
[in] authMode
ピアに必要な認証モード。サポートされているモードは、CASE、PASE、Unauthenticated のみです。
[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 から推測できない場合。
other
TCPEndPoint 接続オペレーションによって生成された Inet レイヤエラー。

接続

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

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

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


:

:

[]:

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

DisableKeepAlive

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()

EnableKeepAlive

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 

IsIncoming

bool IsIncoming(
  void
) const 

LogId

uint16_t LogId(
  void
) const 

リリース

void Release(
  void
)

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

Release() メソッドは、WeaveConnection オブジェクトに関連付けられている参照カウントを減少させます。これにより参照カウントが 0 に達すると、接続が閉じ、接続オブジェクトが解放されます。この状態になると、アプリケーションはこれ以上、オブジェクトを操作しないようにする必要があります。

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 ユーザー タイムアウトのリセットに関連する Inet レイヤエラー。

SendMessage

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 オブジェクトがメッセージを受信するのに適切な状態でない場合。

SetIncoming

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()