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
}
列挙型
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
列挙型
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
[読み取り専用] 所有する Exchange 管理者。
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)
Exchange ヘッダーをメッセージ バッファにエンコードします。
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
Exchange から送信された送信をローカルのエフェメラル UDP ポートから送信するかどうかを返します。
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
「遅延配信」メッセージを送信して、すでに送信されたメールが受信者に配信される前に想定される遅延が発生したことを送信者ノードに通知します。
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
ピアノードにスロットル フロー メッセージを送信して、メッセージの送信を調整する。

パブリック タイプ

34

 @34
Properties
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
Properties
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 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

指定したエクスチェンジで重複するメールが許可されているかどうかを示すブール値。

アプリの状態

void * AppState

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

デメリット

WeaveConnection * Con

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

EncryptionType

uint8_t EncryptionType

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

エクスチェンジ ID

uint16_t ExchangeId

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

Exchange Manager

WeaveExchangeManager * ExchangeMgr

[読み取り専用] 所有する Exchange 管理者。

KeyId

uint16_t KeyId

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

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

受信確認のアプリケーション コールバック。

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

遅延配信メッセージを受け取ったアプリのコールバック。

OnKeyError

KeyErrorFunct OnKeyError

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

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

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

再転送のタイムアウト

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

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

OnThrottleRcvd(有料)

WRMPPauseRcvdFunct OnThrottleRcvd

スロットル メッセージを受信したアプリのコールバック。

PeerAddr

IPAddress PeerAddr

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

PeerIntf

InterfaceId PeerIntf

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

(UDP の場合のみ有効です)。

PeerNodeId

uint64_t PeerNodeId

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

ピアポート

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
)

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

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

EncodeExchHeader

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

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

詳細
パラメータ
[in] exchangeHeader
Weave Exchange ヘッダー オブジェクトへのポインタ。
[in] profileId
送信する Weave メッセージのプロファイル ID。
[in] msgType
対応するプロファイルのメッセージ タイプです。
[in] msgBuf
Weave メッセージに必要な PacketBuffer へのポインタ。
[in] sendFlags
アプリケーションから送信された Weave メッセージ用フラグ。
戻り値
WEAVE_ERROR_BUFFER_TOO_SMALL
メッセージ バッファに Exchange ヘッダーをエンコードするための十分なスペースがない場合。
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 がポイントするバッファのサイズ。

ハンドルトリックメッセージ

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」を返します。メッセージを受信した場合は「true」を返し、それ以外の場合は「false」を返します。

確認待ち

bool IsAckPending(
  void
) const 

このエクスチェンジのピアに送信する承認待ちです。

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

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

詳細
戻り値
'true'を返します。接続が閉じている場合は 'false'。

イニシエータ

bool IsInitiator(
  void
) const 

コンテキストがエクスチェンジのイニシエータかどうかを判断します。

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

IsResponse 想定

bool IsResponseExpected(
  void
) const 

このエクスチェンジ経由で送信されたメッセージに対してレスポンスが想定されるかどうかを判断します。

詳細
戻り値
& を返します。応答が想定された場合は、それ以外の場合は false になります。

リリース

void Release(
  void
)

このエクスチェンジ コンテキストに関するリリース リファレンス。

カウントが 1 より少ない場合は、コンテキストを閉じて、すべてのアプリケーション コールバックをリセットし、すべてのタイマーを停止します。

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

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

詳細
戻り値
WEAVE_ERROR_NO_MEMORY
使用可能な PacketBuffer がない場合。
WEAVE_NO_ERROR
メソッドが成功した場合、またはエラーが重要ではない場合。
other
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 レイヤがネットワーク レイヤにメッセージを正常に送信したかどうか。

メッセージ送信

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)を示すブール値。

SetResponse 予定

void SetResponseExpected(
  bool inResponseExpected
)

このエクスチェンジでレスポンスを受け取るかどうかを設定します。

詳細
パラメータ
[in] inResponseExpected
このエクスチェンジでレスポンスが期待される(true)かどうか(false)を示すブール値。

SetmustAutoReleaseConnection

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

お客様による自動リリース接続

bool ShouldAutoReleaseConnection() const 

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

ドロップする必要あり

bool ShouldDropAck(
  void
) const 

WeaveExchangeManager が確認応答を送信すべきかどうかを判断します。

内部用。デバッグ専用。

タイマー開始

WEAVE_ERROR StartTimerT(
  void
)

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

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

ティアダウントリックス送金

void TeardownTrickleRetransmit(
  void
)

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

UseEphemeralUDPPort(一時 IP の使用)

bool UseEphemeralUDPPort(
  void
) const 

Exchange から送信された送信をローカルのエフェメラル UDP ポートから送信するかどうかを返します。

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

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

配信に遅延が発生する原因として考えられるのは、受信者のノードがスリープ状態である場合です。このメッセージは、送信経路の適切な中間ノードによって生成され、配信の遅延についての推測に基づく受信者の知識を十分に持っている可能性があります。このメッセージを受け取った送信者は、受信確認応答を求めるメッセージの再送タイマーを再調整します。

詳細
パラメータ
[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
)

ピアノードにスロットル フロー メッセージを送信して、メッセージの送信を調整する。

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