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 hai hoặc nhiều nút.

Tóm tắt

Phần 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à hàm gọi lại ứng dụng để gọi khi kết nối Weave hiện tại đã đóng.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Loại hàm 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 ứng dụng để xử lý thông báo Weave nhận được.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Hàm này là hàm gọi lại ứng dụng để gọi khi hết thời gian chờ nhận tin nhắn phản hồi.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Hàm này là hàm gọi lại ứng dụng để gọi khi hết thời gian chờ truyền lại các tin nhắn đã gửi trước đó.
Timeout typedef
uint32_t
Loại được dùng để thể hiện 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 ứng dụng để gọi khi nhận được Lời xác nhận cho tin nhắn Weave đã yêu cầu một thông báo trong 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 ứng dụng để gọi khi nhận được Thông báo điều tiết hoặc thông báo Phân phối trễ như một phần của 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à hàm gọi lại ứng dụng để gọi khi xảy ra lỗi trong khi gửi thông báo Weave.

Thuộc tính công khai

AllowDuplicateMsgs
bool
Chỉ báo boolean
AppState
void *
Con trỏ đến đối tượng trạng thái dành riêng cho ứng dụng.
Con
[READ ONLY] Kết nối liên kết với Weave.
EncryptionType
uint8_t
Loại mã hoá dùng khi gửi thư.
ExchangeId
uint16_t
[CHỈ ĐỌC] Mã trao đổi đượ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 thư.
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 trễ đã nhận.
OnKeyError
Hàm này là lệnh gọi lại ứng dụng để gọi khi ứng dụng ngang hàng nhận được thông báo lỗi chính.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Lệnh gọi lại ứng dụng bị lỗi khi gửi.
OnThrottleRcvd
Lệnh gọi lại ứng dụng cho thông báo Throttle đã nhận.
PeerAddr
IPAddress
[READ ONLY] Địa chỉ IP của nút ngang hàng.
PeerIntf
InterfaceId
[READ ONLY] Giao diện đi được sử dụng khi gửi thông báo cho ứng dụng ngang hàng.
PeerNodeId
uint64_t
[READ ONLY] Mã nút của nút ngang hàng.
PeerPort
uint16_t
[READ ONLY] 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 các lần truyền lại.
mMsgProtocolVersion
uint16_t
Phiên bản Giao thức thông báo cho ExchangeContext.
mWRMPConfig
Cấu hình WRMP.

Hàm công khai

Abort(void)
void
Huỷ ngay ngữ cảnh Exchange và giải phóng tất cả thông tin tham chiếu đến ngữ cảnh đó.
AddRef(void)
void
Tăng bộ đếm tham chiếu cho ngữ cảnh trao đổi thêm một.
AutoRequestAck() const
bool
Trả về việc có xác nhận hay không được yêu cầu xác nhận mỗi khi một tin nhắn được gửi đi.
CancelRetrans(void)
void
Hãy huỷ cơ chế truyền lại Trickle.
Close(void)
void
Đóng ngữ cảnh trao đổi nhẹ nhàng.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Mã hoá tiêu đề Exchange vào vùng đệm thông báo.
GetAutoReleaseKey() const
bool
Trả về xem khoá mã hoá liên kết với bên trao đổi có được huỷ khi trao đổi được giải phóng hay khô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 kết của nút đó.
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 người dùng có yêu cầu xác nhận đối với ít nhất một thư trong lần trao đổi này hay không.
HasRcvdMsgFromPeer(void) const
bool
Xác định xem có phải người dùng ngang hàng đã nhận được ít nhất một tin nhắn trong lần trao đổi này hay không.
IsAckPending(void) const
bool
Xác định xem đã có xác nhận nào đang chờ gửi cho người dùng ngang hàng trên trao đổi này hay chưa.
IsConnectionClosed(void) const
bool
Xác định xem ExchangeContext có liên kết với một WeaveConnection đang hoạt động hay không.
IsInitiator(void) const
bool
Xác định xem bối 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 liệu có phản hồi cho các thư đượ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 qua Weave trong lần trao đổi này.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Gửi tin nhắn qua Weave trong lần trao đổi này.
SetAckPending(bool inAckPending)
void
Thiết lập xem có cần gửi lại xác nhận cho ngang hàng trong trao đổi này hay không.
SetAutoReleaseKey(bool autoReleaseKey)
void
Thiết lập xem có nên giải phóng khoá mã hoá liên kết với bên trao đổi khi trao đổi được giải phóng hay không.
SetAutoRequestAck(bool autoReqAck)
void
Thiết lập xem có nên yêu cầu xác nhận mỗi khi gửi thư hay không.
SetConnectionClosed(bool inConnectionClosed)
void
Đặt bit cờ kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Thiết lập xem WeaveExchangeManager có nên gửi thông báo xác nhận trong ngữ cảnh này hay không.
SetInitiator(bool inInitiator)
void
Đặt bit cờ kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Thiết lập xem có nhận được tin nhắn từ mạng ngang hàng trong trao đổi này hay không.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Thiết lập xem bạn có yêu cầu xác nhận trong tin nhắn cuối cùng nhận được trong lần trao đổi này hay không.
SetResponseExpected(bool inResponseExpected)
void
Thiết lập xem liệu có phản hồi dự kiến trong lần trao đổi này hay không.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Thiết lập xem có nên huỷ kết nối Weave liên kết với giao dịch trao đổi khi trao đổi được giải phóng hay khô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 phát 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ó nên gửi 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 phát lại Trickle.
TeardownTrickleRetransmit(void)
void
Chia nhỏ cơ chế truyền lại Trickle bằng cách huỷ bộ tính giờ định kỳ trong Trickle và giải phóng bộ đệm thông báo đang giữ thông báo Weave.
UseEphemeralUDPPort(void) const
bool
Trả về xem có gửi thư đi được gửi qua trao đổ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 trễ để thông báo cho nút người gửi rằng thư đã gửi trước đó sẽ bị trễ trước khi được gửi đến người nhận.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Gửi thông báo Luồng điều tiết đến nút ngang hàng và yêu cầu nút này điều tiết việc gửi thông báo.

