nl::Weave::ExchangeContext

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

此類別代表兩個以上節點之間的進行中對話 (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 訊息以 Weave Reliable Messaging Protocol 中要求訊息時,會在收到確認訊息時叫用的應用程式回呼。
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
此函式就是在收到 Weave Reliable Messaging Protocol 中收到 Throttle 訊息或延遲傳送訊息時叫用的應用程式回呼。
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
傳送 Weave 訊息時發生錯誤時,此函式就是要叫用的應用程式回呼。

公開屬性

AllowDuplicateMsgs
bool
布林值指標,指出特定廣告交易平台是否允許重複訊息。
AppState
void *
指向應用程式專屬狀態物件的指標。
Con
[READ ONLY] 關聯 Weave 連線。
EncryptionType
uint8_t
傳送郵件時使用的加密類型。
ExchangeId
uint16_t
[僅限閱讀] 指派的廣告交易平台 ID。
ExchangeMgr
[僅限閱讀] 負責廣告交易平台管理員。
KeyId
uint16_t
傳送訊息時使用的加密金鑰。
OnAckRcvd
用於接收確認的申請回呼。
OnConnectionClosed
OnDDRcvd
申請延遲傳送訊息的應用程式回呼。
OnKeyError
此函式是應用程式回呼,在收到對等點的金鑰錯誤訊息時叫用。
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
傳送時發生應用程式回呼的錯誤。
OnThrottleRcvd
接收接收 Throttle 訊息的應用程式回呼。
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
將廣告交易平台結構定義的參照計數器逐一增加。
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
判斷對等端是否要求確認這個交換機制的至少一則訊息。
HasRcvdMsgFromPeer(void) const
bool
判斷這個廣告交易平台是否至少收到過同類訊息。
IsAckPending(void) const
bool
判斷這個廣告交易平台是否已有待確認的確認通知。
IsConnectionClosed(void) const
bool
判斷 ExchangeContext 是否已建立關聯有效的 WeaveConnection
IsInitiator(void) const
bool
判斷情境是否為廣告交易平台的發起人。
IsResponseExpected(void) const
bool
判斷透過這個交換方式傳送的訊息是否會回應。
Release(void)
void
發布這個廣告交易平台結構定義的參考資料。
SendCommonNullMessage(void)
傳送 CC: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() 傳回的字串長度上限 (包括 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 訊息以 Weave Reliable Messaging Protocol 中要求訊息時,會在收到確認訊息時叫用的應用程式回呼。

詳細說明
參數
[in] ec
指向 ExchangeContext 物件的指標。
[in] msgCtxt
指向與已確認原始訊息相關聯的某些特定內容物件。

WRMPPauseRcvdFunct

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

此函式就是在收到 Weave Reliable Messaging Protocol 中收到 Throttle 訊息或延遲傳送訊息時叫用的應用程式回呼。

上述每則訊息並附上時間值 (以毫秒為單位),指出要暫停在這個 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

[READ ONLY] 關聯 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

接收接收 Throttle 訊息的應用程式回呼。

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
)

將廣告交易平台結構定義的參照計數器逐一增加。

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
如果訊息緩衝區沒有足夠空間將 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
緩衝區指向的緩衝區大小。

HandleTrickleMessage

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

處理交換脈絡中的棘手訊息。

詳細說明
參數
[in] pktInfo
IPPacketInfo 物件的指標。
[in] msgInfo
指向 Weave 訊息資訊結構的指標。

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

判斷對等端是否要求確認這個交換機制的至少一則訊息。

詳細說明
傳回
若已要求確認,則傳回「true」,否則傳回「false」。

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

判斷這個廣告交易平台是否至少收到過同類訊息。

詳細說明
傳回
如果收到訊息,則傳回「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
)

發布這個廣告交易平台結構定義的參考資料。

如果倒數計時減少為一,則關閉內容、重設所有應用程式回呼,並停止所有計時器。

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

傳送 CC: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)。

SetDropAck

void SetDropAck(
  bool inDropAck
)

設定 WeaveExchangeManager 是否不應傳送這個結構定義的確認訊息。

僅供內部使用,僅供偵錯使用。

詳細說明
參數
[in] inDropAck
布林值,指出是否要為交易平台傳送特別銘謝名單 (true)。

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) 是否要在此廣告交易平台中產生回應。

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 (如果成功),其他 INET_ERROR 會對應至 WEAVE_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
)

傳送「延遲傳送」郵件,通知寄件者節點先前傳送的郵件在傳送郵件給收件者之前,會在預期延遲送達。

郵件傳送前可能會延遲,其中一個原因是收件者的結束節點處於休眠狀態。這封郵件可能是由傳送路徑中的適用中繼節點產生,該節點有充分瞭解收件者,足以推斷延遲傳送作業。收到這則訊息後,寄件者會重新調整重新傳輸計時器,讓需要再次確認的訊息能夠重新傳輸。

詳細說明
參數
[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
)

向對等節點傳送「 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 層成功地將訊息向下傳送至網路層,