nl::Weave::ExchangeContext

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

Lớp này đại diện cho một cuộc trò chuyện đang diễn ra (ExchangeContext) giữa 2 hoặc nhiều nút.

Tóm tắt

Lớp này xác định các phương thức mã hoá và giao tiếp thông báo Weave trong ExchangeContext qua nhiều cơ chế truyền tải, ví dụ: TCP, UDP hoặc Weave Trusted Messaging.

Loại công khai

@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(*
Hàm này là lệnh gọi lại của ứng dụng để gọi ra khi một kết nối Weave hiện có đã bị đóng.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Loại chức năng xử lý thông báo lỗi chính.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
Hàm này là lệnh gọi lại của ứng dụng để xử lý thông báo Weave đã nhận.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Hàm này là lệnh gọi lại của ứng dụng để gọi ra khi hết thời gian chờ nhận thông báo phản hồi.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Hàm này là lệnh gọi lại của ứng dụng để gọi ra khi hết thời gian chờ để truyền tải lại một tin nhắn đã gửi trước đó.
Timeout typedef
uint32_t
Loại được dùng để biểu thị thời gian chờ trong ExchangeContext này, tính bằng mili giây.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Hàm này là lệnh gọi lại của ứng dụng để gọi ra khi nhận được một Xác nhận đối với một thông báo trên Weave, trong đó yêu cầu một thông báo như một phần của Giao thức thông báo đáng tin cậy của Weave.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Chức năng này là lệnh gọi lại của ứng dụng để gọi ra khi nhận được một thông báo Điều tiết hoặc thông báo Phân phối trễ trong Giao thức thông báo đáng tin cậy của Weave.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Hàm này là lệnh gọi lại của ứng dụng để gọi khi gặp lỗi trong khi gửi thông báo Weave.

Các thuộc tính công khai

AllowDuplicateMsgs
bool
Chỉ báo Boolean cho biết liệu các thông báo trùng lặp có được cho phép trong một trao đổi nhất định hay không.
AppState
void *
Con trỏ đến đối tượng trạng thái dành riêng cho ứng dụng.
Con
[CHỈ ĐỌC] Kết nối Weave được liên kết.
EncryptionType
uint8_t
Loại mã hoá để sử dụng khi gửi thư.
ExchangeId
uint16_t
[CHỈ ĐỌC] Mã giao dịch được chỉ định.
ExchangeMgr
[CHỈ ĐỌC] Sở hữu người quản lý sàn giao dịch.
KeyId
uint16_t
Khoá mã hoá để sử dụng khi gửi tin nhắn.
OnAckRcvd
Lệnh gọi lại ứng dụng cho xác nhận đã nhận được.
OnConnectionClosed
OnDDRcvd
Lệnh gọi lại ứng dụng cho thông báo Phân phối bị trễ đã nhận.
OnKeyError
Hàm này là lệnh gọi lại của ứng dụng để gọi khi nhận được thông báo lỗi khoá từ ứng dụng ngang hàng.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Lệnh gọi lại ứng dụng để báo lỗi khi gửi.
OnThrottleRcvd
Lệnh gọi lại ứng dụng cho thông báo Mức điều tiết đã nhận.
PeerAddr
IPAddress
[CHỈ ĐỌC] Địa chỉ IP của nút ngang hàng.
PeerIntf
InterfaceId
[CHỈ ĐỌC] Giao diện đi được sử dụng khi gửi thư tới ứng dụng ngang hàng.
PeerNodeId
uint64_t
[CHỈ ĐỌC] Mã nút của nút ngang hàng.
PeerPort
uint16_t
[CHỈ ĐỌC] Cổng của nút ngang hàng.
ResponseTimeout
Thời gian tối đa để chờ phản hồi (tính bằng mili giây); 0 sẽ tắt thời gian chờ phản hồi.
RetransInterval
uint32_t
Thời gian giữa các lần truyền lại (tính bằng mili giây); 0 sẽ tắt tính năng truyền lại.
mMsgProtocolVersion
uint16_t
Phiên bản Message Protocol (Giao thức thông báo) cho ExchangeContext.
mWRMPConfig
Cấu hình WRMP.

Hàm công khai

Abort(void)
void
Huỷ bỏ ngữ cảnh Exchange ngay lập tức và huỷ bỏ mọi tham chiếu đến ngữ cảnh đó.
AddRef(void)
void
Tăng một bộ đếm tham chiếu cho ngữ cảnh trao đổi.
AutoRequestAck() const
bool
Trả về việc có yêu cầu xác nhận bất cứ khi nào tin nhắn được gửi hay không.
CancelRetrans(void)
void
Huỷ cơ chế truyền lại của Trickle.
Close(void)
void
Linh hoạt đóng ngữ cảnh trao đổi.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Mã hoá tiêu đề trao đổi vào vùng đệm thông báo.
GetAutoReleaseKey() const
bool
Trả về xem có cần giải phóng khoá mã hoá liên kết với quá trình trao đổi hay không khi quá trình trao đổi được giải phóng.
GetCurrentRetransmitTimeout(void)
uint32_t
Lấy thời gian chờ truyền lại hiện tại.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Tạo một chuỗi mô tả nút ngang hàng và thông tin địa chỉ / kết nối liên quan.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Xử lý tin nhắn nhỏ giọt trong ngữ cảnh trao đổi.
HasPeerRequestedAck(void) const
bool
Xác định xem có xác nhận có yêu cầu ngang hàng cho ít nhất một tin nhắn trong lần trao đổi này hay không.
HasRcvdMsgFromPeer(void) const
bool
Xác định xem đã nhận được ít nhất một tin nhắn trên trao đổi này từ ứng dụng ngang hàng hay chưa.
IsAckPending(void) const
bool
Xác định xem đã có một xác nhận đang chờ gửi đến ứng dụng ngang hàng trong sàn giao dịch này hay chưa.
IsConnectionClosed(void) const
bool
Xác định xem ExchangeContext có một WeaveConnection đang hoạt động được liên kết hay không.
IsInitiator(void) const
bool
Xác định xem ngữ cảnh có phải là yếu tố khởi tạo quá trình trao đổi hay không.
IsResponseExpected(void) const
bool
Xác định xem dự kiến sẽ có phản hồi cho các tin nhắn được gửi qua lần trao đổi này hay không.
Release(void)
void
Phát hành tham chiếu đến ngữ cảnh trao đổi này.
SendCommonNullMessage(void)
Gửi thông báo Common::Null.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Gửi tin nhắn Weave trên sàn giao dịch này.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Gửi tin nhắn Weave trên sàn giao dịch này.
SetAckPending(bool inAckPending)
void
Đặt xem bạn có cần gửi lại một xác nhận cho ứng dụng ngang hàng trong sàn giao dịch này hay không.
SetAutoReleaseKey(bool autoReleaseKey)
void
Thiết lập xem có cần giải phóng khoá mã hoá liên kết với sàn giao dịch hay không khi quá trình trao đổi được giải phóng.
SetAutoRequestAck(bool autoReqAck)
void
Thiết lập xem có nên yêu cầu xác nhận bất cứ khi nào gửi tin nhắn hay không.
SetConnectionClosed(bool inConnectionClosed)
void
Đặt bit cờ kflagConnectionClose.
SetDropAck(bool inDropAck)
void
Đặt xem WeaveExchangeManager có nên không gửi thông tin xác nhận cho ngữ cảnh này hay không.
SetInitiator(bool inInitiator)
void
Đặt bit cờ kflagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Đặt xem có nhận được tin nhắn từ ngang hàng trên sàn giao dịch này hay không.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Đặt liệu người dùng có yêu cầu xác nhận trong tin nhắn gần đây nhất nhận được trên lần trao đổi này hay không.
SetResponseExpected(bool inResponseExpected)
void
Đặt liệu phản hồi có được mong đợi trên trao đổi này hay không.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Thiết lập xem có huỷ kết nối Weave liên kết với sàn giao dịch hay không khi sàn giao dịch được giải phóng.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Thiết lập cơ chế truyền lại nhỏ giọt bằng cách đặt khoảng thời gian truyền lại và ngưỡng truyền lại tương ứng.
ShouldAutoReleaseConnection() const
bool
Trả về xem có nên huỷ kết nối Weave liên kết với sàn giao dịch khi sàn giao dịch được giải phóng hay không.
ShouldDropAck(void) const
bool
Xác định xem WeaveExchangeManager có được gửi thông báo xác nhận hay không.
StartTimerT(void)
Bắt đầu cơ chế bộ tính giờ truyền lại định kỳ của thuật toán truyền phát lại Trickle.
TeardownTrickleRetransmit(void)
void
Xé cơ chế truyền lại của Trickle bằng cách huỷ bộ tính giờ định kỳ trong Trickle và giải phóng vùng đệm thông báo đang giữ thông báo Weave.
UseEphemeralUDPPort(void) const
bool
Trả về xem liệu thư gửi đi được gửi qua trao đổi có nên được gửi từ cổng UDP tạm thời cục bộ hay không.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Gửi thông báo Phân phối bị trì hoãn để thông báo cho nút người gửi rằng thư đã gửi trước đó sẽ bị trễ dự kiến trước khi được gửi tới người nhận.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Gửi thông báo Luồng điều tiết tới nút ngang hàng, yêu cầu nút này điều tiết việc gửi thông báo của nút này.

Loại công khai

@34

 @34
Thuộc tính
kSendFlag_AlreadyEncoded

Dùng để cho biết thư đã được mã hoá.

kSendFlag_AutoRetrans

Dùng để cho biết tính năng tự động truyền tải đã được bật.

kSendFlag_DefaultMulticastSourceAddress

Dùng để cho biết rằng lựa chọn địa chỉ nguồn IPv6 mặc định sẽ được sử dụng khi gửi thông báo đa hướng IPv6.

kSendFlag_DelaySend

Dùng để cho biết rằng việc gửi tin nhắn hiện tại cần bị trì hoãn.

kSendFlag_ExpectResponse

Dùng để cho biết dự kiến phản hồi trong một thời gian chờ cụ thể.

kSendFlag_FromInitiator

Dùng để cho biết tin nhắn hiện tại là người khởi tạo giao dịch trao đổi.

kSendFlag_MulticastFromLinkLocal

Bí danh không dùng nữa cho kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Chặn tính năng xác nhận yêu cầu tự động khi gửi thư.

kSendFlag_RequestAck

Dùng để gửi tin nhắn WRM yêu cầu xác nhận.

kSendFlag_RetainBuffer

Dùng để cho biết không nên giải phóng vùng đệm tin nhắn sau khi gửi.

kSendFlag_RetransmissionTrickle

Dùng để biểu thị yêu cầu truyền lại đối với Trickle.

kSendFlag_ReuseMessageId

Dùng để cho biết rằng mã nhận dạng thư trong tiêu đề thư có thể được sử dụng lại.

kSendFlag_ReuseSourceId

Dùng để cho biết rằng mã nhận dạng nút nguồn trong tiêu đề thông báo có thể được sử dụng lại.

@35

 @35
Thuộc tính
kGetPeerDescription_MaxLength

Độ dài tối đa của chuỗi (bao gồm cả ký tự NUL) do GetPeerDescription() trả về.

ConnectionClosedFunct

void(* ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr)

Hàm này là lệnh gọi lại của ứng dụng để gọi ra khi một kết nối Weave hiện có đã bị đóng.

Chi tiết
Tham số
[in] ec
Con trỏ trỏ đến đối tượng ExchangeContext.
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] conErr
Loại WEAVE_ERROR được báo cáo khi bị đóng kết nối.