Loại công khai

@34

 @34
Thuộc tính
kSendFlag_AlreadyEncoded

Được dùng để cho biết rằng thông báo đã được mã hoá.

kSendFlag_AutoRetrans

Được dùng để cho biết rằng tính năng tự động truyền lại đang bật.

kSendFlag_DefaultMulticastSourceAddress

Được sử 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 phát đ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 được trì hoãn.

kSendFlag_ExpectResponse

Dùng để cho biết dự kiến sẽ có phản hồi trong một thời gian chờ chỉ định.

kSendFlag_FromInitiator

Dùng để cho biết rằng tin nhắn hiện tại là tin nhắn bắt đầu quá trình trao đổi.

kSendFlag_MulticastFromLinkLocal

Ngừng sử dụng bí danh của kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Chặn tính năng tự động xác nhận yêu cầu 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 thư 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 của thư trong tiêu đề thư có thể được sử dụng lại.

kSendFlag_ReuseSourceId

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

@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 hàm GetPeerDescription() trả về.

ConnectionClosedFunct

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

Hàm này là hàm gọi lại ứng dụng để gọi khi kết nối Weave hiện tại đã đóng.

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

KeyErrorFunct

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

Loại hàm xử lý thông báo lỗi chính.

Thông tin chi tiết
Các tham số
[in] ec
Con trỏ đến đối tượng ExchangeContext.
[in] keyErr
Loại WEAVE_ERROR đã được báo cáo trong thông báo lỗi chính.

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 ứng dụng để xử lý thông báo Weave nhận được.

Thông tin chi tiết
Các tham số
[in] ec
Con trỏ đến đối tượng ExchangeContext.
[in] pktInfo
Con trỏ đến đối tượng IPPacketInfo.
[in] msgInfo
Con 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ỏ đến đối tượng PacketBuffer đang giữ tải trọng thông báo.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Hàm này là hàm gọi lại ứng dụng để gọi khi hết thời gian chờ nhận tin nhắn phản hồi.

Thông tin chi tiết
Các tham số
[in] ec
Con trỏ đến đối tượng ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

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

Thông tin chi tiết
Các tham số
[in] ec
Con trỏ đến đối tượng ExchangeContext.

Lần bị tạm ngừng

uint32_t Timeout

Loại được dùng để thể hiện 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 ứng dụng để gọi khi nhận được Lời xác nhận cho tin nhắn Weave đã yêu cầu một thông báo trong Giao thức thông báo đáng tin cậy của Weave.

Thông tin chi tiết
Các tham số
[in] ec
Con trỏ đến đối tượng ExchangeContext.
[in] msgCtxt
Con trỏ đến một số đối tượng ngữ cảnh cụ thể liên quan đến thông báo ban đầu đ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 ứng dụng để gọi khi nhận được Thông báo điều tiết hoặc thông báo Phân phối trễ như một phần của Giao thức thông báo đáng tin cậy của Weave.

Mỗi thông báo đi kèm với 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.

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

WRMPSendErrorFunct

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

Hàm này là hàm gọi lại ứng dụng để gọi khi xảy ra lỗi trong khi gửi thông báo Weave.

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

Thuộc tính công khai

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Chỉ báo boolean

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

[READ ONLY] Kết nối liên kết với Weave.

EncryptionType

uint8_t EncryptionType

Loại mã hoá dùng khi gửi thư.

ExchangeId

uint16_t ExchangeId

[CHỈ ĐỌC] Mã trao đổi đượ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 thư.

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 trễ đã nhận.

