nl::Weave::ExchangeContext

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

このクラスは、2 つ以上のノード間での進行中の会話(ExchangeContext)を表します。

概要

TCP、UDP、Weave Reliable Messaging などのさまざまな転送メカニズムを介して ExchangeContext 内の Weave メッセージのエンコード方法と通信方法を定義します。

公開タイプ

@34{
  kSendFlag_AutoRetrans = 0x0001,
  kSendFlag_ExpectResponse = 0x0002,
  kSendFlag_RetransmissionTrickle = 0x0004,
  kSendFlag_DelaySend = 0x0008,
  kSendFlag_ReuseMessageId = 0x0010,
  kSendFlag_ReuseSourceId = 0x0020,
  kSendFlag_RetainBuffer = 0x0040,
  kSendFlag_AlreadyEncoded = 0x0080,
  kSendFlag_DefaultMulticastSourceAddress = 0x0100,
  kSendFlag_FromInitiator = 0x0200,
  kSendFlag_RequestAck = 0x0400,
  kSendFlag_NoAutoRequestAck = 0x0800,
  kSendFlag_MulticastFromLinkLocal = kSendFlag_DefaultMulticastSourceAddress
}
enum
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
この関数は、既存の Weave 接続が閉じられたときに呼び出すアプリケーション コールバックです。
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
主要なエラー メッセージ処理関数の型。
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
この関数は、受信した Weave メッセージを処理するアプリのコールバックです。
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
この関数は、レスポンス メッセージの受信のタイムアウトに達したときに呼び出すアプリケーション コールバックです。
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
この関数は、以前送信されたメッセージの再送信のタイムアウトに達したときに呼び出すアプリケーション コールバックです。
Timeout typedef
uint32_t
この ExchangeContext のタイムアウトを表すために使用される型(ミリ秒単位)。
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
この関数は、Weave Reliable Messaging Protocol の一部として要求した Weave メッセージの確認応答を受信したときに呼び出すアプリのコールバックです。
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
この関数は、Weave の Reliable Messaging Protocol の一部として、スロットル メッセージまたは配信遅延メッセージを受け取ったときに呼び出すアプリのコールバックです。
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
この関数は、Weave メッセージの送信中にエラーが発生したときに呼び出すアプリケーション コールバックです。

パブリック属性

AllowDuplicateMsgs
bool
特定のやり取りで重複メッセージが許可されるかどうかを示すブール値インジケーター。
AppState
void *
アプリ固有の状態オブジェクトへのポインタ。
Con
[読み取り専用] 関連付けられている Weave 接続。
EncryptionType
uint8_t
メッセージの送信時に使用する暗号化のタイプ。
ExchangeId
uint16_t
[読み取り専用] 割り当てられたエクスチェンジ ID。
ExchangeMgr
[読み取り専用] 所有するエクスチェンジ マネージャー。
KeyId
uint16_t
メッセージの送信時に使用する暗号鍵。
OnAckRcvd
受信確認に対するアプリのコールバック。
OnConnectionClosed
OnDDRcvd
遅延配信に関するメッセージを受信した場合のアプリケーションのコールバック
OnKeyError
この関数は、ピアから主要なエラー メッセージを受信したときに呼び出されるアプリケーション コールバックです。
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
送信中のエラーに対するアプリのコールバック。
OnThrottleRcvd
スロットル メッセージの受信に対するアプリのコールバック。
PeerAddr
IPAddress
[読み取り専用] ピアノードの IP アドレス。
PeerIntf
InterfaceId
[読み取り専用] ピアにメッセージを送信するときに使用する送信インターフェース。
PeerNodeId
uint64_t
[読み取り専用] ピアノードのノード ID。
PeerPort
uint16_t
[読み取り専用] ピアノードのポート。
ResponseTimeout
応答を待機する最大時間(ミリ秒)。0 はレスポンスのタイムアウトを無効にします。
RetransInterval
uint32_t
再送信の間隔(ミリ秒)。0 は再送信を無効にします。
mMsgProtocolVersion
uint16_t
ExchangeContext のメッセージ プロトコル バージョン。
mWRMPConfig
WRMP 設定。

パブリック関数