KeyErrorFunct

void(* KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr)

Loại chức năng xử lý thông báo lỗi chính.

Chi tiết
Tham số
[in] ec
Con trỏ trỏ đến đối tượng ExchangeContext.
[in] keyErr
Loại WEAVE_ERROR được báo cáo trong thông báo lỗi khoá.

MessageReceiveFunct

void(* MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)

Hàm này là lệnh gọi lại của ứng dụng để xử lý thông báo Weave đã nhận.

Chi tiết
Tham số
[in] ec
Con trỏ trỏ đến đối tượng ExchangeContext.
[in] pktInfo
Con trỏ trỏ đến đối tượng IPPacketInfo.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] profileId
Mã nhận dạng hồ sơ của thư đã nhận.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
[in] payload
Con trỏ trỏ tới đối tượng PacketBuffer đang chứa tải trọng tin nhắn.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Hàm này là lệnh gọi lại của ứng dụng để gọi ra khi hết thời gian chờ nhận thông báo phản hồi.

Chi tiết
Tham số
[in] ec
Con trỏ trỏ đến đối tượng ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Hàm này là lệnh gọi lại của ứng dụng để gọi ra khi hết thời gian chờ để truyền tải lại một tin nhắn đã gửi trước đó.

Chi tiết
Tham số
[in] ec
Con trỏ trỏ đến đối tượng ExchangeContext.

