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」(Weave Reliable Messaging Protocol) 的一部分收到 Throttle 訊息或「Delayed Delivery」訊息時,叫用的應用程式回呼。
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
[READ ONLY] 對等節點的節點 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
確定對等互連是否針對此交換庫上的至少一則訊息要求確認。
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)
傳送通用:「空值」訊息。
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」(Weave Reliable Messaging Protocol) 的一部分收到 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

[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

[READ ONLY] 對等節點的節點 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 

確定對等互連是否針對此交換庫上的至少一則訊息要求確認。

詳細資料
傳回
傳回「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
)

傳送通用:「空值」訊息。

詳細資料
傳回值
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_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
。例如,當 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_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
。例如,當 Weave 訊息通訊協定版本為 V1 時,嘗試採用 Weave Reliable Messaging 語意,就會產生這個錯誤。
WEAVE_ERROR_NOT_CONNECTED
如果結構定義與現在關閉的連線相關聯。
WEAVE_ERROR_INCORRECT_STATE
表示廣告交易平台背景資訊的狀態有誤。
WEAVE_NO_ERROR
如果 Weave 層已成功將訊息傳送至網路層

SetAckPending

void SetAckPending(
  bool inAckPending
)

設定是否需要將確認通知回傳給這個廣告交易平台的同業。

詳細資料
參數
[in] inAckPending
布林值,表示是否應傳回確認通知,以回應收到的訊息。

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

設定當交換庫釋出時,是否應釋放與交換庫相關聯的加密金鑰。

詳細資料
參數
[in] autoReleaseKey
如果應自動釋出訊息加密金鑰,則為「是」。

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

設定是否應在訊息送出時要求確認。

詳細資料
參數
[in] autoReqAck
布林值,表示是否要在每次傳送訊息時要求確認。

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

設定 kFlagConnectionClosed 標記位元。

當與 ExchangeContext 相關聯的 WeaveConnection 關閉時,系統就會設定此標記。

詳細資料
參數
[in] inConnectionClosed
布林值,指出背景資訊是否與連線相關聯。

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)。

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 設定成功,否則會發生對應至 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
)

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

郵件送達前可能會延遲,其中一個原因就是收件者的結束節點會睡著。這封郵件可能是由傳送路徑中的適當中繼節點所產生,該中繼節點具備足夠的收件者知識,可以推論出延遲遞送。收到這則訊息後,寄件者會重新調整重新傳輸計時器,找出尋求確認的訊息。

詳細資料
參數
[in] pauseTimeMillis
先前傳送的郵件在傳送前預計將延遲的時間 (以毫秒為單位)。
[in] delayedNodeId
郵件傳送作業會延遲的對等節點節點 ID。
傳回值
WEAVE_ERROR_INVALID_ARGUMENT
如果將無效的引數傳遞至這個 SendMessage API。
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
。例如,當 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 層是否成功將訊息傳送至網路層。