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
この接続を介して送信されるすべてのメッセージに明示的にエンコードされた宛先ノード識別子を含める必要がある場合は 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)
ノード 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)
ノード識別子やホスト名とポートのリストを使用して、Weave ノードに接続します。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
ノード識別子やホスト名とポートのリストを使用して、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() によって返される文字列(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 接続オブジェクトのネットワーク タイプ。

プロパティ
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

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

SendSourceNodeId

bool SendSourceNodeId

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

状態

uint8_t State

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

パブリック関数

中止(abort)

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 から推定できない場合。
other
TCPEndPoint の接続操作によって生成された Inet レイヤのエラー。

交流

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

ノード ID や 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 から推定できない場合。
other
TCPEndPoint の接続操作によって生成された Inet レイヤのエラー。

交流

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

特定のインターフェースでノード ID や 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
ノード識別子から宛先アドレスを推定できない場合。
other
TCPEndPoint の接続操作によって生成された Inet レイヤのエラー。

交流

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

ノード ID や文字列のホスト名を使用して、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 から推定できない場合。
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
ピアのノード識別子(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 から推定できない場合。
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
ピアのノード識別子(kNodeIdNotSpecified、不明な場合は 0)。
[in] authMode
ピアに望ましい認証モード。CASE、PASE、未認証モードのみがサポートされています。
[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
)

ノード識別子やホスト名とポートのリストを使用して、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
)

ノード識別子やホスト名とポートのリストを使用して、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
互換性のないエンドポイント(ネットワーク レイヤに配置されます。
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
互換性のないエンドポイント(ネットワーク レイヤに配置されます。
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
この関数が互換性のないエンドポイント(ネットワーク レイヤに配置されます。

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 オブジェクトに関連付けられた参照カウントを減らします。参照数がゼロに達すると、接続が終了し、接続オブジェクトが解放されます。この場合、アプリはそれ以上オブジェクトとやり取りできないようにする必要があります。

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout のいずれか

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

注: - このメソッドは、TCP 接続を基盤とする Weave 接続でのみ呼び出すことができます。- このメソッドは、接続が送信を許可されている状態にある場合にのみ呼び出すことができます。

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

詳細
戻り値
WEAVE_NO_ERROR
接続の TCP ユーザー タイムアウトが正常にリセットされた場合。
WEAVE_ERROR_NOT_IMPLEMENTED
互換性のないエンドポイント(ネットワーク レイヤに配置されます。
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
互換性のないエンドポイント(ネットワーク レイヤに配置されます。
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
互換性のないエンドポイント(ネットワーク レイヤに配置されます。
WEAVE_ERROR_INCORRECT_STATE
シャットダウンを開始する前に、WeaveConnection オブジェクトが正しい状態でない場合。
other
特定のエンドポイントのシャットダウン オペレーションに関連する Inet レイヤのエラー。
関連項目:
Close()Abort()