nl::Dệt::ExchangeContext

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

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

Tóm tắt

Thẻ này xác định các phương thức mã hóa và giao tiếp thông báo Weave trong ExchangeContext trên các cơ chế truyền tải khác nhau, chẳng hạn như 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 ứng dụng để gọi khi kết nối Weave hiện có đã bị đó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.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Hàm này là lệnh gọi lại ứng dụng sẽ gọi 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 ứng dụng sẽ được gọi khi hết thời gian chờ để truyền lại thông báo đã gửi trước đó.
Timeout typedef
uint32_t
Loại 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 một Nội dung xác nhận được nhận cho thông báo Weave đã yêu cầu một thông báo trong Giao thức nhắn tin đá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 thông báo Điều tiết hoặc Thông báo gửi trễ bị nhận như là một phần của Giao thức nhắn tin đáng tin cậy.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Hàm này là lệnh gọi lại ứng dụng để gọi khi gặp lỗi khi gửi thông báo Weave.

Thuộc tính công khai

AllowDuplicateMsgs
bool
Chỉ báo boolean về việc có cho phép thông báo trùng lặp cho một đối tác trao đổi nhất định hay không.
AppState
void *
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 liên kết.
EncryptionType
uint8_t
Loại mã hóa để sử dụng khi gửi thư.
ExchangeId
uint16_t
[CHỈ SỬ DỤNG] Mã giao dịch được chỉ định.
ExchangeMgr
[CHỈ ĐỌC] Đang sở hữu người quản lý trao đổi.
KeyId
uint16_t
Khóa mã hóa để sử dụng khi gửi thư.
OnAckRcvd
Lệnh gọi lại ứng dụng cho nội dung xác nhận đã nhận.
OnConnectionClosed
OnDDRcvd
Lệnh gọi lại ứng dụng cho thông báo Phân phối bị trễ.
OnKeyError
Hàm này là lệnh gọi lại ứng dụng để gọi khi thông báo lỗi chính nhận được từ ứng dụng ngang hàng.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Lệnh gọi lại ứng dụng gặp lỗi khi gửi.
OnThrottleRcvd
Lệnh gọi lại ứng dụng cho tin nhắn Throttle đã nhận.
PeerAddr
IPAddress
[CHỈ ĐỌC] Địa chỉ IP của nút ngang hàng.
PeerIntf
InterfaceId
[CHỈ SỬ DỤNG] Sử dụng giao diện đi khi gửi tin nhắn đến đồng nghiệp.
PeerNodeId
uint64_t
[CHỈ SỬ DỤNG] Mã nút của nút ngang hàng.
PeerPort
uint16_t
[CHỈ ĐỌC] Cổng nút ngang hàng.
ResponseTimeout
Thời gian tối đa để phản hồi (tính bằng mili giây); 0 vô hiệu hóa 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 vô hiệu hóa 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
Hủy ngay ngữ cảnh Exchange và hủy tất cả mục 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ề liệu thư xác nhận có được yêu cầu bất cứ khi nào thư được gửi hay không.
CancelRetrans(void)
void
Hủy cơ chế truyền dữ liệu Trickle.
Close(void)
void
Nhanh chóng đóng ngữ cảnh trao đổi.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Mã hóa tiêu đề trao đổi vào một bộ đệm thư.
GetAutoReleaseKey() const
bool
Trả về liệu khóa mã hóa liên kết với đối tác trao đổi có được giải phóng khi trao đổi được giải phóng hay không.
GetCurrentRetransmitTimeout(void)
uint32_t
Nhận 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 kết nối / địa chỉ liên kết của nút đó.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Xử lý thông báo nhỏ trong ngữ cảnh trao đổi.
HasPeerRequestedAck(void) const
bool
Xác định xem bạn có muốn yêu cầu xác nhận cho ít nhất một tin nhắn trên sàn giao dịch này hay không.
HasRcvdMsgFromPeer(void) const
bool
Xác định xem bạn có nhận được ít nhất một thư từ đối tác trao đổi này từ đồng nghiệp không.
IsAckPending(void) const
bool
Xác định xem đã có lời xác nhận đang chờ gửi cho đồng nghiệp trong sàn giao dịch này hay chưa.
IsConnectionClosed(void) const
bool
Xác định xem ExchangeContext có liên kết với WeaveConnection hay không.
IsInitiator(void) const
bool
Xác định xem ngữ cảnh có phải là người khởi đầu sự trao đổi này hay không.
IsResponseExpected(void) const
bool
Xác định xem liệu có phải nhận được phản hồi cho các thư được gửi qua đối tác trao đổi này hay không.
Release(void)
void
Phát hành tệp tham chiếu đến bối cảnh trao đổi này.
SendCommonNullMessage(void)
Gửi thông báo Phổ biến::Null.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Gửi tin nhắn Weave về đối tác 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 Weave về đối tác trao đổi này.
SetAckPending(bool inAckPending)
void
Đặt xem xác nhận có cần được gửi lại cho đồng nghiệp trong nền tảng trao đổi này hay không.
SetAutoReleaseKey(bool autoReleaseKey)
void
Đặt liệu có cần phát hành khóa mã hóa liên kết với đối tác trao đổi khi trao đổi được giải phóng hay không.
SetAutoRequestAck(bool autoReqAck)
void
Đặt xem có cầ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
Đặt xem WeaveExchangeManager có không gửi thông báo xác nhận cho ngữ cảnh này hay không.
SetInitiator(bool inInitiator)
void
Đặt bit gắn cờ kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Đặt xem bạn có nhận được tin nhắn từ đồng nghiệp trên nền tảng trao đổi này hay không.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Đặt xem lời xác nhận có được yêu cầu trong thư cuối cùng nhận được từ đối tác trao đổi này hay không.
SetResponseExpected(bool inResponseExpected)
void
Đặt xem phản hồi có được mong đợi trên nền tảng trao đổi này hay không.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Đặt liệu kết nối Weave liên kết với đối tác trao đổi có được hủy bỏ khi giao dịch 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 âm lượng nhỏ bằng cách đặt khoảng thời gian truyền lại tương ứng và ngưỡng phát sóng lại.
ShouldAutoReleaseConnection() const
bool
Trả về kết nối Weave liên kết với đối tác trao đổi có nên bị hủy bỏ khi quá trình trao đổi được giải phóng hay không.
ShouldDropAck(void) const
bool
Xác định xem WeaveExchangeManager có không gửi xác nhận hay không.
StartTimerT(void)
Bắt đầu sử dụng cơ chế hẹn giờ truyền lại định kỳ của Trickle
TeardownTrickleRetransmit(void)
void
Chia nhỏ chế độ truyền lại Trickle bằng cách hủy các bộ tính giờ định kỳ trong Trickle và giải phóng bộ đệm tin nhắn, giữ tin nhắn Weave.
UseEphemeralUDPPort(void) const
bool
Trả về liệu các tin nhắn đi được gửi qua nền tảng trao đổi có nên được gửi từ cổng UDP tạm thời hay không.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Gửi tin nhắn đã gửi trễ để thông báo cho nút người gửi rằng tin nhắn đã gửi trước đó sẽ có sự chậm trễ dự kiến trước khi gửi đến người nhận.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Gửi thông báo Điều tiết luồng đến nút ngang hàng đang yêu cầu nút này điều chỉnh việc gửi thông báo.