Abort(void)
void
Exchange コンテキストを直ちに中止し、そのコンテキストへのすべての参照を解放します。
AddRef(void)
void
交換コンテキストの参照カウンタを 1 つ増分します。
AutoRequestAck() const
bool
メッセージが送信されるたびに確認応答がリクエストされるかどうかを返します。
CancelRetrans(void)
void
Trickle 再送メカニズムをキャンセルします。
Close(void)
void
エクスチェンジ コンテキストを正常に終了します。
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
エクスチェンジ ヘッダーをメッセージ バッファにエンコードします。
GetAutoReleaseKey() const
bool
エクスチェンジが解放されたときに、エクスチェンジに関連付けられている暗号鍵を解放するかどうかを返します。
GetCurrentRetransmitTimeout(void)
uint32_t
現在の再送信タイムアウトを取得します。
GetPeerDescription(char *buf, uint32_t bufSize) const
void
ピアノードとそれに関連するアドレス / 接続情報を記述する文字列を作成します。
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
エクスチェンジのコンテキスト内でトリクル メッセージを処理します。
HasPeerRequestedAck(void) const
bool
ピアがこの交換で少なくとも 1 つのメッセージに対して確認応答をリクエストしたかどうかを確認します。
HasRcvdMsgFromPeer(void) const
bool
このエクスチェンジでピアから少なくとも 1 つのメッセージを受信したかどうかを確認します。
IsAckPending(void) const
bool
この交換でピアへの送信を保留中の確認応答がすでにあるかどうかを確認します。
IsConnectionClosed(void) const
bool
ExchangeContext にアクティブな WeaveConnection が関連付けられているかどうかを確認します。
IsInitiator(void) const
bool
コンテキストが交換の開始者かどうかを判断します。
IsResponseExpected(void) const
bool
この交換を介して送信されたメッセージに対するレスポンスが想定されているかどうかを確認します。
Release(void)
void
このエクスチェンジ コンテキストへの参照をリリースします。
SendCommonNullMessage(void)
Common::Null メッセージを送信します。
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
このエクスチェンジで Weave メッセージを送信します。
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
このエクスチェンジで Weave メッセージを送信します。
SetAckPending(bool inAckPending)
void
この交換でピアに確認応答を返す必要があるかどうかを設定します。
SetAutoReleaseKey(bool autoReleaseKey)
void
エクスチェンジが解放されたときに、エクスチェンジに関連付けられた暗号鍵を解放するかどうかを設定します。
SetAutoRequestAck(bool autoReqAck)
void
メッセージが送信されるたびに確認応答を要求するかどうかを設定します。
SetConnectionClosed(bool inConnectionClosed)
void
kFlagConnectionClosed フラグビットを設定します。
SetDropAck(bool inDropAck)
void
WeaveExchangeManager がこのコンテキストの確認応答を送信しないようにするかどうかを設定します。
SetInitiator(bool inInitiator)
void
kFlagInitiator フラグビットを設定します。
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
このエクスチェンジでピアからメッセージを受信したかどうかを設定します。
SetPeerRequestedAck(bool inPeerRequestedAck)
void
このエクスチェンジで受信した最後のメッセージで確認応答がリクエストされたかどうかを設定します。
SetResponseExpected(bool inResponseExpected)
void
このエクスチェンジでレスポンスが期待されるかどうかを設定します。
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
エクスチェンジが解放されたときに、エクスチェンジに関連付けられた Weave 接続を解放するかどうかを設定します。
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
対応する再送間隔と再ブロードキャストのしきい値を設定して、トリクル再送信メカニズムを設定します。
ShouldAutoReleaseConnection() const
bool
エクスチェンジが解放されたときに、エクスチェンジに関連付けられた Weave 接続を解放するかどうかを返します。
ShouldDropAck(void) const
bool
WeaveExchangeManager が確認応答を送信すべきでないかどうかを確認します。
StartTimerT(void)
Trickle 再ブロードキャスト アルゴリズムの定期的な再送信タイマー メカニズムを開始します。
TeardownTrickleRetransmit(void)
void
Trickle 内の周期的なタイマーをキャンセルし、Weave メッセージを保持しているメッセージ バッファを解放することで、Trickle の再送メカニズムを破棄します。
UseEphemeralUDPPort(void) const
bool
エクスチェンジ経由で送信されたアウトバウンド メッセージを、ローカルのエフェメラル UDP ポートから送信するかどうかを返します。
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
遅延配信メッセージを送信して、以前送信したメッセージが受信者に配信されるまでに予想される遅延が発生していることを送信者ノードに通知します。
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
ピアノードに Throttle Flow メッセージを送信して、メッセージの送信を抑制するようにリクエストします。

