nl:: بافت:: ExchangeContext

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

این کلاس یک مکالمه در حال انجام ( ExchangeContext ) بین دو یا چند گره را نشان می دهد.

خلاصه

روش‌هایی را برای رمزگذاری و برقراری ارتباط پیام‌های Weave در یک ExchangeContext از طریق مکانیسم‌های انتقال مختلف، به عنوان مثال، TCP، UDP، یا Weave Reliable Messaging تعریف می‌کند.

انواع عمومی

@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(*
این تابع یک برنامه فراخوانی برای فراخوانی زمانی است که یک اتصال 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 درخواست داده است، فراخوانی می شود.
WRMPPauseRcvdFunct )(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
این تابع، پاسخ تماس برنامه کاربردی است که هنگام دریافت پیام دریچه گاز یا پیام تأخیر در تحویل به عنوان بخشی از پروتکل پیام رسانی قابل اعتماد Weave فراخوانی می شود.
WRMPSendErrorFunct )(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
این تابع، پاسخ به فراخوانی برنامه است که هنگام ارسال یک پیام Weave با خطا مواجه می شود.

صفات عمومی

AllowDuplicateMsgs
bool
نشانگر بولی که نشان می دهد آیا پیام های تکراری برای یک تبادل داده شده مجاز هستند یا خیر.
AppState
void *
اشاره گر به شیء حالت خاص برنامه.
Con
[فقط بخوانید] اتصال بافت مرتبط.
EncryptionType
uint8_t
نوع رمزگذاری برای استفاده در هنگام ارسال پیام.
ExchangeId
uint16_t
[فقط بخوانید] شناسه تبادل اختصاص داده شده.
ExchangeMgr
[فقط بخوانید] مدیر صرافی.
KeyId
uint16_t
کلید رمزگذاری برای استفاده در هنگام ارسال پیام
OnAckRcvd
پاسخ تماس برنامه برای تأیید دریافت شده.
OnConnectionClosed
OnDDRcvd
پاسخ به تماس برنامه برای پیام تحویل تأخیر دریافت شده.
OnKeyError
این عملکرد، پاسخ به تماس برنامه کاربردی است که در صورت دریافت پیام خطای کلیدی از طرف همتا، فراخوانی می شود.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
پاسخ به تماس برنامه برای خطا در هنگام ارسال.
OnThrottleRcvd
پاسخ تماس برنامه برای پیام دریافتی دریچه گاز.
PeerAddr
IPAddress
[فقط خواندن] آدرس IP گره همتا.
PeerIntf
InterfaceId
[فقط خواندن] رابط خروجی برای استفاده در هنگام ارسال پیام به همتا.
PeerNodeId
uint64_t
[READ ONLY] شناسه گره گره همتا.
PeerPort
uint16_t
[فقط خواندن] پورت گره همتا.
ResponseTimeout
حداکثر زمان برای انتظار برای پاسخ (بر حسب میلی ثانیه)؛ 0 زمان پاسخ را غیرفعال می کند.
RetransInterval
uint32_t
زمان بین ارسال مجدد (بر حسب میلی ثانیه)؛ 0 ارسال مجدد را غیرفعال می کند.
mMsgProtocolVersion
uint16_t
نسخه پروتکل پیام برای ExchangeContext .
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
تعیین کنید که آیا حداقل یک پیام در این تبادل از طرف همتا دریافت شده است یا خیر.
IsAckPending (void) const
bool
تعیین کنید که آیا قبلاً تأییدیه ای در انتظار ارسال به همتا در این تبادل وجود دارد یا خیر.
IsConnectionClosed (void) const
bool
تعیین کنید که ExchangeContext یک WeaveConnection فعال مرتبط دارد یا خیر.
IsInitiator (void) const
bool
تعیین کنید که آیا زمینه آغازگر مبادله است یا خیر.
IsResponseExpected (void) const
bool
تعیین کنید که آیا پاسخی برای پیام‌های ارسال شده از طریق این تبادل انتظار می‌رود یا خیر.
Release (void)
void
اشاره انتشار به این زمینه تبادل.
SendCommonNullMessage (void)
ارسال یک پیام مشترک::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 را شروع کنید.
TeardownTrickleRetransmit (void)
void
مکانیسم ارسال مجدد Trickle را با لغو تایمرهای دوره ای در Trickle و آزاد کردن بافر پیام که پیام Weave را نگه می دارد، از بین ببرید.
UseEphemeralUDPPort (void) const
bool
برگردانید که آیا پیام های خروجی ارسال شده از طریق صرافی باید از درگاه UDP زودگذر محلی ارسال شوند یا خیر.
WRMPFlushAcks (void)
WRMPSendDelayedDelivery (uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
یک پیام تحویل تأخیر ارسال کنید تا به یک گره فرستنده اطلاع دهید که پیام ارسال شده قبلی قبل از تحویل به گیرنده با تأخیر مورد انتظار مواجه خواهد شد.
WRMPSendThrottleFlow (uint32_t PauseTimeMillis)
یک پیام Throttle Flow به گره همتا ارسال کنید و از آن بخواهید که ارسال پیام‌ها را متوقف کند.

انواع عمومی

@34

 @34
خواص
kSendFlag_AlreadyEncoded

برای نشان دادن اینکه پیام قبلاً کدگذاری شده است استفاده می شود.

kSendFlag_AutoRetrans

برای نشان دادن فعال بودن انتقال مجدد خودکار استفاده می شود.

kSendFlag_DefaultMulticastSourceAddress

برای نشان دادن اینکه انتخاب آدرس منبع IPv6 پیش‌فرض باید هنگام ارسال پیام‌های چندپخشی IPv6 استفاده شود.

kSendFlag_DelaySend

برای نشان دادن اینکه ارسال پیام فعلی باید به تاخیر بیفتد استفاده می شود.

kSendFlag_ExpectResponse

برای نشان دادن اینکه انتظار می رود پاسخ در یک بازه زمانی مشخص شده باشد استفاده می شود.

kSendFlag_FromInitiator

برای نشان دادن اینکه پیام فعلی آغازگر تبادل است استفاده می شود.

kSendFlag_MulticastFromLinkLocal

نام مستعار منسوخ شده برای kSendFlag_DefaultMulticastSourceAddress .

kSendFlag_NoAutoRequestAck

هنگام ارسال پیام، ویژگی تأیید درخواست خودکار را متوقف کنید.

kSendFlag_RequestAck

برای ارسال پیام WRM با درخواست تأیید استفاده می شود.

kSendFlag_RetainBuffer

برای نشان دادن اینکه بافر پیام نباید پس از ارسال آزاد شود استفاده می شود.

kSendFlag_RetransmissionTrickle

برای نشان دادن نیاز به ارسال مجدد برای Trickle استفاده می شود.

kSendFlag_ReuseMessageId

برای نشان دادن اینکه شناسه پیام در هدر پیام قابل استفاده مجدد است استفاده می شود.

kSendFlag_ReuseSourceId

برای نشان دادن اینکه شناسه گره منبع در سرصفحه پیام قابل استفاده مجدد است استفاده می شود.

@35

 @35
خواص
kGetPeerDescription_MaxLength

حداکثر طول رشته (شامل کاراکتر NUL) که توسط GetPeerDescription() برگردانده شده است.

ConnectionClosedFunct

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

این تابع یک برنامه فراخوانی برای فراخوانی زمانی است که یک اتصال Weave موجود بسته شده است.

جزئیات
مولفه های
[in] ec
یک اشاره گر به شی ExchangeContext .
[in] con
اشاره گر به شی WeaveConnection .
[in] conErr
نوع WEAVE_ERROR که هنگام بسته شدن اتصال گزارش شد.

KeyErrorFunct

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

نوع عملکرد مدیریت پیام خطای کلید.

جزئیات
مولفه های
[in] ec
یک اشاره گر به شی ExchangeContext .
[in] keyErr
نوع WEAVE_ERROR که در پیام خطای کلیدی گزارش شده است.

MessageReceiveFunct

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

این تابع پاسخ تماس برنامه برای مدیریت پیام Weave دریافتی است.

جزئیات
مولفه های
[in] ec
یک اشاره گر به شی ExchangeContext .
[in] pktInfo
اشاره گر به شی IPPacketInfo.
[in] msgInfo
یک اشاره گر به شی WeaveMessageInfo .
[in] profileId
شناسه پروفایل پیام دریافتی.
[in] msgType
نوع پیام نمایه مربوطه.
[in] payload
یک اشاره گر به شیء PacketBuffer که بار پیام را نگه می دارد.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

این تابع، پاسخ به فراخوانی برنامه برای فراخوانی زمانی است که مهلت زمانی برای دریافت پیام پاسخ منقضی شده است.

جزئیات
مولفه های
[in] ec
یک اشاره گر به شی ExchangeContext .

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

این تابع یک برنامه تماس مجدد برای فراخوانی زمانی است که مهلت زمانی ارسال مجدد پیام ارسال شده قبلی منقضی شده است.

جزئیات
مولفه های
[in] ec
یک اشاره گر به شی ExchangeContext .

تایم اوت

uint32_t Timeout

نوع مورد استفاده برای بیان مهلت زمانی در این ExchangeContext ، در میلی ثانیه.

WRMPAckRcvdFunct

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

این تابع یک برنامه فراخوانی است که هنگام دریافت یک تأییدیه برای پیام Weave که به عنوان بخشی از پروتکل پیام رسانی قابل اعتماد Weave درخواست داده است، فراخوانی می شود.

جزئیات
مولفه های
[in] ec
یک اشاره گر به شی ExchangeContext .
[in] msgCtxt
یک اشاره گر به برخی از شی زمینه خاص مرتبط با پیام اصلی که تایید می شود.

WRMPPauseRcvdFunct

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

این تابع، پاسخ تماس برنامه کاربردی است که هنگام دریافت پیام دریچه گاز یا پیام تأخیر در تحویل به عنوان بخشی از پروتکل پیام رسانی قابل اعتماد Weave فراخوانی می شود.

هر یک از این پیام‌ها با یک مقدار زمانی (بر حسب میلی‌ثانیه) همراه هستند که نشان‌دهنده زمان توقف ارسال پیام‌های Weave در این ExchangeContext است.

جزئیات
مولفه های
[in] ec
یک اشاره گر به شی ExchangeContext .
[in] pauseTime
زمان توقف انتقال (بر حسب میلی ثانیه).

WRMPSendErrorFunct

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

این تابع، پاسخ به فراخوانی برنامه است که هنگام ارسال یک پیام Weave با خطا مواجه می شود.

جزئیات
مولفه های
[in] ec
یک اشاره گر به شی ExchangeContext .
[in] err
نوع WEAVE_ERROR که در هنگام ارسال پیام با آن مواجه شد.
[in] msgCtxt
یک اشاره گر به یک شی زمینه خاص مرتبط با پیام اصلی که در آن گزارش شده است.

صفات عمومی

AllowDuplicateMsgs

bool AllowDuplicateMsgs

نشانگر بولی که نشان می دهد آیا پیام های تکراری برای یک تبادل داده شده مجاز هستند یا خیر.

AppState

void * AppState

اشاره گر به شیء حالت خاص برنامه.

باهم

WeaveConnection * Con

[فقط بخوانید] اتصال بافت مرتبط.

نوع رمزگذاری

uint8_t EncryptionType

نوع رمزگذاری برای استفاده در هنگام ارسال پیام.

ExchangeId

uint16_t ExchangeId

[فقط بخوانید] شناسه تبادل اختصاص داده شده.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[فقط بخوانید] مدیر صرافی.

شناسه کلید

uint16_t KeyId

کلید رمزگذاری برای استفاده در هنگام ارسال پیام

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

پاسخ تماس برنامه برای تأیید دریافت شده.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

پاسخ به تماس برنامه برای پیام تحویل تأخیر دریافت شده.

OnKeyError

KeyErrorFunct OnKeyError

این عملکرد، پاسخ به تماس برنامه کاربردی است که در صورت دریافت پیام خطای کلیدی از طرف همتا، فراخوانی می شود.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

پاسخ به تماس برنامه برای خطا در هنگام ارسال.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

پاسخ تماس برنامه برای پیام دریافتی دریچه گاز.

PeerAddr

IPAddress PeerAddr

[فقط خواندن] آدرس IP گره همتا.

PeerIntf

InterfaceId PeerIntf

[فقط خواندن] رابط خروجی برای استفاده در هنگام ارسال پیام به همتا.

(فقط برای UDP معنی دارد.)

PeerNodeId

uint64_t PeerNodeId

[READ ONLY] شناسه گره گره همتا.

PeerPort

uint16_t PeerPort

[فقط خواندن] پورت گره همتا.

ResponseTimeout

Timeout ResponseTimeout

حداکثر زمان برای انتظار برای پاسخ (بر حسب میلی ثانیه)؛ 0 زمان پاسخ را غیرفعال می کند.

RetransInterval

uint32_t RetransInterval

زمان بین ارسال مجدد (بر حسب میلی ثانیه)؛ 0 ارسال مجدد را غیرفعال می کند.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

نسخه پروتکل پیام برای ExchangeContext .

mWRMPConfig

WRMPConfig mWRMPConfig

پیکربندی WRMP

توابع عمومی

سقط

void Abort(
  void
)

بلافاصله زمینه Exchange را لغو کنید و تمام ارجاعات به آن را آزاد کنید.

AdRef

void AddRef(
  void
)

شمارنده مرجع برای زمینه مبادله را یک عدد افزایش دهید.

AutoRequestAck

bool AutoRequestAck() const 

نشان می‌دهد که آیا هر زمان که پیامی ارسال می‌شود، تأیید درخواست می‌شود یا خیر.

لغو Retrans

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 برای ارسال.
[in] msgType
نوع پیام نمایه مربوطه.
[in] msgBuf
یک اشاره گر به PacketBuffer مورد نیاز برای پیام Weave.
[in] sendFlags
پرچم هایی که توسط برنامه برای پیام Weave ارسال می شود تنظیم شده است.
ارزش های بازگشتی
WEAVE_ERROR_BUFFER_TOO_SMALL
اگر بافر پیام فضای کافی برای رمزگذاری هدر تبادل نداشته باشد.
WEAVE_NO_ERROR
اگر رمزگذاری پیام موفقیت آمیز بود.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

بازگردانید که آیا کلید رمزگذاری مرتبط با صرافی باید با آزاد شدن صرافی آزاد شود یا خیر.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

زمان پایان ارسال مجدد فعلی را دریافت کنید.

بر اساس اینکه ExchangeContext یک تبادل پیام فعال با همتای خود دارد یا خیر، زمان باز ارسال اولیه یا فعال است.

جزئیات
برمی گرداند
زمان ارسال مجدد فعلی

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

رشته ای می سازد که گره همتا و آدرس/اطلاعات اتصال مرتبط با آن را توصیف می کند.

جزئیات
مولفه های
[in] buf
اشاره گر به بافری که رشته باید در آن نوشته شود. بافر ارائه شده باید حداقل به اندازه kGetPeerDescription_MaxLength باشد. اگر بافر کوچکتری داده شود، رشته برای تناسب کوتاه می شود. خروجی شامل یک کاراکتر خاتمه NUL در همه موارد خواهد بود.
[in] bufSize
اندازه بافر که توسط buf نشان داده شده است.

HandleTrickleMessage

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

مدیریت پیام چکیده در زمینه تبادل.

جزئیات
مولفه های
[in] pktInfo
اشاره گر به شی IPPacketInfo.
[in] msgInfo
اشاره گر به ساختار اطلاعات پیام Weave.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

تعیین کنید که آیا همتایان برای حداقل یک پیام در این تبادل درخواست تأیید کرده اند یا خیر.

جزئیات
برمی گرداند
در صورت درخواست تأیید، «درست» را برمی‌گرداند، در غیر این صورت «نادرست» است.

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

تعیین کنید که آیا حداقل یک پیام در این تبادل از طرف همتا دریافت شده است یا خیر.

جزئیات
برمی گرداند
در صورت دریافت پیام، «درست» را برمی‌گرداند، در غیر این صورت «نادرست» است.

IsAckPending

bool IsAckPending(
  void
) const 

تعیین کنید که آیا قبلاً تأییدیه ای در انتظار ارسال به همتا در این تبادل وجود دارد یا خیر.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

تعیین کنید که ExchangeContext یک WeaveConnection فعال مرتبط دارد یا خیر.

جزئیات
برمی گرداند
اگر اتصال بسته باشد، «درست» را برمی‌گرداند، در غیر این صورت «نادرست» است.

آغازگر است

bool IsInitiator(
  void
) const 

تعیین کنید که آیا زمینه آغازگر مبادله است یا خیر.

جزئیات
برمی گرداند
اگر آغازگر باشد، «درست» را برمی‌گرداند، در غیر این صورت «نادرست» است.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

تعیین کنید که آیا پاسخی برای پیام‌های ارسال شده از طریق این تبادل انتظار می‌رود یا خیر.

جزئیات
برمی گرداند
اگر پاسخ مورد انتظار باشد، «درست» را برمی‌گرداند، در غیر این صورت «نادرست» است.

رهایی

void Release(
  void
)

مرجع انتشار به این زمینه مبادله.

اگر شمارش تا یک است، پس زمینه را ببندید، همه تماس‌های برنامه را بازنشانی کنید، و همه تایمرها را متوقف کنید.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

ارسال یک پیام مشترک::Null.

جزئیات
ارزش های بازگشتی
WEAVE_ERROR_NO_MEMORY
اگر PacketBuffer های موجود نیست.
WEAVE_NO_ERROR
اگر روش موفق بود یا خطا مهم نبود.
other
یک خطای حیاتی دیگر که توسط SendMessage() برگردانده شده است.

پیام فرستادن

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

در این صرافی یک پیام Weave ارسال کنید.

جزئیات
مولفه های
[in] profileId
شناسه نمایه پیام Weave برای ارسال.
[in] msgType
نوع پیام نمایه مربوطه.
[in] msgBuf
یک اشاره گر به شی PacketBuffer که پیام Weave را نگه می دارد.
[in] sendFlags
پرچم هایی که توسط برنامه برای پیام Weave ارسال می شود تنظیم شده است.
[in] msgCtxt
یک اشاره گر به یک شی زمینه خاص برنامه که با پیام ارسال شده مرتبط شود.
ارزش های بازگشتی
WEAVE_ERROR_INVALID_ARGUMENT
اگر یک آرگومان نامعتبر به این SendMessage API ارسال شود.
WEAVE_ERROR_SEND_THROTTLED
اگر این زمینه تبادل هنگام استفاده از پروتکل پیام رسانی قابل اعتماد Weave از بین رفته باشد.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
در صورت عدم تطابق در عملیات ارسال خاص و نسخه پروتکل پیام Weave که پشتیبانی می شود. به عنوان مثال، اگر زمانی که نسخه پروتکل پیام Weave V1 است، معنایی پیام‌رسانی قابل اعتماد Weave در حال انجام باشد، این خطا ایجاد می‌شود.
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 برای ارسال.
[in] msgType
نوع پیام نمایه مربوطه.
[in] msgBuf
یک اشاره گر به شی PacketBuffer که پیام Weave را نگه می دارد.
[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 که پشتیبانی می شود. به عنوان مثال، اگر زمانی که نسخه پروتکل پیام Weave V1 است، معنایی پیام‌رسانی قابل اعتماد Weave در حال انجام باشد، این خطا ایجاد می‌شود.
WEAVE_ERROR_NOT_CONNECTED
اگر زمینه با اتصالی مرتبط باشد که اکنون بسته شده است.
WEAVE_ERROR_INCORRECT_STATE
اگر وضعیت زمینه مبادله نادرست باشد.
WEAVE_NO_ERROR
اگر لایه Weave با موفقیت پیام را به لایه شبکه ارسال کرد.

SetAckPending

void SetAckPending(
  bool inAckPending
)

تنظیم کنید که آیا تأیید نیاز است برای همتا در این تبادل ارسال شود.

جزئیات
مولفه های
[in] inAckPending
یک Boolean نشان می دهد که آیا (درست) یا نه (نادرست) یک تصدیق باید در پاسخ به یک پیام دریافتی بازگردانده شود.

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

تنظیم کنید که آیا کلید رمزگذاری مرتبط با صرافی باید هنگام آزاد شدن صرافی آزاد شود یا خیر.

جزئیات
مولفه های
[in] autoReleaseKey
درست است اگر کلید رمزگذاری پیام به طور خودکار آزاد شود.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

تنظیم کنید که آیا هر زمان که پیامی ارسال می شود، تأییدیه درخواست شود یا خیر.

جزئیات
مولفه های
[in] autoReqAck
یک Boolean نشان می دهد که آیا هر زمان که یک پیام ارسال می شود باید یک تأیید درخواست شود یا خیر.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

بیت پرچم kFlagConnectionClosed را تنظیم کنید.

این پرچم زمانی تنظیم می شود که یک WeaveConnection مرتبط با یک ExchangeContext بسته شود.

جزئیات
مولفه های
[in] inConnectionClosed
یک بولی که نشان می دهد (درست) یا نه (نادرست) زمینه با یک ارتباط مرتبط است.

SetDropAck

void SetDropAck(
  bool inDropAck
)

تنظیم کنید که آیا WeaveExchangeManager نباید برای این زمینه قدردانی ارسال کند یا خیر.

برای داخلی، فقط از اشکال زدایی استفاده کنید.

جزئیات
مولفه های
[in] inDropAck
یک بولی که نشان می‌دهد (درست) یا نه (نادرست) تأییدیه‌ها نباید برای تبادل ارسال شوند.

SetInitiator

void SetInitiator(
  bool inInitiator
)

بیت پرچم kFlagInitiator را تنظیم کنید.

این پرچم توسط گره ای تنظیم می شود که مبادله را آغاز می کند.

جزئیات
مولفه های
[in] inInitiator
یک بولی که نشان می دهد (درست) یا نه (نادرست) زمینه آغازگر مبادله است.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

تنظیم کنید که آیا پیامی از طرف همتا در این تبادل دریافت شده است.

جزئیات
مولفه های
[in] inMsgRcvdFromPeer
یک Boolean نشان می دهد که آیا (درست) یا نه (نادرست) یک پیام از طرف همتا در این زمینه تبادل دریافت شده است.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

تنظیم کنید که آیا در آخرین پیام دریافتی در این صرافی تأییدیه درخواست شده است.

جزئیات
مولفه های
[in] inPeerRequestedAck
یک بولی که نشان می‌دهد (درست) یا نه (نادرست) در آخرین پیام دریافتی یک تایید درخواست شده است.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

تنظیم کنید که آیا پاسخی در این تبادل انتظار می رود یا خیر.

جزئیات
مولفه های
[in] inResponseExpected
یک Boolean نشان می دهد که آیا (درست) یا نه (نادرست) پاسخی در این تبادل انتظار می رود.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

تنظیم کنید که آیا اتصال Weave مرتبط با صرافی باید با آزاد شدن صرافی آزاد شود یا خیر.

جزئیات
مولفه های
[in] autoReleaseCon
درست است اگر اتصال Weave به طور خودکار آزاد شود.

SetupTrickleRetransmit

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

با تنظیم فاصله ارسال مجدد متناظر و آستانه بازپخش، مکانیسم ارسال مجدد قطره ای را تنظیم کنید.

جزئیات
مولفه های
[in] retransInterval
فاصله ارسال مجدد الگوریتم پخش مجدد Trickle.
[in] threshold
حداکثر تعداد دفعاتی که یک پیام بازپخش می شود.
[in] timeout
حداکثر زمان انتظار قبل از لغو تایمر ارسال مجدد Trickle.
برمی گرداند
اگر راه‌اندازی Trickle موفقیت‌آمیز بود، WEAVE_NO_ERROR ، در غیر این صورت یک INET_ERROR به یک WEAVE_ERROR تبدیل می‌شود.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

برگردانید که آیا اتصال Weave مرتبط با صرافی باید با آزاد شدن صرافی آزاد شود یا خیر.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

تعیین کنید که آیا WeaveExchangeManager نباید تاییدیه ارسال کند یا خیر.

برای داخلی، فقط از اشکال زدایی استفاده کنید.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

مکانیسم تایمر ارسال مجدد دوره ای الگوریتم پخش مجدد Trickle را شروع کنید.

جزئیات
برمی گرداند
WEAVE_NO_ERROR در صورت موفقیت آمیز بودن، در غیر این صورت یک INET_ERROR به یک WEAVE_ERROR نگاشت می شود.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

مکانیسم ارسال مجدد Trickle را با لغو تایمرهای دوره ای در Trickle و آزاد کردن بافر پیام که پیام Weave را نگه می دارد، از بین ببرید.

ازEphemeralUDPPort استفاده کنید

bool UseEphemeralUDPPort(
  void
) const 

برگردانید که آیا پیام های خروجی ارسال شده از طریق صرافی باید از درگاه UDP زودگذر محلی ارسال شوند یا خیر.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSend DelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

یک پیام تحویل تأخیر ارسال کنید تا به یک گره فرستنده اطلاع دهید که پیام ارسال شده قبلی قبل از تحویل به گیرنده با تأخیر مورد انتظار مواجه خواهد شد.

یکی از دلایل احتمالی تاخیر پیام ها قبل از تحویل، زمانی است که گره انتهایی گیرنده خواب آلود است. این پیام به طور بالقوه توسط یک گره میانی مناسب در مسیر ارسال تولید می شود که اطلاعات کافی از گیرنده برای استنباط در مورد تحویل تاخیری دارد. به محض دریافت این پیام، فرستنده تایمرهای ارسال مجدد خود را برای پیام هایی که به دنبال تایید هستند، دوباره تنظیم می کند.

جزئیات
مولفه های
[in] pauseTimeMillis
زمانی (بر حسب میلی ثانیه) که انتظار می رود پیام قبلی ارسال شده قبل از تحویل به تاخیر بیفتد.
[in] delayedNodeId
شناسه گره گره همتا که تحویل پیام به آن تأخیر می‌افتد.
ارزش های بازگشتی
WEAVE_ERROR_INVALID_ARGUMENT
اگر یک آرگومان نامعتبر به این SendMessage API ارسال شود.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
در صورت عدم تطابق در عملیات ارسال خاص و نسخه پروتکل پیام Weave که پشتیبانی می شود. به عنوان مثال، اگر زمانی که نسخه پروتکل پیام Weave V1 است، معنایی پیام‌رسانی قابل اعتماد Weave در حال انجام باشد، این خطا ایجاد می‌شود.
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 در حال انجام باشد، این خطا ایجاد می‌شود.
WEAVE_ERROR_NOT_CONNECTED
اگر زمینه با اتصالی مرتبط بود که اکنون بسته شده است.
WEAVE_ERROR_INCORRECT_STATE
اگر وضعیت زمینه مبادله نادرست باشد.
WEAVE_NO_ERROR
اگر لایه Weave با موفقیت پیام را به لایه شبکه ارسال کرد.