Loại công khai

@34

 @34
Thuộc tính
kSendFlag_AlreadyEncoded

Dùng để cho biết rằng thư đã được mã hóa.

kSendFlag_AutoRetrans

Dùng để cho biết tính năng truyền lại tự động đang bật.

kSendFlag_DefaultMulticastSourceAddress

Dùng để cho biết rằng bạn nên dùng lựa chọn địa chỉ nguồn IPv6 mặc định 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 phải bị trì hoãn.

kSendFlag_ExpectResponse

Dùng để cho biết rằng cần có một phản hồi trong thời gian chờ được chỉ định.

kSendFlag_FromInitiator

Dùng để cho biết rằng thông báo hiện tại là điểm khởi đầu của trao đổi.

kSendFlag_MulticastFromLinkLocal

Bí danh không được 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 rằng bộ đệm thư không được giải phóng sau khi gửi.

kSendFlag_RetransmissionTrickle

Dùng để chỉ ra yêu cầu chuyển tiền cho Trickle.

kSendFlag_ReuseMessageId

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

kSendFlag_ReuseSourceId

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

@35

 @35
Thuộc tính
kGetPeerDescription_MaxLength

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

Kết nối đóng

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

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

Thông tin chi tiết
Các thông 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.

Lỗi khóa

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 thông 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.