公開タイプ

@34

 @34
プロパティ
kSendFlag_AlreadyEncoded

メッセージがすでにエンコードされていることを示すために使用されます。

kSendFlag_AutoRetrans

自動再送信が有効であることを示すために使用されます。

kSendFlag_DefaultMulticastSourceAddress

IPv6 マルチキャスト メッセージの送信時に、デフォルトの IPv6 送信元アドレス選択を使用する必要があることを示すために使用されます。

kSendFlag_DelaySend

現在のメッセージの送信を遅延する必要があることを示すために使用されます。

kSendFlag_ExpectResponse

指定されたタイムアウト内にレスポンスが期待されることを示すために使用されます。

kSendFlag_FromInitiator

現在のメッセージがエクスチェンジの開始者であることを示すために使用されます。

kSendFlag_MulticastFromLinkLocal

kSendFlag_DefaultMulticastSourceAddress の非推奨のエイリアス。

kSendFlag_NoAutoRequestAck

メッセージの送信時に自動リクエスト確認応答機能を抑制します。

kSendFlag_RequestAck

確認応答を要求する WRM メッセージを送信するために使用されます。

kSendFlag_RetainBuffer

送信後にメッセージ バッファを解放してはならないことを示すために使用されます。

kSendFlag_RetransmissionTrickle

Trickle の再送要件を示すために使用されます。

kSendFlag_ReuseMessageId

メッセージ ヘッダーのメッセージ ID が再利用可能であることを示すために使用されます。

kSendFlag_ReuseSourceId

メッセージ ヘッダー内のソースノード ID が再利用可能であることを示すために使用されます。

@35

 @35
プロパティ
kGetPeerDescription_MaxLength

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

ConnectionClosedFunct

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

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

詳細
パラメータ
[in] ec
ExchangeContext オブジェクトへのポインタ。
[in] con
WeaveConnection オブジェクトへのポインタ。
[in] conErr
接続が終了したときに報告された WEAVE_ERROR タイプ。

KeyErrorFunct

void(* KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr)

主要なエラー メッセージ処理関数の型。

詳細
パラメータ
[in] ec
ExchangeContext オブジェクトへのポインタ。
[in] keyErr
主なエラー メッセージで報告された WEAVE_ERROR タイプ。

MessageReceiveFunct

void(* MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)

この関数は、受信した Weave メッセージを処理するアプリのコールバックです。

詳細
パラメータ
[in] ec
ExchangeContext オブジェクトへのポインタ。
[in] pktInfo
IPPacketInfo オブジェクトへのポインタ。
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] profileId
受信したメッセージのプロファイル ID。
[in] msgType
対応するプロファイルのメッセージ タイプ。
[in] payload
メッセージ ペイロードを保持する PacketBuffer オブジェクトへのポインタ。

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

この関数は、レスポンス メッセージの受信のタイムアウトに達したときに呼び出すアプリケーション コールバックです。

詳細
パラメータ
[in] ec
ExchangeContext オブジェクトへのポインタ。

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

この関数は、以前送信されたメッセージの再送信のタイムアウトに達したときに呼び出すアプリケーション コールバックです。

詳細
パラメータ
[in] ec
ExchangeContext オブジェクトへのポインタ。

タイムアウト

uint32_t Timeout

この ExchangeContext のタイムアウトを表すために使用される型(ミリ秒単位)。

WRMPAckRcvdFunct

void(* WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt)

この関数は、Weave Reliable Messaging Protocol の一部として要求した Weave メッセージの確認応答を受信したときに呼び出すアプリのコールバックです。

詳細
パラメータ
[in] ec
ExchangeContext オブジェクトへのポインタ。
[in] msgCtxt
確認応答対象の元のメッセージに関連付けられた特定のコンテキスト オブジェクトへのポインタ。

WRMPPauseRcvdFunct

void(* WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime)

この関数は、Weave の Reliable Messaging Protocol の一部として、スロットル メッセージまたは配信遅延メッセージを受け取ったときに呼び出すアプリのコールバックです。