OnKeyError

KeyErrorFunct OnKeyError

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

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Lệnh gọi lại ứng dụng bị lỗi khi gửi.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Lệnh gọi lại ứng dụng cho thông báo Throttle đã nhận.

PeerAddr

IPAddress PeerAddr

[READ ONLY] Địa chỉ IP của nút ngang hàng.

PeerIntf

InterfaceId PeerIntf

[READ ONLY] Giao diện đi được sử dụng khi gửi thông báo cho ứng dụng ngang hàng.

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

PeerNodeId

uint64_t PeerNodeId

[READ ONLY] Mã nút của nút ngang hàng.

PeerPort

uint16_t PeerPort

[READ ONLY] 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 các lần truyền lại.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Phiên bản 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ỷ ngay ngữ cảnh Exchange và giải phóng tất cả thông tin tham chiếu đến ngữ cảnh đó.

AddRef

void AddRef(
  void
)

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

AutoRequestAck

bool AutoRequestAck() const 

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

CancelRetrans

void CancelRetrans(
  void
)

Hãy huỷ cơ chế truyền lại Trickle.

Đóng

void Close(
  void
)

Đóng ngữ cảnh trao đổi nhẹ nhàng.

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

EncodeExchHeader

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

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

Thông tin chi tiết
Các tham số
[in] exchangeHeader
Con trỏ đến đố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ỏ đến 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 mã hoá thông báo thành công.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

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

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

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

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

Thông tin 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 kết của nút đó.

Thông tin chi tiết
Các tham số
[in] buf
Con trỏ đến một vùng đệm mà chuỗi sẽ được ghi vào đó. Bộ đệ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ẽ bị cắt bớt cho vừa. Kết quả 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 được trỏ đến 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.

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

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Xác định xem người dùng có yêu cầu xác nhận đối với ít nhất một thư trong lần trao đổi này hay không.

Thông tin chi tiết
Trả về
Trả về "true" nếu xác nhận được yêu cầu, nếu không xác nhận thì trả về "false".

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Xác định xem có phải người dùng ngang hàng đã nhận được ít nhất một tin nhắn trong lần trao đổi này hay không.

Thông tin chi tiết
Trả về
Trả về "true" nếu nhận được tin nhắn, nếu không thì trả về "false".

IsAckPending

bool IsAckPending(
  void
) const 

Xác định xem đã có xác nhận nào đang chờ gửi cho người dùng ngang hàng trên trao đổi này hay chưa.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

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

Thông tin chi tiết
Trả về
Trả về "true" nếu kết nối bị đóng, nếu không thì trả về "false".

IsInitiator

bool IsInitiator(
  void
) const 

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

Thông tin chi tiết
Trả về
Trả về 'true' nếu đó là trình khởi tạo, nếu không thì trả về 'false'.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Xác định xem liệu có phản hồi cho các thư được gửi qua lần trao đổi này hay không.

Thông tin chi tiết
Trả về
Trả về "true" nếu câu trả lời dự kiến, nếu không thì trả về "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ố đếm giảm xuống còn 1, 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ả đồng hồ hẹn giờ.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

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

Thông tin chi tiết
Giá trị trả về
WEAVE_ERROR_NO_MEMORY
Nếu không có sẵn PacketBuffers.
WEAVE_NO_ERROR
Nếu phương thức 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 qua Weave trong lần trao đổi này.

Thông tin chi tiết
Các 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ỏ đến đối tượng PacketBuffer đang giữ 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ỏ đến đố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 đối số không hợp lệ đã được chuyển vào API SendMessage này.
WEAVE_ERROR_SEND_THROTTLED
nếu ngữ cảnh trao đổi này đã bị điều tiết 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ẽ được tạo nếu ngữ nghĩa Nhắn tin đáng tin cậy của Weave đang được thử khi phiên bản giao thức tin nhắn của 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 đã được đó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 qua Weave trong lần trao đổi này.

Thông tin chi tiết
Các 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ỏ đến đối tượng PacketBuffer đang giữ 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ỏ đến đối tượng WeaveMessageInfo.
[in] msgCtxt
Con trỏ đến đố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 đối số không hợp lệ đã được chuyển vào API SendMessage này.
WEAVE_ERROR_SEND_THROTTLED
nếu ngữ cảnh trao đổi này đã bị điều tiết 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ẽ được tạo nếu ngữ nghĩa Nhắn tin đáng tin cậy của Weave đang được thử khi phiên bản giao thức tin nhắn của 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 đã được đó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
)

Thiết lập xem có cần gửi lại xác nhận cho ngang hàng trong trao đổi này hay không.

Thông tin chi tiết
Các tham số
[in] inAckPending
Giá trị boolean cho biết liệu xác nhận (true) hay không (false) có cần được gửi lại để phản hồi thông báo đã nhận.

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Thiết lập xem có nên giải phóng khoá mã hoá liên kết với bên trao đổi khi trao đổi được giải phóng hay không.