Hàm Fun Nhận thức

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.

Thông tin chi tiết
Các thông 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
Giá trị nhận dạng hồ sơ của tin nhắn đã 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ữ phần dữ liệu tải.

Ứng dụng thời gian chờ phản hồi

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

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

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

ReTRANSmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

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

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

Thời gian chờ

uint32_t Timeout

Loại 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 một Nội dung xác nhận được nhận cho thông báo Weave đã yêu cầu một thông báo trong Giao thức nhắn tin đáng tin cậy của Weave.

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

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.

Thông tin chi tiết
Các thông 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).

WRMPGửiLỗi

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

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

Thông tin chi tiết
Các thông 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 tin nhắn.
[in] msgCtxt
Con trỏ đến một đối tượng ngữ cảnh cụ thể liên kết với thông báo gốc đang được báo cáo.

Thuộc tính công khai

Cho phép tin nhắn trùng lặp

bool AllowDuplicateMsgs

Chỉ báo boolean về việc có cho phép thông báo trùng lặp cho một đối tác trao đổi nhất định hay không.

AppState

void * AppState

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 liên kết.

Loại mã hóa

uint8_t EncryptionType

Loại mã hóa để sử dụng khi gửi thư.

Mã giao dịch

uint16_t ExchangeId

[CHỈ SỬ DỤNG] Mã giao dịch được chỉ định.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[CHỈ ĐỌC] Đang sở hữu người quản lý trao đổi.

Mã khóa

uint16_t KeyId

Khóa mã hóa để sử dụng khi gửi thư.

OnAckRcvd (AARRcvd)

WRMPAckRcvdFunct OnAckRcvd

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

Đã đóng kết nối

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ễ.

Lỗi OnKey

KeyErrorFunct OnKeyError

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

Đã nhận tin nhắn

MessageReceiveFunct OnMessageReceived

OnResponseHết

ResponseTimeoutFunct OnResponseTimeout

Thời gian truyền dữ liệu nhanh

RetransmissionTimeoutFunct OnRetransmissionTimeout

Lỗi khi gửi

WRMPSendErrorFunct OnSendError

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

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Lệnh gọi lại ứng dụng cho tin nhắn Throttle đã nhận.

Ứng dụng ngang hàng

IPAddress PeerAddr

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

PeerIntf

InterfaceId PeerIntf

[CHỈ SỬ DỤNG] Sử dụng giao diện đi khi gửi tin nhắn đến đồng nghiệp.

(Chỉ có ý nghĩa cho UDP.)

Mã ứng dụng ngang hàng

uint64_t PeerNodeId

[CHỈ SỬ DỤNG] Mã nút của nút ngang hàng.

Ứng dụng ngang hàng

uint16_t PeerPort

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

Thời gian chờ phản hồi

Timeout ResponseTimeout

Thời gian tối đa để phản hồi (tính bằng mili giây); 0 vô hiệu hóa thời gian chờ phản hồi.

Thời lượng chuyển đổi

uint32_t RetransInterval

Thời gian giữa các lần truyền lại (tính bằng mili giây); 0 vô hiệu hóa lần truyền lại.

m NhắGiao thức

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
)

Hủy ngay ngữ cảnh Exchange và hủy tất cả mục tham chiếu đến ngữ cảnh.

Thêm tham chiếu

void AddRef(
  void
)

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

Tự động yêu cầu

bool AutoRequestAck() const 

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

Hủy ReChuyển

void CancelRetrans(
  void
)

Hủy cơ chế truyền dữ liệu Trickle.

Đóng

void Close(
  void
)

Nhanh chóng đóng ngữ cảnh trao đổi.

Cuộc gọi này giảm số lượng tệp đối chiếu và hủy bỏ trao đổi khi số lượng tệp tham chiếu về 0.