これらの各メッセージには、この ExchangeContext で Weave メッセージの送信を一時停止する時間を示す時間値(ミリ秒単位)が伴います。

詳細
パラメータ
[in] ec
ExchangeContext オブジェクトへのポインタ。
[in] pauseTime
送信を一時停止する時間(ミリ秒単位)。

WRMPSendErrorFunct

void(* WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt)

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

詳細
パラメータ
[in] ec
ExchangeContext オブジェクトへのポインタ。
[in] err
メッセージの送信中に発生した WEAVE_ERROR タイプ。
[in] msgCtxt
レポート対象の元のメッセージに関連付けられた特定のコンテキスト オブジェクトへのポインタ。

パブリック属性

AllowDuplicateMsgs

bool AllowDuplicateMsgs

特定のやり取りで重複メッセージが許可されるかどうかを示すブール値インジケーター。

AppState

void * AppState

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

短所

WeaveConnection * Con

[読み取り専用] 関連付けられている Weave 接続。

EncryptionType

uint8_t EncryptionType

メッセージの送信時に使用する暗号化のタイプ。

ExchangeId

uint16_t ExchangeId

[読み取り専用] 割り当てられたエクスチェンジ ID。

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[読み取り専用] 所有するエクスチェンジ マネージャー。

KeyId

uint16_t KeyId

メッセージの送信時に使用する暗号鍵。

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

受信確認に対するアプリのコールバック。

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

遅延配信に関するメッセージを受信した場合のアプリケーションのコールバック

OnKeyError

KeyErrorFunct OnKeyError

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

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

送信中のエラーに対するアプリのコールバック。

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

スロットル メッセージの受信に対するアプリのコールバック。

PeerAddr

IPAddress PeerAddr

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

PeerIntf

InterfaceId PeerIntf

[読み取り専用] ピアにメッセージを送信するときに使用する送信インターフェース。

(UDP でのみ意味があります)。

PeerNodeId

uint64_t PeerNodeId

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

PeerPort

uint16_t PeerPort

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

ResponseTimeout

Timeout ResponseTimeout

応答を待機する最大時間(ミリ秒)。0 はレスポンスのタイムアウトを無効にします。

RetransInterval

uint32_t RetransInterval

再送信の間隔(ミリ秒)。0 は再送信を無効にします。

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

ExchangeContext のメッセージ プロトコル バージョン。

mWRMPConfig

WRMPConfig mWRMPConfig

WRMP 設定。

パブリック関数

中止

void Abort(
  void
)

Exchange コンテキストを直ちに中止し、そのコンテキストへのすべての参照を解放します。

AddRef

void AddRef(
  void
)

交換コンテキストの参照カウンタを 1 つ増分します。

AutoRequestAck

bool AutoRequestAck() const 

メッセージが送信されるたびに確認応答がリクエストされるかどうかを返します。

CancelRetrans

void CancelRetrans(
  void
)

Trickle 再送メカニズムをキャンセルします。

閉じる

void Close(
  void
)

エクスチェンジ コンテキストを正常に終了します。

この呼び出しは参照カウントを減らし、参照カウントがゼロになるとエクスチェンジを解放します。

EncodeExchHeader

WEAVE_ERROR EncodeExchHeader(
  WeaveExchangeHeader *exchangeHeader,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags
)

エクスチェンジ ヘッダーをメッセージ バッファにエンコードします。

詳細
パラメータ
[in] exchangeHeader
Weave Exchange ヘッダー オブジェクトへのポインタ。
[in] profileId
送信する Weave メッセージのプロファイル ID です。
[in] msgType
対応するプロファイルのメッセージ タイプ。
[in] msgBuf
Weave メッセージに必要な PacketBuffer へのポインタ。
[in] sendFlags
送信される Weave メッセージに対してアプリケーションが設定するフラグ。
戻り値
WEAVE_ERROR_BUFFER_TOO_SMALL
メッセージ バッファにエクスチェンジ ヘッダーをエンコードするための十分なスペースがない場合。
WEAVE_NO_ERROR
メッセージのエンコードが成功した場合。

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

エクスチェンジが解放されたときに、エクスチェンジに関連付けられている暗号鍵を解放するかどうかを返します。

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

現在の再送信タイムアウトを取得します。

この時間は、ExchangeContext にピアとの間でアクティブなメッセージ交換があるかどうかに基づいて、初期またはアクティブな再送タイムアウトのいずれかになります。

