透過集合功能整理內容 你可以依據偏好儲存及分類內容。

nl::編織::ExchangeContext

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

此類別代表兩個以上節點之間的持續對話 (ExchangeContext)。

總結

此服務可定義 ExchangeContext 中透過各種傳輸機制 (例如 TCP、UDP 或 Weave Reliable Messaging) 對 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(*
這個函式是在「Tlowve Reliable Messaging Protocol」(安全可靠的訊息通訊協定) 中收到「Trotation 訊息」或「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
接收延遲延遲郵件的應用程式回呼。
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 的 Message Protocol 版本。
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
判斷這個 Exchange 是否已收到至少同一位使用者的郵件。
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 rebroadcast 演算法的定期重新傳輸計時器機制。
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)
傳送 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 類型。

訊息接收基金

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 物件的指標。

重新傳輸逾時基金

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)

這個函式是在「Tlowve Reliable Messaging Protocol」(安全可靠的訊息通訊協定) 中收到「Trotation 訊息」或「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
指向某些回報所關聯訊息的特定特定內容物件。

公開屬性

允許重複的 MGS

bool AllowDuplicateMsgs

指定是否允許特定廣告交易平台使用重複訊息的布林值指標。

應用程式狀態

void * AppState

指向應用程式專用狀態物件的指標。

缺點

WeaveConnection * Con

[唯讀] 相關聯的 Weave 連線。

EncryptionType

uint8_t EncryptionType

傳送訊息時要使用的加密類型。

廣告交易平台 ID

uint16_t ExchangeId

[唯讀] 已指派的廣告交易平台 ID。

交易所

WeaveExchangeManager * ExchangeMgr

[唯讀] 擁有廣告交易平台管理員。

KeyId

uint16_t KeyId

傳送訊息時使用的加密金鑰。

安妮拉克

WRMPAckRcvdFunct OnAckRcvd

已收到確認通知的應用程式回呼。

OnConnection 已關閉

ConnectionClosedFunct OnConnectionClosed

昂達卡

WRMPPauseRcvdFunct OnDDRcvd

接收延遲延遲郵件的應用程式回呼。

OnKeyError

KeyErrorFunct OnKeyError

這個函式會在對等點收到金鑰錯誤訊息時叫用的應用程式回呼。

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

傳送回呼時發生應用程式回呼。

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

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

對等節點

IPAddress PeerAddr

[唯讀] 對等節點的 IP 位址。

PeerIntf

InterfaceId PeerIntf

[唯讀] 僅限向對等對象傳送訊息時使用的外寄介面。

(僅適用於 UDP)。

對等節點 ID

uint64_t PeerNodeId

[唯讀] 對等節點的節點 ID。

對等通訊埠

uint16_t PeerPort

[唯讀] 對等節點的通訊埠。

回應逾時

Timeout ResponseTimeout

等待回應的最長時間 (以毫秒為單位);0 會停用回應逾時。

重新傳輸間隔

uint32_t RetransInterval

重新傳輸之間的間隔時間 (以毫秒為單位);0 會停用重新傳輸。

mMsg 通訊協定版本

uint16_t mMsgProtocolVersion

ExchangeContext 的 Message Protocol 版本。

mWRMPConfig

WRMPConfig mWRMPConfig

WRMP 設定。

公開函式

取消

void Abort(
  void
)

立即取消 Exchange 背景資訊,並撤銷所有參照內容。

新增參考資料

void AddRef(
  void
)

將交換背景資訊的參考計數器遞增。

自動要求

bool AutoRequestAck() const 

傳回是否在每次傳送訊息時要求確認。

取消重新轉錄

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
如果郵件的編碼成功,

取得 AutoReleaseKey

bool GetAutoReleaseKey() const 

傳回與廣告交易平台交換的加密金鑰是否在交換交換時是否釋出。

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

取得目前的重新傳輸逾時。

可能是 ExchangeContext 是否會與對等點進行運作中的郵件交換,可能是初始或有效重新傳輸逾時。

詳細資料
傳回
目前的重新傳輸時間。

取得同類群組說明

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 訊息資訊結構的指標。

哈向已要求

bool HasPeerRequestedAck(
  void
) const 

判斷同類應用程式是否要求在這個廣告交易平台上至少傳送一則訊息進行確認。

詳細資料
傳回
返回 'true'如果請求批准,其他 'false'。

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

判斷這個 Exchange 是否已收到至少同一位使用者的郵件。

詳細資料
傳回
返回 'true'如果收到消息,其他 'false'。

等待中

bool IsAckPending(
  void
) const 

判斷是否已有待確認的交換作業。

IsConnection 已關閉

bool IsConnectionClosed(
  void
) const 

判定 ExchangeContext 是否具有相關聯的有效 WeaveConnection

詳細資料
傳回
返回 'true'如果連接封閉,其他 'false'。

發起者

bool IsInitiator(
  void
) const 

判斷內容是否為廣告交易平台的啟動者。