Mã hóa tiêu chuẩn

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

Mã hóa tiêu đề trao đổi vào một bộ đệm thư.

Thông tin chi tiết
Các thông 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ỏ tới PacketBuffer cần cho thông báo Weave.
[in] sendFlags
Những cờ do ứng dụng gửi cho thông báo Weave sẽ được gửi.
Giá trị trả về
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu bộ đệm thư không có đủ dung lượng để mã hóa tiêu đề trao đổi.
WEAVE_NO_ERROR
Nếu việc mã hóa thư thành công.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Trả về liệu khóa mã hóa liên kết với đối tác trao đổi có được giải phóng khi trao đổi được giải phóng hay không.

GetCurrentRe TransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Nhận thời gian chờ truyền lại hiện tại.

Đó có thể là thời gian chờ truyền lại ban đầu hoặc đang hoạt động dựa trên việc ExchangeContext có trao đổi thông báo hoạt động cùng với đồng nghiệp hay không.

Thông tin chi tiết
Trả về
thời gian truyền hiện tại.

GetMô tả

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 kết nối / địa chỉ liên kết của nút đó.

Thông tin chi tiết
Các thông số
[in] buf
Con trỏ đến một vùng đệm mà chuỗi sẽ được ghi vào. Vùng đệm được cung cấp tối thiểu phải lớn bằng kGetPeerDescription_MaxLength. Nếu có vùng đệm nhỏ hơn, chuỗi sẽ bị cắt bớt để vừa với bộ đệm. Kết quả sẽ bao gồm một ký tự chấm dứt NUL trong tất cả các trường hợp.
[in] bufSize
Kích thước của bộ đệm tính bằng buf.

Tên người dùng

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

Xử lý thông báo nhỏ trong ngữ cảnh trao đổi.

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

HasPeerRequestAck

bool HasPeerRequestedAck(
  void
) const 

Xác định xem bạn có muốn yêu cầu xác nhận cho ít nhất một tin nhắn trên sàn giao dịch này hay không.

Thông tin chi tiết
Trả về
Trả về & # 39; true\39; nếu xác nhận được yêu cầu, khác & # 39; false\39;.

HasRcvdMMSFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Xác định xem bạn có nhận được ít nhất một thư từ đối tác trao đổi này từ đồng nghiệp không.

Thông tin chi tiết
Trả về
Trả về & # 39; true\39; nếu tin nhắn đã nhận được, thì khác & # 39; false\39;.

Đang chờ xử lý

bool IsAckPending(
  void
) const 

Xác định xem đã có lời xác nhận đang chờ gửi cho đồng nghiệp trong sàn giao dịch này hay chưa.

Đã kết nối

bool IsConnectionClosed(
  void
) const 

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

Thông tin chi tiết
Trả về
Trả về & # 39; true\39; nếu kết nối đã đóng, khác & # 39; false\39;.

Bộ khởi đầu

bool IsInitiator(
  void
) const 

Xác định xem ngữ cảnh có phải là người khởi đầu sự trao đổi này hay không.

Thông tin chi tiết
Trả về
Trả về & # 39; true & # 39; nếu đó là trình khởi tạo, khác là \ 39; false\39;.

Dự kiến phản hồi

bool IsResponseExpected(
  void
) const 

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

Thông tin chi tiết
Trả về
Trả về & # 39; true\39; nếu phản hồi dự kiến, khác & # 39; false\39;.

Phát hành

void Release(
  void
)

Phát hành tệp tham chiếu đến bối cảnh trao đổi này.

Nếu số lượng bị giảm xuống còn 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ả các bộ tính giờ.

Gửi chung thư

WEAVE_ERROR SendCommonNullMessage(
  void
)

Gửi thông báo Phổ biến::Null.

Thông tin chi tiết
Giá trị trả về
WEAVE_ERROR_NO_MEMORY
Nếu không có Package Packuffer nào có sẵn.
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ề.

Gửi tin nhắn

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

Gửi tin nhắn Weave về đối tác trao đổi này.