Hết giờ

uint32_t Timeout

Loại được dùng để biểu thị thời gian chờ trong ExchangeContext này, tính bằng mili giây.

WRMPAckRcvdFunct

void(* WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt)

Hàm này là lệnh gọi lại của ứng dụng để gọi ra khi nhận được một Xác nhận đối với một thông báo trên Weave, trong đó yêu cầu một thông báo như một phần của Giao thức thông báo đáng tin cậy của Weave.

Chi tiết
Tham số
[in] ec
Con trỏ trỏ đến đối tượng ExchangeContext.
[in] msgCtxt
Con trỏ trỏ đến một đối tượng ngữ cảnh cụ thể nào đó liên kết với thông báo gốc đang được xác nhận.

WRMPPauseRcvdFunct

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

Chức năng này là lệnh gọi lại của ứng dụng để gọi ra khi nhận được một thông báo Điều tiết hoặc thông báo Phân phối trễ trong Giao thức thông báo đáng tin cậy của Weave.

Mỗi thông báo này đi kèm với một giá trị thời gian (tính bằng mili giây) cho biết thời gian tạm dừng gửi thông báo Weave trên ExchangeContext này.

Chi tiết
Tham số
[in] ec
Con trỏ trỏ đến đối tượng ExchangeContext.
[in] pauseTime
Thời gian tạm dừng quá trình truyền (tính bằng mili giây).

