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 プロトコルの一部として、確認応答をリクエストした Weave メッセージに対して確認応答を受け取ったときに呼び出すアプリケーション コールバックです。
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
この関数は、Weave Reliable Messaging プロトコルの一部として Throttle メッセージまたは Delayed Delivery メッセージを受信したときに呼び出すアプリケーション コールバックです。
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
受信した Delayed Delivery メッセージに対するアプリケーションのコールバック。
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)
ピアノードにスロットル フロー メッセージを送信して、メッセージの送信をスロットリングするようリクエストします。

パブリック タイプ

@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

トリクルの再送信の要件を示すために使用します。

kSendFlag_ReuseMessageId

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

kSendFlag_ReuseSourceId

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

@35

 @35
プロパティ
kGetPeerDescription_MaxLength

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

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 プロトコルの一部として、確認応答をリクエストした Weave メッセージに対して確認応答を受け取ったときに呼び出すアプリケーション コールバックです。

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

WRMPPauseRcvdFunct

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

この関数は、Weave Reliable Messaging プロトコルの一部として Throttle メッセージまたは Delayed Delivery メッセージを受信したときに呼び出すアプリケーション コールバックです。

各メッセージには時間値(ミリ秒単位)が付きます。時間値は、この 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

受信した Delayed Delivery メッセージに対するアプリケーションのコールバック。

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 構成。

パブリック関数

中止(abort)

void Abort(
  void
)

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

AddRef

void AddRef(
  void
)

エクスチェンジ コンテキストの参照カウンタを 1 つ増やします。

AutoRequestAck

bool AutoRequestAck() const 

メッセージの送信時に確認応答が要求されるかどうかを返します。

CancelRetrans

void CancelRetrans(
  void
)

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

閉じる

void Close(
  void
)

エクスチェンジのコンテキストを正常に閉じます。

この呼び出しによって参照カウントが減り、参照カウントが 0 になると交換が解放されます。

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」を返します。

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

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

詳細
戻り値
メッセージを受信した場合は「true」、それ以外の場合は「false」を返します。

IsAckPending

bool IsAckPending(
  void
) const 

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

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

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

詳細
戻り値
接続が閉じている場合は「true」を返し、それ以外の場合は「false」を返します。

IsInitiator

bool IsInitiator(
  void
) const 

コンテキストがエクスチェンジの開始者かどうかを判断します。

詳細
戻り値
イニシエータの場合は「true」、それ以外の場合は「false」を返します。

IsResponseExpected

bool IsResponseExpected(
  void
) const 

このエクスチェンジで送信されたメッセージにレスポンスを期待するかどうかを判断します。

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

リリース

void Release(
  void
)

この交換コンテキストのリリース リファレンス。

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

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

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

詳細
戻り値
WEAVE_ERROR_NO_MEMORY
利用可能な PacketBuffers がない場合。
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)かしない(false)かを示すブール値。

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
Trickle 再送信タイマーをキャンセルするまでの最大待機時間。
戻り値
WEAVE_NO_ERROR - Trickle のセットアップが成功した場合は、それ以外の場合は INET_ERROR が WEAVE_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
メッセージの配信を遅延するピアノードのノード ID。
戻り値
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
)

ピアノードにスロットル フロー メッセージを送信して、メッセージの送信をスロットリングするようリクエストします。

詳細
パラメータ
[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 レイヤがネットワーク レイヤにメッセージを正常に送信した場合。