詳細
戻り値
現在の再送時刻。

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

ピアノードとそれに関連するアドレス / 接続情報を記述する文字列を作成します。

詳細
パラメータ
[in] buf
文字列を書き込むバッファへのポインタ。指定したバッファは、kGetPeerDescription_MaxLength 以上のサイズにしてください。指定されたバッファが小さいと、文字列は適合するように切り捨てられます。いずれの場合も、出力には NUL 終端文字が含まれます。
[in] bufSize
buf が指すバッファのサイズ。

HandleTrickleMessage

void HandleTrickleMessage(
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo
)

エクスチェンジのコンテキスト内でトリクル メッセージを処理します。

詳細
パラメータ
[in] pktInfo
IPPacketInfo オブジェクトへのポインタ。
[in] msgInfo
Weave メッセージ情報構造体へのポインタ。

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

ピアがこの交換で少なくとも 1 つのメッセージに対して確認応答をリクエストしたかどうかを確認します。

詳細
戻り値
「true」を返します。リクエストされている場合は「false」、それ以外の場合は「false」。

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

このエクスチェンジでピアから少なくとも 1 つのメッセージを受信したかどうかを確認します。

詳細
戻り値
「true」を返します。そうでない場合は「false」を返します。

IsAckPending

bool IsAckPending(
  void
) const 

この交換でピアへの送信を保留中の確認応答がすでにあるかどうかを確認します。

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

ExchangeContext にアクティブな WeaveConnection が関連付けられているかどうかを確認します。

詳細
戻り値
「true」を返します。閉じられた場合は false、それ以外の場合は false。

IsInitiator

bool IsInitiator(
  void
) const 

コンテキストが交換の開始者かどうかを判断します。

詳細
戻り値
「true」を返します。開始者の場合は「false」、それ以外の場合は「false」になります。

IsResponseExpected

bool IsResponseExpected(
  void
) const 

この交換を介して送信されたメッセージに対するレスポンスが想定されているかどうかを確認します。

詳細
戻り値
「true」を返します。レスポンスが期待される場合は、そうでない場合は「false」を返します。

リリース

void Release(
  void
)

このエクスチェンジ コンテキストへの参照をリリースします。

カウントが 1 まで下がった場合は、コンテキストを閉じて、すべてのアプリ コールバックをリセットして、すべてのタイマーを停止します。

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Common::Null メッセージを送信します。

詳細
戻り値
WEAVE_ERROR_NO_MEMORY
使用可能な PacketBuffer がない場合。
WEAVE_NO_ERROR
メソッドが成功したか、重大なエラーではなかった場合。
other
SendMessage() から返される別の重大なエラー。

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgPayload,
  uint16_t sendFlags,
  void *msgCtxt
)

このエクスチェンジで Weave メッセージを送信します。

詳細
パラメータ
[in] profileId
送信する Weave メッセージのプロファイル ID です。
[in] msgType
対応するプロファイルのメッセージ タイプ。
[in] msgBuf
Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
[in] sendFlags
送信される Weave メッセージに対してアプリケーションが設定するフラグ。
[in] msgCtxt
送信されるメッセージに関連付けるアプリケーション固有のコンテキスト オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_INVALID_ARGUMENT
この SendMessage API に無効な引数が渡された場合。
WEAVE_ERROR_SEND_THROTTLED
Weave の信頼できるメッセージング プロトコルを使用している場合に、このエクスチェンジ コンテキストがスロットリングされている場合。
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
特定の送信操作と、サポートされている Weave メッセージ プロトコルのバージョンが一致しない場合。たとえば、Weave メッセージ プロトコルのバージョンが V1 のときに、Weave Reliable Messaging のセマンティクスが試行されると、このエラーが生成されます。
WEAVE_ERROR_NOT_CONNECTED
コンテキストが、現在閉じている接続に関連付けられている場合。
WEAVE_ERROR_INCORRECT_STATE
エクスチェンジのコンテキストの状態が正しくない場合に発生します。
WEAVE_NO_ERROR
Weave レイヤがメッセージをネットワーク レイヤに正常に送信したかどうか。

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags,
  WeaveMessageInfo *msgInfo,
  void *msgCtxt
)

このエクスチェンジで Weave メッセージを送信します。