WRMPSendErrorFunct

void(* WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt)

Hàm này là lệnh gọi lại của ứng dụng để gọi khi gặp lỗi trong khi gửi thông báo Weave.

Chi tiết
Tham số
[in] ec
Con trỏ trỏ đến đối tượng ExchangeContext.
[in] err
Loại WEAVE_ERROR đã gặp phải trong quá trình gửi tin nhắn.
[in] msgCtxt
Con trỏ trỏ đến một đối tượng ngữ cảnh cụ thể liên quan đến thông báo gốc đang được báo cáo.

Các thuộc tính công khai

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Chỉ báo Boolean cho biết liệu các thông báo trùng lặp có được cho phép trong một trao đổi nhất định hay không.

AppState

void * AppState

Con trỏ đến đối tượng trạng thái dành riêng cho ứng dụng.

Nhược điểm

WeaveConnection * Con

[CHỈ ĐỌC] Kết nối Weave được liên kết.

EncryptionType

uint8_t EncryptionType

Loại mã hoá để sử dụng khi gửi thư.

ExchangeId

uint16_t ExchangeId

[CHỈ ĐỌC] Mã giao dịch được chỉ định.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[CHỈ ĐỌC] Sở hữu người quản lý sàn giao dịch.

KeyId

uint16_t KeyId

Khoá mã hoá để sử dụng khi gửi tin nhắn.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Lệnh gọi lại ứng dụng cho xác nhận đã nhận được.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Lệnh gọi lại ứng dụng cho thông báo Phân phối bị trễ đã nhận.

OnKeyError

KeyErrorFunct OnKeyError

Hàm này là lệnh gọi lại của ứng dụng để gọi khi nhận được thông báo lỗi khoá từ ứng dụng ngang hàng.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Lệnh gọi lại ứng dụng để báo lỗi khi gửi.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Lệnh gọi lại ứng dụng cho thông báo Mức điều tiết đã nhận.

PeerAddr

IPAddress PeerAddr

[CHỈ ĐỌC] Địa chỉ IP của nút ngang hàng.

PeerIntf

InterfaceId PeerIntf

[CHỈ ĐỌC] Giao diện đi được sử dụng khi gửi thư tới ứng dụng ngang hàng.

(Chỉ có ý nghĩa đối với UDP.)

PeerNodeId

uint64_t PeerNodeId

[CHỈ ĐỌC] Mã nút của nút ngang hàng.

PeerPort

uint16_t PeerPort

[CHỈ ĐỌC] Cổng của nút ngang hàng.

ResponseTimeout

Timeout ResponseTimeout