Thông tin chi tiết
Các thông 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ỏ tới đối tượng PacketBuffer đang giữ thông báo Weave.
[in] sendFlags
Những cờ do ứng dụng gửi cho thông báo Weave sẽ được gửi.
[in] msgCtxt
Con trỏ đến đối tượng ngữ cảnh dành riêng cho ứng dụng để 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 chuyển đến 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 Weave đáng tin cậy.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
nếu hoạt động gửi cụ thể không khớp với 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 qua Weave đáng tin cậy đang được thử khi phiên bản giao thức tin nhắn Weave là phiên bản 1.
WEAVE_ERROR_NOT_CONNECTED
nếu ngữ cảnh được liên kết với kết nối hiện đã bị đóng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái trao đổi không chính xác.
WEAVE_NO_ERROR
nếu lớp Weave đã gửi thông báo xuống lớp mạng thành công.

Gửi tin nhắn

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

Gửi tin nhắn Weave về đối tác trao đổi này.

Thông tin chi tiết
Các thông 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ỏ tới đối tượng PacketBuffer đang giữ thông báo Weave.
[in] sendFlags
Những cờ do ứng dụng gửi cho thông báo Weave sẽ đượ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 để 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 chuyển đến 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 Weave đáng tin cậy.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
nếu hoạt động gửi cụ thể không khớp với 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 qua Weave đáng tin cậy đang được thử khi phiên bản giao thức tin nhắn Weave là phiên bản 1.
WEAVE_ERROR_NOT_CONNECTED
nếu ngữ cảnh được liên kết với kết nối hiện đã bị đóng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái trao đổi không chính xác.
WEAVE_NO_ERROR
nếu lớp Weave đã gửi thông báo xuống lớp mạng thành công.

Đang chờ xử lý

void SetAckPending(
  bool inAckPending
)

Đặt xem xác nhận có cần được gửi lại cho đồng nghiệp trong nền tảng trao đổi này hay không.

Thông tin chi tiết
Các thông số
[in] inAckPending
Boolean cho biết liệu có nên gửi lại nội dung xác nhận (false) hay không (false) cho thư đã nhận.

Đặt khóa tự động phát hành

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Đặt liệu có cần phát hành khóa mã hóa liên kết với đối tác trao đổi khi trao đổi được giải phóng hay không.

Thông tin chi tiết
Các thông số
[in] autoReleaseKey
True nếu khóa mã hóa tin nhắn được tự động hủy bỏ.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Đặt xem có cầ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 thông số
[in] autoReqAck
Boolean cho biết liệu có nên yêu cầu xác nhận bất cứ khi nào gửi thư hay không.

Đã đặt ConnectConnection

void SetConnectionClosed(
  bool inConnectionClosed
)

Đặt bit cờ kFlagConnectionClosed.

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

Thông tin chi tiết
Các thông số
[in] inConnectionClosed
Boolean chỉ định xem ngữ cảnh có liên kết với kết nối hay không (true)?

Đặt Thả

void SetDropAck(
  bool inDropAck
)

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

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

Thông tin chi tiết
Các thông số
[in] inDropAck
Boolean chỉ ra (không có) (đúng) hay không) tuyên bố sẽ không được gửi cho đối tác trao đổi.

Bộ khởi đầu

void SetInitiator(
  bool inInitiator
)

Đặt bit gắn cờ kFlagInitiator.

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

Thông tin chi tiết
Các thông số
[in] inInitiator
Boolean chỉ định ngữ cảnh có phải là đối tượng khởi tạo của trao đổi hay không (true).

Đặt Set tỷRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Đặt xem bạn có nhận được tin nhắn từ đồng nghiệp trên nền tảng trao đổi này hay không.

Thông tin chi tiết
Các thông số
[in] inMsgRcvdFromPeer
Boolean cho biết liệu hệ thống có nhận được thông báo (đúng) hay không (false) từ ứng dụng ngang hàng về ngữ cảnh trao đổi này.

SetPeerRequestAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Đặt xem lời xác nhận có được yêu cầu trong thư cuối cùng nhận được từ đối tác trao đổi này hay không.

Thông tin chi tiết
Các thông số
[in] inPeerRequestedAck
Boolean chỉ ra liệu có xác nhận được (đúng) hay không (sai) yêu cầu trong thư nhận được cuối cùng.