詳細
パラメータ
[in] profileId
送信する Weave メッセージのプロファイル ID です。
[in] msgType
対応するプロファイルのメッセージ タイプ。
[in] msgBuf
Weave メッセージを保持する PacketBuffer オブジェクトへのポインタ。
[in] sendFlags
送信される Weave メッセージに対してアプリケーションが設定するフラグ。
[in] msgInfo
WeaveMessageInfo オブジェクトへのポインタ。
[in] msgCtxt
送信されるメッセージに関連付けるアプリケーション固有のコンテキスト オブジェクトへのポインタ。
戻り値
WEAVE_ERROR_INVALID_ARGUMENT
この SendMessage API に無効な引数が渡された場合。
WEAVE_ERROR_SEND_THROTTLED
Weave の信頼できるメッセージング プロトコルを使用している場合に、このエクスチェンジ コンテキストがスロットリングされている場合。
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
特定の送信操作と、サポートされている Weave メッセージ プロトコルのバージョンが一致しない場合。たとえば、Weave メッセージ プロトコルのバージョンが V1 のときに、Weave Reliable Messaging のセマンティクスが試行されると、このエラーが生成されます。
WEAVE_ERROR_NOT_CONNECTED
コンテキストが、現在閉じている接続に関連付けられている場合。
WEAVE_ERROR_INCORRECT_STATE
エクスチェンジのコンテキストの状態が正しくない場合に発生します。
WEAVE_NO_ERROR
Weave レイヤがメッセージをネットワーク レイヤに正常に送信したかどうか。

SetAckPending

void SetAckPending(
  bool inAckPending
)

この交換でピアに確認応答を返す必要があるかどうかを設定します。

詳細
パラメータ
[in] inAckPending
受信したメッセージに対して確認応答を返すかどうか(true)または無効(false)を示すブール値。

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

エクスチェンジが解放されたときに、エクスチェンジに関連付けられた暗号鍵を解放するかどうかを設定します。

詳細
パラメータ
[in] autoReleaseKey
メッセージ暗号鍵を自動的に解放する場合は true。

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

メッセージが送信されるたびに確認応答を要求するかどうかを設定します。

詳細
パラメータ
[in] autoReqAck
メッセージが送信されるたびに確認応答を要求するかどうかを示すブール値。

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

kFlagConnectionClosed フラグビットを設定します。

このフラグは、ExchangeContext に関連付けられた WeaveConnection が閉じられた場合に設定されます。

詳細
パラメータ
[in] inConnectionClosed
コンテキストが接続に関連付けられたかどうか(true)または無効(false)を示すブール値。

SetDropAck

void SetDropAck(
  bool inDropAck
)

WeaveExchangeManager がこのコンテキストの確認応答を送信しないようにするかどうかを設定します。

内部、デバッグ専用。

詳細
パラメータ
[in] inDropAck
エクスチェンジに対して確認応答を送信するかどうか(true)または無効(false)を示すブール値。

SetInitiator

void SetInitiator(
  bool inInitiator
)

kFlagInitiator フラグビットを設定します。

このフラグは、交換を開始するノードによって設定されます。

詳細
パラメータ
[in] inInitiator
コンテキストが交換の開始者かどうか(true)または無効(false)を示すブール値。

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

このエクスチェンジでピアからメッセージを受信したかどうかを設定します。

詳細
パラメータ
[in] inMsgRcvdFromPeer
この交換コンテキストでピアからメッセージを受信したかどうか(true)または受信していない(false)かどうかを示すブール値。

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

このエクスチェンジで受信した最後のメッセージで確認応答がリクエストされたかどうかを設定します。

詳細
パラメータ
[in] inPeerRequestedAck
最後に受信したメッセージで、確認応答が要求されたかどうかを示すブール値(true)。

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

このエクスチェンジでレスポンスが期待されるかどうかを設定します。

詳細
パラメータ
[in] inResponseExpected
この交換でレスポンスが期待されるかどうか(true)またはそうでない(false)ことを示すブール値。

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

エクスチェンジが解放されたときに、エクスチェンジに関連付けられた Weave 接続を解放するかどうかを設定します。

詳細
パラメータ
[in] autoReleaseCon
Weave 接続を自動的に解放する場合は true。

SetupTrickleRetransmit