Thời gian tối đa để chờ phản hồi (tính bằng mili giây); 0 sẽ tắt thời gian chờ phản hồi.

RetransInterval

uint32_t RetransInterval

Thời gian giữa các lần truyền lại (tính bằng mili giây); 0 sẽ tắt tính năng truyền lại.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Phiên bản Message Protocol (Giao thức thông báo) cho ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

Cấu hình WRMP.

Hàm công khai

Hủy

void Abort(
  void
)

Huỷ bỏ ngữ cảnh Exchange ngay lập tức và huỷ bỏ mọi tham chiếu đến ngữ cảnh đó.

AddRef

void AddRef(
  void
)

Tăng một bộ đếm tham chiếu cho ngữ cảnh trao đổi.

AutoRequestAck

bool AutoRequestAck() const 

Trả về việc có yêu cầu xác nhận bất cứ khi nào tin nhắn được gửi hay không.

CancelRetrans

void CancelRetrans(
  void
)

Huỷ cơ chế truyền lại của Trickle.

Đóng

void Close(
  void
)

Linh hoạt đóng ngữ cảnh trao đổi.

Lệnh gọi này giảm số lượng tham chiếu và giải phóng sàn giao dịch khi số lượng tham chiếu giảm về 0.

EncodeExchHeader

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

Mã hoá tiêu đề trao đổi vào vùng đệm thông báo.

Chi tiết
Tham số
[in] exchangeHeader
Con trỏ trỏ tới đối tượng tiêu đề Weave Exchange.
[in] profileId
Giá trị nhận dạng hồ sơ của thông báo Weave sẽ được gửi.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
[in] msgBuf
Con trỏ trỏ tới PacketBuffer cần thiết cho thông báo Weave.
[in] sendFlags
Cờ do ứng dụng đặt cho thông báo Weave đang được gửi.
Giá trị trả về
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu vùng đệm thư không có đủ dung lượng để mã hoá tiêu đề trao đổi.
WEAVE_NO_ERROR
Nếu thông báo đã mã hoá thành công.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Trả về xem có cần giải phóng khoá mã hoá liên kết với quá trình trao đổi hay không khi quá trình trao đổi được giải phóng.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Lấy thời gian chờ truyền lại hiện tại.

Đó sẽ là thời gian chờ truyền lại ban đầu hoặc đang hoạt động, tuỳ thuộc vào việc ExchangeContext có hoạt động trao đổi tin nhắn đang hoạt động với các ứng dụng ngang hàng hay không.

Chi tiết
Trả về
thời gian truyền lại hiện tại.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Tạo một chuỗi mô tả nút ngang hàng và thông tin địa chỉ / kết nối liên quan.

Chi tiết
Tham số
[in] buf
Con trỏ trỏ đến vùng đệm mà chuỗi sẽ được ghi vào vùng đệm. Vùng đệm được cung cấp ít nhất phải lớn bằng kGetPeerDescription_MaxLength. Nếu vùng đệm nhỏ hơn được cung cấp, chuỗi sẽ được cắt bớt cho phù hợp. Dữ liệu đầu ra sẽ bao gồm một ký tự kết thúc NUL trong mọi trường hợp.
[in] bufSize
Kích thước của vùng đệm trỏ bởi buf.

HandleTrickleMessage

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

Xử lý tin nhắn nhỏ giọt trong ngữ cảnh trao đổi.

Chi tiết
Tham số
[in] pktInfo
Con trỏ trỏ đến đối tượng IPPacketInfo.
[in] msgInfo
Con trỏ trỏ đến cấu trúc thông tin thông báo Weave.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Xác định xem có xác nhận có yêu cầu ngang hàng cho ít nhất một tin nhắn trong lần trao đổi này hay không.

Chi tiết
Trả về
Trả về "true" nếu người dùng yêu cầu xác nhận, thì giá trị còn lại sẽ là "false".

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Xác định xem đã nhận được ít nhất một tin nhắn trên trao đổi này từ ứng dụng ngang hàng hay chưa.

Chi tiết
Trả về
Trả về "true" nếu nhận được tin nhắn, ngược lại sẽ là "false".

IsAckPending

bool IsAckPending(
  void
) const 

Xác định xem đã có một xác nhận đang chờ gửi đến ứng dụng ngang hàng trong sàn giao dịch này hay chưa.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Xác định xem ExchangeContext có một WeaveConnection đang hoạt động được liên kết hay không.