Thông tin chi tiết
Các tham số
[in] autoReleaseKey
Đúng nếu khoá mã hoá tin nhắn tự động được huỷ.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Thiết lập xem có nên yêu cầu xác nhận mỗi khi gửi thư hay không.

Thông tin chi tiết
Các tham số
[in] autoReqAck
Boolean cho biết có cần xác nhận hay không mỗi khi một thông báo được gửi đi.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Đặt bit cờ kFlagConnectionClosed.

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

Thông tin chi tiết
Các tham số
[in] inConnectionClosed
Boolean cho biết (true) hay không (false) ngữ cảnh có liên kết với một kết nối hay không.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Thiết lập xem WeaveExchangeManager có nên gửi thông báo xác nhận trong ngữ cảnh này hay không.

Chỉ sử dụng tính năng gỡ lỗi trong nội bộ.

Thông tin chi tiết
Các tham số
[in] inDropAck
Giá trị Boolean cho biết liệu xác nhận (true) hay không (false) có nên được gửi để trao đổi hay không.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Đặt bit cờ kFlagInitiator.

Cờ này do nút bắt đầu trao đổi đặt.

Thông tin chi tiết
Các tham số
[in] inInitiator
Boolean cho biết liệu (true) hay không (false) ngữ cảnh có phải là đối tượng khởi tạo của quá trình trao đổi hay không.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Thiết lập xem có nhận được tin nhắn từ mạng ngang hàng trong trao đổi này hay không.

Thông tin chi tiết
Các tham số
[in] inMsgRcvdFromPeer
Boolean cho biết liệu (true) hay không (false) có nhận được tin nhắn từ mạng ngang hàng trong ngữ cảnh trao đổi này hay không.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Thiết lập xem bạn có yêu cầu xác nhận trong tin nhắn cuối cùng nhận được trong lần trao đổi này hay không.

Thông tin chi tiết
Các tham số
[in] inPeerRequestedAck
Giá trị boolean cho biết liệu (true) hay không (false) có yêu cầu xác nhận trong thông báo nhận được gần nhất hay không.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Thiết lập xem liệu có phản hồi dự kiến trong lần trao đổi này hay không.

Thông tin chi tiết
Các tham số
[in] inResponseExpected
Giá trị Boolean cho biết liệu (true) hay không (false) có dự kiến sẽ nhận được phản hồi trong lần trao đổi này hay không.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

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

Thông tin chi tiết
Các tham số
[in] autoReleaseCon
Đúng nếu kết nối Weave được thả tự động.

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 phát lại tương ứng.

Thông tin chi tiết
Các 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 một thông báo được phát lại.
[in] timeout
Thời gian chờ tối đa trước khi huỷ bộ tính giờ truyền lại dữ liệu Trickle.
Trả về
WEAVE_NO_ERROR nếu thiết lập Trickle thành công, nếu không thì một INET_ERROR được liên kết với 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ó nên gửi xác nhận hay không.

Chỉ sử dụng tính năng gỡ lỗi trong 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 phát lại Trickle.

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

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

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

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Trả về xem có gửi thư đi được gửi qua trao đổ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 trễ để thông báo cho nút người gửi rằng thư đã gửi trước đó sẽ bị trễ trước khi được gửi đến người nhận.

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

Thông tin chi tiết
Các tham số
[in] pauseTimeMillis
Thời gian (tính bằng mili giây) mà thư đã gửi trước đó dự kiến sẽ bị trì hoãn trước khi được gửi.
[in] delayedNodeId
Giá trị nhận dạng nút của nút ngang hàng mà việc gửi tin nhắn sẽ bị trì hoãn.
Giá trị trả về
WEAVE_ERROR_INVALID_ARGUMENT
nếu đối số không hợp lệ đã được chuyển vào 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ẽ được tạo nếu ngữ nghĩa Nhắn tin đáng tin cậy của Weave đang được thử khi phiên bản giao thức tin nhắn của 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 đã được đó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 đến nút ngang hàng và yêu cầu nút này điều tiết việc gửi thông báo.

Thông tin chi tiết
Các 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.
Giá trị trả về
WEAVE_ERROR_INVALID_ARGUMENT
Nếu một đối số không hợp lệ đã được chuyển đến API SendMessage này.
WEAVE_ERROR_SEND_THROTTLED
Nếu ngữ cảnh trao đổi này đã được điều tiết 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 giữa 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ẽ được tạo nếu ngữ nghĩa Nhắn tin đáng tin cậy của Weave đang được thử khi phiên bản giao thức tin nhắn của Weave là V1.
WEAVE_ERROR_NOT_CONNECTED
Liệu ngữ cảnh có liên kết với một kết nối hiện đã đó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.