WEAVE_ERROR SetupTrickleRetransmit(
  uint32_t retransInterval,
  uint8_t threshold,
  uint32_t timeout
)

対応する再送間隔と再ブロードキャストのしきい値を設定して、トリクル再送信メカニズムを設定します。

詳細
パラメータ
[in] retransInterval
Trickle 再ブロードキャスト アルゴリズムの再送信間隔。
[in] threshold
メッセージが再ブロードキャストされる最大回数。
[in] timeout
トリクル再送信タイマーをキャンセルするまでの最大待機時間。
戻り値
WEAVE_NO_ERROR(トリクルのセットアップが成功した場合)、それ以外の場合は WEAVE_ERROR にマッピングされた INET_ERROR。

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

エクスチェンジが解放されたときに、エクスチェンジに関連付けられた Weave 接続を解放するかどうかを返します。

ShouldDropAck

bool ShouldDropAck(
  void
) const 

WeaveExchangeManager が確認応答を送信すべきでないかどうかを確認します。

内部、デバッグ専用。

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Trickle 再ブロードキャスト アルゴリズムの定期的な再送信タイマー メカニズムを開始します。

詳細
戻り値
成功した場合は WEAVE_NO_ERROR、それ以外の場合は WEAVE_ERROR にマッピングされた INET_ERROR。

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Trickle 内の周期的なタイマーをキャンセルし、Weave メッセージを保持しているメッセージ バッファを解放することで、Trickle の再送メカニズムを破棄します。

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

エクスチェンジ経由で送信されたアウトバウンド メッセージを、ローカルのエフェメラル UDP ポートから送信するかどうかを返します。

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

遅延配信メッセージを送信して、以前送信したメッセージが受信者に配信されるまでに予想される遅延が発生していることを送信者ノードに通知します。

メッセージが配信前に遅延する原因の 1 つとして、受信者のエンドノードがスリープ状態になっていることが考えられます。このメッセージは、送信パスの適切な中間ノードによって生成される場合があります。このノードは、配信の遅延について推測するのに十分な受信者に関する知識を持っています。このメッセージを受け取った送信者は、確認応答を返送するメッセージの再送タイマーを再調整します。

詳細
パラメータ
[in] pauseTimeMillis
以前送信したメッセージが配信される前に遅延すると予測される時間(ミリ秒単位)。
[in] delayedNodeId
メッセージ配信を遅延させるピアノードのノード識別子。
戻り値
WEAVE_ERROR_INVALID_ARGUMENT
この SendMessage API に無効な引数が渡された場合。
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
特定の送信操作と、サポートされている Weave メッセージ プロトコルのバージョンが一致しない場合。たとえば、Weave メッセージ プロトコルのバージョンが V1 のときに、Weave Reliable Messaging のセマンティクスが試行されると、このエラーが生成されます。
WEAVE_ERROR_NOT_CONNECTED
コンテキストが、現在閉じている接続に関連付けられている場合。
WEAVE_ERROR_INCORRECT_STATE
エクスチェンジのコンテキストの状態が正しくない場合に発生します。
WEAVE_NO_ERROR
Weave レイヤがメッセージをネットワーク レイヤに正常に送信したかどうか。

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

ピアノードに Throttle Flow メッセージを送信して、メッセージの送信を抑制するようにリクエストします。

詳細
パラメータ
[in] pauseTimeMillis
受信者が送信を抑制すると予想される時間(ミリ秒単位)。
戻り値
WEAVE_ERROR_INVALID_ARGUMENT
この SendMessage API に無効な引数が渡された場合。
WEAVE_ERROR_SEND_THROTTLED
Weave の信頼できるメッセージング プロトコルの使用時に、このエクスチェンジ コンテキストがスロットリングされている場合。
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
特定の送信操作と、サポートされている Weave メッセージ プロトコルのバージョンが一致しない場合。たとえば、Weave メッセージ プロトコルのバージョンが V1 のときに、Weave Reliable Messaging のセマンティクスが試行されると、このエラーが生成されます。
WEAVE_ERROR_NOT_CONNECTED
コンテキストが、現在閉じている接続に関連付けられていた場合。
WEAVE_ERROR_INCORRECT_STATE
エクスチェンジのコンテキストの状態が正しくない場合。
WEAVE_NO_ERROR
Weave レイヤがメッセージをネットワーク レイヤに正常に送信した場合、