Chi tiết
Trả về
Trả về "true" nếu kết nối bị đóng, thì giá trị còn lại sẽ là "false".

IsInitiator

bool IsInitiator(
  void
) const 

Xác định xem ngữ cảnh có phải là yếu tố khởi tạo quá trình trao đổi hay không.

Chi tiết
Trả về
Trả về "true" nếu đó là yếu tố khởi tạo thì giá trị còn lại là "false".

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Xác định xem dự kiến sẽ có phản hồi cho các tin nhắn được gửi qua lần trao đổi này hay không.

Chi tiết
Trả về
Trả về "true" nếu dự kiến có câu trả lời, còn nếu không có giá trị là "false".

Bản phát hành

void Release(
  void
)

Phát hành tham chiếu đến ngữ cảnh trao đổi này.

Nếu số lượng giảm xuống một thì hãy đóng ngữ cảnh, đặt lại tất cả các lệnh gọi lại ứng dụng và dừng tất cả bộ tính giờ.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Gửi thông báo Common::Null.

Chi tiết
Giá trị trả về
WEAVE_ERROR_NO_MEMORY
Nếu không có PacketBuffers.
WEAVE_NO_ERROR
Nếu phương thức này thành công hoặc lỗi không nghiêm trọng.
other
Một lỗi nghiêm trọng khác do SendMessage() trả về.

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgPayload,
  uint16_t sendFlags,
  void *msgCtxt
)

Gửi tin nhắn Weave trên sàn giao dịch này.

Chi tiết
Tham số
[in] profileId
Giá trị nhận dạng hồ sơ của thông báo Weave sẽ được gửi.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
[in] msgBuf
Con trỏ trỏ vào đối tượng PacketBuffer đang chứa thông báo Weave.
[in] sendFlags
Cờ do ứng dụng đặt cho thông báo Weave đang được gửi.
[in] msgCtxt
Con trỏ trỏ đến một đối tượng ngữ cảnh dành riêng cho ứng dụng được liên kết với thông báo đang được gửi.
Giá trị trả về
WEAVE_ERROR_INVALID_ARGUMENT
nếu một đối số không hợp lệ được truyền đến API SendMessage này.
WEAVE_ERROR_SEND_THROTTLED
nếu bối cảnh trao đổi này bị hạn chế khi sử dụng giao thức nhắn tin đáng tin cậy của Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
nếu có sự không khớp trong thao tác gửi cụ thể và phiên bản giao thức thông báo Weave được hỗ trợ. Ví dụ: lỗi này sẽ xảy ra nếu hệ thống cố gắng thực hiện ngữ nghĩa thông báo đáng tin cậy của Weave khi phiên bản giao thức thông báo Weave là V1.
WEAVE_ERROR_NOT_CONNECTED
nếu ngữ cảnh được liên kết với một kết nối hiện đã bị đóng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái của ngữ cảnh trao đổi không chính xác.
WEAVE_NO_ERROR
nếu lớp Weave gửi thành công thông báo xuống lớp mạng.

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags,
  WeaveMessageInfo *msgInfo,
  void *msgCtxt
)

Gửi tin nhắn Weave trên sàn giao dịch này.

Chi tiết
Tham số
[in] profileId
Giá trị nhận dạng hồ sơ của thông báo Weave sẽ được gửi.
[in] msgType
Loại thông báo của hồ sơ tương ứng.
[in] msgBuf
Con trỏ trỏ vào đối tượng PacketBuffer đang chứa thông báo Weave.
[in] sendFlags
Cờ do ứng dụng đặt cho thông báo Weave đang được gửi.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] msgCtxt
Con trỏ trỏ đến một đối tượng ngữ cảnh dành riêng cho ứng dụng được liên kết với thông báo đang được gửi.
Giá trị trả về
WEAVE_ERROR_INVALID_ARGUMENT
nếu một đối số không hợp lệ được truyền đến API SendMessage này.
WEAVE_ERROR_SEND_THROTTLED
nếu bối cảnh trao đổi này bị hạn chế khi sử dụng giao thức nhắn tin đáng tin cậy của Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
nếu có sự không khớp trong thao tác gửi cụ thể và phiên bản giao thức thông báo Weave được hỗ trợ. Ví dụ: lỗi này sẽ xảy ra nếu hệ thống cố gắng thực hiện ngữ nghĩa thông báo đáng tin cậy của Weave khi phiên bản giao thức thông báo Weave là V1.
WEAVE_ERROR_NOT_CONNECTED
nếu ngữ cảnh được liên kết với một kết nối hiện đã bị đóng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái của ngữ cảnh trao đổi không chính xác.
WEAVE_NO_ERROR
nếu lớp Weave gửi thành công thông báo xuống lớp mạng.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Đặt xem bạn có cần gửi lại một xác nhận cho ứng dụng ngang hàng trong sàn giao dịch này hay không.