詳細資料
傳回
返回 'true'如果是啟動器,其他 'false'。

是預期回應

bool IsResponseExpected(
  void
) const 

決定要針對這個廣告交易平台傳送的郵件是否有回應要求。

詳細資料
傳回
返回 'true'如果是期望的反應,其他 'false'.

版本

void Release(
  void
)

這個廣告交易平台內容的版本資訊。

如果計數為 1,然後關閉內容,重設所有應用程式回呼並停止所有計時器。

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

傳送 Common::Null 訊息。

注意:

傳送訊息

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 訊息通訊協定版本為 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 訊息通訊協定版本為 V1 時,如果嘗試使用 Weave Reliable Messaging 語意,就會產生這個錯誤。
WEAVE_ERROR_NOT_CONNECTED
內容是否與時空的關聯相關聯。
WEAVE_ERROR_INCORRECT_STATE
表示廣告交易平台內容狀態不正確
WEAVE_NO_ERROR
因為如果 Weave 圖層成功將郵件傳送到網路層

待定

void SetAckPending(
  bool inAckPending
)

設定是否必須在這個廣告交易平台上傳回對手。

詳細資料
參數
[in] inAckPending
布林值,表示是否應對收到的訊息傳回 True (是) 或 false (確認)。

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

設定是否要在交換交換作業時釋出與交換項目相關的加密金鑰。

詳細資料
參數
[in] autoReleaseKey
如果訊息的加密金鑰應該自動發布,則傳回 true。

設定自動要求要求

void SetAutoRequestAck(
  bool autoReqAck
)

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

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

SetConnect 已關閉

void SetConnectionClosed(
  bool inConnectionClosed
)

設定 kFlagConnectionClosed 旗標位元。

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

詳細資料
參數
[in] inConnectionClosed
布林值,表示內容是否與連線相關 (是) (否)。

背景集

void SetDropAck(
  bool inDropAck
)

設定 WeaveExchangeManager 是否要針對此內容傳送確認通知。

如果是內部使用者,則只使用偵錯功能。

詳細資料
參數
[in] inDropAck
布林值,表示不應對廣告交易平台傳送確認訊息 (True) 或否 (false)。

設定啟動者

void SetInitiator(
  bool inInitiator
)

設定 kFlagInitiator 旗標位元。

這個標記是由啟動交換的節點所設定。

詳細資料
參數
[in] inInitiator
布林值,表示內容是否為 True 或否。

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

設定是否可在這個廣告交易平台收到同事寄來的郵件。

詳細資料
參數
[in] inMsgRcvdFromPeer
布林值,表示已從這個 Exchange 內容中接收對等點是否收到郵件。

設定對等點要求

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

設定是否可在這個廣告交易平台收到的最後一則訊息中提出確認要求。

詳細資料
參數
[in] inPeerRequestedAck
布林值,表示在最後收到的訊息中,是否有要求為 True 或 False。

SetResponse 預期

void SetResponseExpected(
  bool inResponseExpected
)

設定這個廣告交易平台是否有回應。

詳細資料
參數
[in] inResponseExpected
這個布林值用於指出這個廣告交易平台上是否回應 (true) 或否 (false)。

SetSetAutoAutoConnectionConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

設定是否要在廣告交易平台釋出時,釋出與廣告交易平台相關聯的 Weave 連線。

詳細資料
參數
[in] autoReleaseCon
如果系統應自動發布 Weave 連線,則傳回 true。

設定重新傳送

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

設定對應的重新傳輸間隔和再播送門檻,設定較為複雜的轉散機制。

詳細資料
參數
[in] retransInterval
Trickle rebroadcast 演算法的重新傳輸間隔。
[in] threshold
郵件重新播送的次數上限。
[in] timeout
取消「Trickle 重新傳輸計時器」前的等待時間上限。
傳回
WEAVE_NO_ERROR:如果 Trickle 設定成功,則 INET_ERROR 會對應至 WEAVE_ERROR。

應自動發布連線

bool ShouldAutoReleaseConnection() const 

傳回在交換交換作業時,是否要釋出與該廣告交易平台相關聯的 Weave 連線。

bool ShouldDropAck(
  void
) const 

判斷 WeaveExchangeManager 是否不應傳送確認通知。

如果是內部使用者,則只使用偵錯功能。

開始時間

WEAVE_ERROR StartTimerT(
  void
)

啟動 Trickle rebroadcast 演算法的定期重新傳輸計時器機制。

詳細資料
傳回
WEAVE_NO_ERROR:如果成功的話,其他 INET_ERROR 會對應至 WEAVE_ERROR。

泰迪‧特里克‧雷特森 (TeardownTrickleRetransmit)

void TeardownTrickleRetransmit(
  void
)

取消 Trickle 內的定期計時器並釋出保存 Weave 訊息的訊息緩衝區,以拆解 Trickle 重傳機制。

使用 EphemeralUDPPort

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
此類節點的節點 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 圖層已成功將郵件傳送至網路層。