Dự kiến phản hồi

void SetResponseExpected(
  bool inResponseExpected
)

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

Thông tin chi tiết
Các thông số
[in] inResponseExpected
Boolean cho biết liệu phản hồi có được dự kiến là (true) hay không (false).

Kết nối tự động phát hành

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Đặt liệu kết nối Weave liên kết với đối tác trao đổi có được hủy bỏ khi giao dịch trao đổi được giải phóng hay không.

Thông tin chi tiết
Các thông số
[in] autoReleaseCon
True nếu kết nối Weave tự động được hủy bỏ.

Thiết lập

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

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

Thông tin chi tiết
Các thông số
[in] retransInterval
Khoảng thời gian truyền lại của thuật toán phát sóng 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 hủy bộ hẹn giờ truyền lại Trickle.
Trả về
WEAVE_NO_ERROR nếu thiết lập Trickle thành công, nếu không, INET_ERROR được liên kết thành WEAVE_ERROR.

Thông báo phát hành tự động

bool ShouldAutoReleaseConnection() const 

Trả về kết nối Weave liên kết với đối tác trao đổi có nên bị hủy bỏ khi quá trình trao đổi được giải phóng hay không.

Cần có

bool ShouldDropAck(
  void
) const 

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

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

Thời gian bắt đầu

WEAVE_ERROR StartTimerT(
  void
)

Bắt đầu sử dụng cơ chế hẹn giờ truyền lại định kỳ của Trickle

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

Vé TrickleTrickleRetruyềnmit

void TeardownTrickleRetransmit(
  void
)

Chia nhỏ chế độ truyền lại Trickle bằng cách hủy các bộ tính giờ định kỳ trong Trickle và giải phóng bộ đệm tin nhắn, giữ tin nhắn Weave.

Sử dụng EphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

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

WRMPFshshcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPGửi trễ phân phối

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Gửi tin nhắn đã gửi trễ để thông báo cho nút người gửi rằng tin nhắn đã gửi trước đó sẽ có sự chậm trễ dự kiến trước khi gửi đến người nhận.

Một trong những nguyên nhân có thể khiến thư bị gửi trễ trước khi gửi là khi nút kết thúc của người nhận ở trạng thái buồn ngủ. Thông báo này có thể được tạo bởi một nút trung gian thích hợp trong đường dẫn gửi, người có đủ kiến thức về người nhận để suy luận 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ộ hẹn giờ truyền lại cho các thư tìm kiếm sự xác nhận trở lại.

Thông tin chi tiết
Các thông số
[in] pauseTimeMillis
Thời gian (tính bằng mili giây) mà thư được gửi trước đó dự kiến sẽ bị trễ trước khi gửi.
[in] delayedNodeId
Giá trị nhận dạng nút của nút ngang hàng mà quá trình phân phối tin nhắn sẽ bị trì hoãn.
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_WRONG_MSG_VERSION_FOR_EXCHANGE
nếu hoạt động gửi cụ thể không khớp với 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 qua Weave đáng tin cậy đang được thử khi phiên bản giao thức tin nhắn Weave là phiên bản 1.
WEAVE_ERROR_NOT_CONNECTED
nếu ngữ cảnh được liên kết với kết nối hiện đã bị đóng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái trao đổi không chính xác.
WEAVE_NO_ERROR
nếu lớp Weave đã gửi thông báo xuống lớp mạng thành công.

WRMPGửi ThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Gửi thông báo Điều tiết luồng đến nút ngang hàng đang yêu cầu nút này điều chỉnh việc gửi thông báo.

Thông tin chi tiết
Các thông 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 việc 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 bị hạn chế khi sử dụng giao thức nhắn tin đáng tin cậy Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Nếu hoạt động gửi cụ thể không khớp với phiên bản giao thức thông báo Weave đã hỗ trợ. Ví dụ: lỗi này sẽ được tạo nếu ngữ nghĩa Nhắn tin qua Weave đáng tin cậy đang được thử khi phiên bản giao thức tin nhắn Weave là phiên bản 1.
WEAVE_ERROR_NOT_CONNECTED
Bối cảnh có được liên kết với 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ông báo xuống lớp mạng thành công.