Chi tiết
Tham số
[in] inAckPending
Giá trị boolean cho biết liệu (true) hay không (false) một xác nhận sẽ được gửi lại phản hồi một tin nhắn đã nhận.

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Thiết lập xem có cần giải phóng khoá mã hoá liên kết với sàn giao dịch hay không khi quá trình trao đổi được giải phóng.

Chi tiết
Tham số
[in] autoReleaseKey
Đúng nếu khoá mã hoá thư tự động được huỷ bỏ.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Thiết lập xem có nên yêu cầu xác nhận bất cứ khi nào gửi tin nhắn hay không.

Chi tiết
Tham số
[in] autoReqAck
Giá trị boolean cho biết có nên yêu cầu xác nhận mỗi khi gửi tin nhắn hay không.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Đặt bit cờ kflagConnectionClose.

Cờ này được đặt khi WeaveConnection liên kết với ExchangeContext bị đóng.

Chi tiết
Tham số
[in] inConnectionClosed
Giá trị boolean cho biết liệu (true) hay không (false) ngữ cảnh được liên kết với một kết nối.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Đặt xem WeaveExchangeManager có nên không gửi thông tin xác nhận cho ngữ cảnh này hay không.

Chỉ sử dụng gỡ lỗi cho nội bộ.

Chi tiết
Tham số
[in] inDropAck
Giá trị boolean cho biết hệ thống sẽ không gửi thông báo xác nhận (true) hay (false).

SetInitiator

void SetInitiator(
  bool inInitiator
)

Đặt bit cờ kflagInitiator.

Cờ này được đặt bởi nút bắt đầu một trao đổi.

Chi tiết
Tham số
[in] inInitiator
Boolean cho biết liệu (true) hay không (false) ngữ cảnh là yếu tố khởi tạo của trao đổi.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Đặt xem có nhận được tin nhắn từ ngang hàng trên sàn giao dịch này hay không.

Chi tiết
Tham số
[in] inMsgRcvdFromPeer
Một Boolean cho biết liệu (true) hay không (false) đã nhận được thông báo từ ứng dụng ngang hàng trong ngữ cảnh trao đổi này.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Đặt liệu người dùng có yêu cầu xác nhận trong tin nhắn gần đây nhất nhận được trên lần trao đổi này hay không.

Chi tiết
Tham số
[in] inPeerRequestedAck
Giá trị boolean cho biết liệu (true) hay không (false) xác nhận đã được yêu cầu trong tin nhắn nhận được gần đây nhất.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Đặt liệu phản hồi có được mong đợi trên trao đổi này hay không.

Chi tiết
Tham số
[in] inResponseExpected
Giá trị boolean cho biết liệu (true) hay không (false) phản hồi được dự kiến trên sàn giao dịch này.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Thiết lập xem có huỷ kết nối Weave liên kết với sàn giao dịch hay không khi sàn giao dịch được giải phóng.

Chi tiết
Tham số
[in] autoReleaseCon
Đúng nếu kết nối Weave được tự động huỷ bỏ.

SetupTrickleRetransmit

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

Thiết lập cơ chế truyền lại nhỏ giọt bằng cách đặt khoảng thời gian truyền lại và ngưỡng truyền lại tương ứng.

Chi tiết
Tham số
[in] retransInterval
Khoảng thời gian truyền lại của thuật toán truyền lại Trickle.
[in] threshold
Số lần tối đa phát lại một thông báo.
[in] timeout
Thời gian tối đa để chờ trước khi huỷ đồng hồ hẹn giờ truyền lại của Trickle.
Trả về
WEAVE_NO_ERROR nếu thiết lập Thủ thuật thành công, nếu không thì một INET_ERROR được ánh xạ vào WEAVE_ERROR.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Trả về xem có nên huỷ kết nối Weave liên kết với sàn giao dịch khi sàn giao dịch được giải phóng hay không.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Xác định xem WeaveExchangeManager có được gửi thông báo xác nhận hay không.

Chỉ sử dụng gỡ lỗi cho nội bộ.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Bắt đầu cơ chế bộ tính giờ truyền lại định kỳ của thuật toán truyền phát lại Trickle.

Chi tiết
Trả về
WEAVE_NO_ERROR nếu thành công, nếu không thì một INET_ERROR được ánh xạ vào WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Xé cơ chế truyền lại của Trickle bằng cách huỷ bộ tính giờ định kỳ trong Trickle và giải phóng vùng đệm thông báo đang giữ thông báo Weave.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Trả về xem liệu thư gửi đi được gửi qua trao đổi có nên được gửi từ cổng UDP tạm thời cục bộ hay không.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Gửi thông báo Phân phối bị trì hoãn để thông báo cho nút người gửi rằng thư đã gửi trước đó sẽ bị trễ dự kiến trước khi được gửi tới người nhận.

Một trong những nguyên nhân có thể khiến thư bị trễ trước khi gửi là khi nút cuối của người nhận bị buồn ngủ. Thư này có thể được tạo bởi một nút trung gian phù hợp trong đường dẫn gửi, người có đủ hiểu biết về người nhận để suy luận về việc gửi thư bị trì hoãn. Khi nhận được thư này, người gửi sẽ điều chỉnh lại đồng hồ bấm giờ truyền lại đối với những thư cần xác nhận lại.

Chi tiết
Tham số
[in] pauseTimeMillis
Thời gian (tính bằng mili giây) mà tin nhắn đã gửi trước đó sẽ bị trì hoãn trước khi được gửi đi.
[in] delayedNodeId
Giá trị nhận dạng nút của nút ngang hàng bị chậm trễ gửi tín hiệu.
Giá trị trả về
WEAVE_ERROR_INVALID_ARGUMENT
nếu một đối số không hợp lệ được truyền đến API SendMessage này.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
nếu có sự không khớp trong thao tác gửi cụ thể và phiên bản giao thức thông báo Weave được hỗ trợ. Ví dụ: lỗi này sẽ xảy ra nếu hệ thống cố gắng thực hiện ngữ nghĩa thông báo đáng tin cậy của Weave khi phiên bản giao thức thông báo Weave là V1.
WEAVE_ERROR_NOT_CONNECTED
nếu ngữ cảnh được liên kết với một kết nối hiện đã bị đóng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái của ngữ cảnh trao đổi không chính xác.
WEAVE_NO_ERROR
nếu lớp Weave gửi thành công thông báo xuống lớp mạng.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Gửi thông báo Luồng điều tiết tới nút ngang hàng, yêu cầu nút này điều tiết việc gửi thông báo của nút này.

Chi tiết
Tham số
[in] pauseTimeMillis
Thời gian (tính bằng mili giây) mà người nhận dự kiến sẽ điều tiết hoạt động gửi thư.
Giá trị trả về
WEAVE_ERROR_INVALID_ARGUMENT
Nếu một đối số không hợp lệ được truyền đến API SendMessage này.
WEAVE_ERROR_SEND_THROTTLED
Liệu bối cảnh trao đổi này có bị hạn chế khi sử dụng giao thức nhắn tin đáng tin cậy Weave hay không.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Nếu có sự không khớp trong thao tác gửi cụ thể và phiên bản giao thức thông báo Weave được hỗ trợ. Ví dụ: lỗi này sẽ xảy ra nếu hệ thống cố gắng thực hiện ngữ nghĩa thông báo đáng tin cậy của Weave khi phiên bản giao thức thông báo Weave là V1.
WEAVE_ERROR_NOT_CONNECTED
Liệu bối cảnh này có được liên kết với một kết nối hiện đã bị đóng hay không.
WEAVE_ERROR_INCORRECT_STATE
Nếu trạng thái của ngữ cảnh trao đổi không chính xác.
WEAVE_NO_ERROR
Nếu lớp Weave đã gửi thành công thông báo xuống lớp mạng.