nl::Weave::ExchangeContext

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

تمثّل هذه الفئة محادثة جارية (ExchangeContext) بين عقدتين أو أكثر.

الملخّص

وتحدّد هذه الآلية طرق ترميز ونشر رسائل Weave داخل ExchangeContext على آليات نقل مختلفة، مثل بروتوكول TCP أو UDP أو المراسلة الموثوقة من Weave.

الأنواع المتاحة للجميع

@34{
  kSendFlag_AutoRetrans = 0x0001,
  kSendFlag_ExpectResponse = 0x0002,
  kSendFlag_RetransmissionTrickle = 0x0004,
  kSendFlag_DelaySend = 0x0008,
  kSendFlag_ReuseMessageId = 0x0010,
  kSendFlag_ReuseSourceId = 0x0020,
  kSendFlag_RetainBuffer = 0x0040,
  kSendFlag_AlreadyEncoded = 0x0080,
  kSendFlag_DefaultMulticastSourceAddress = 0x0100,
  kSendFlag_FromInitiator = 0x0200,
  kSendFlag_RequestAck = 0x0400,
  kSendFlag_NoAutoRequestAck = 0x0800,
  kSendFlag_MulticastFromLinkLocal = kSendFlag_DefaultMulticastSourceAddress
}
تعداد
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
تعداد
ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
هذه الوظيفة هي استدعاء التطبيق لاستدعاءه عند إغلاق اتصال Weave الحالي.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
نوع دالة معالجة رسالة الخطأ الرئيسية.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
هذه الدالة هي استدعاء التطبيق لمعالجة رسالة Weave المستلمة.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
هذه الدالة هي استدعاء التطبيق لاستدعاءه عند انتهاء مهلة تلقي رسالة الرد.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
هذه الدالة هي استدعاء التطبيق لاستدعاءه عند انتهاء مهلة إعادة إرسال رسالة تم إرسالها سابقًا.
Timeout typedef
uint32_t
النوع المستخدم للتعبير عن المهلة في ExchangeContext، بالمللي ثانية.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
هذه الوظيفة هي استدعاء التطبيق لاستدعاءه عندما يتم استلام إقرار لرسالة Weave التي طلبت رسالة كجزء من بروتوكول Weave Trusted Messaging.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
هذه الوظيفة هي استدعاء التطبيق لاستدعاءه عند تلقي رسالة تقييد تدفق البيانات أو رسالة تأخير التسليم كجزء من بروتوكول Weave Trusted Messaging.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
هذه الدالة هي استدعاء التطبيق لاستدعاءه عند حدوث خطأ أثناء إرسال رسالة Weave.

السمات العامة

AllowDuplicateMsgs
bool
مؤشر منطقي لما إذا كان يُسمح بالرسائل المكررة لتبادل معين
AppState
void *
أشِر إلى كائن الحالة الخاص بالتطبيق.
Con
[للقراءة فقط] اتصال Weave المرتبط
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
[للقراءة فقط] رقم تعريف العقدة لعقدة الزملاء.
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
التعامل مع الرسائل غير المرغوب فيها ضمن سياق Exchange
HasPeerRequestedAck(void) const
bool
حدِّد ما إذا كان الأقران قد طلب إقرارًا لرسالة واحدة على الأقل في عملية التبادل هذه.
HasRcvdMsgFromPeer(void) const
bool
حدد ما إذا تم تلقي رسالة واحدة على الأقل في هذا التبادل من الزملاء.
IsAckPending(void) const
bool
حدِّد ما إذا كان هناك إقرار حالي بالفعل للإرسال إلى الصديق بشأن عملية التبادل هذه.
IsConnectionClosed(void) const
bool
حدد ما إذا كان ExchangeContext يتضمن WaveConnection نشطًا ومرتبطًا.
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 rebroadcast لآلة إعادة الإرسال الدورية للموقِّت.
TeardownTrickleRetransmit(void)
void
يمكنك إيقاف آلية إعادة إرسال Trickle من خلال إلغاء الموقّتات الدورية في Trickle وإخلاء المخزن المؤقت للرسائل التي تحمل رسالة Weave.
UseEphemeralUDPPort(void) const
bool
يمكنك الرجوع إلى ما إذا كانت الرسائل الصادرة المرسلة من خلال التبادل يجب إرسالها من منفذ UDP المحلي المؤقت.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
يمكنك إرسال رسالة تأخير التسليم لإعلام عقدة المُرسِل بأن رسالتها المُرسَلة في السابق ستواجه تأخيرًا متوقعًا قبل تسليمها إلى المُستلِم.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
إرسال رسالة تدفق تدفق البيانات إلى عقدة الزملاء والتي تطلبها لضبط إرسال الرسائل.

الأنواع المتاحة للجميع

@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 الذي تم الإبلاغ عنه في رسالة الخطأ الرئيسية.

رسالة الاستلام

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 الذي يحمل حمولة الرسالة.

مهلة الاستجابة للمهلة

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

هذه الدالة هي استدعاء التطبيق لاستدعاءه عند انتهاء مهلة تلقي رسالة الرد.

التفاصيل
المعلَمات
[in] ec
مؤشر إلى العنصر ExchangeContext.

إعادة ضبط مهلة التمويل

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

هذه الدالة هي استدعاء التطبيق لاستدعاءه عند انتهاء مهلة إعادة إرسال رسالة تم إرسالها سابقًا.

التفاصيل
المعلَمات
[in] ec
مؤشر إلى العنصر ExchangeContext.

المهلة

uint32_t Timeout

النوع المستخدم للتعبير عن المهلة في ExchangeContext، بالمللي ثانية.

تذكرة WRMPAckRcvdFunct

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

هذه الوظيفة هي استدعاء التطبيق لاستدعاءه عندما يتم استلام إقرار لرسالة Weave التي طلبت رسالة كجزء من بروتوكول Weave Trusted Messaging.

التفاصيل
المعلَمات
[in] ec
مؤشر إلى العنصر ExchangeContext.
[in] msgCtxt
مؤشر إلى بعض عناصر السياق المرتبطة بالرسالة الأصلية التي يتم الإقرار بها.

WRMPولادئه

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

هذه الوظيفة هي استدعاء التطبيق لاستدعاءه عند تلقي رسالة تقييد تدفق البيانات أو رسالة تأخير التسليم كجزء من بروتوكول Weave Trusted Messaging.

ترتبط كل رسالة من هذه الرسائل بقيمة وقت (بالمللي ثانية) تشير إلى الوقت لإيقاف إرسال رسائل 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
مؤشر إلى بعض عناصر السياق المرتبطة بالرسالة الأصلية التي يتم الإبلاغ عنها.

السمات العامة

السماح بتكرار Msgs

bool AllowDuplicateMsgs

مؤشر منطقي لما إذا كان يُسمح بالرسائل المكررة لتبادل معين

حالة التطبيق

void * AppState

أشِر إلى كائن الحالة الخاص بالتطبيق.

العيوب

WeaveConnection * Con

[للقراءة فقط] اتصال Weave المرتبط

نوع التشفير

uint8_t EncryptionType

نوع التشفير المستخدم عند إرسال رسالة.

رقم تعريف Exchange

uint16_t ExchangeId

[للقراءة فقط] تم تخصيص رقم تعريف التبادل.

إدارة Exchange

WeaveExchangeManager * ExchangeMgr

[للقراءة فقط] امتلاك مدير للتبادل

رقم تعريف المفتاح

uint16_t KeyId

مفتاح التشفير لاستخدامه عند إرسال رسالة.

تذكرة OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

معاودة الاتصال بالطلب للإقرار الذي تم استلامه.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

معاودة الاتصال بالتطبيق لرسالة الرسالة المتأخرة.

خطأ في مفتاح

KeyErrorFunct OnKeyError

هذه الدالة هي استدعاء التطبيق لاستدعاءه عند تلقّي رسالة خطأ رئيسية من النظير.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

مهلة الاستجابة

ResponseTimeoutFunct OnResponseTimeout

مهلة إعادة التوجيه

RetransmissionTimeoutFunct OnRetransmissionTimeout

خطأ في الإرسال

WRMPSendErrorFunct OnSendError

معاودة الاتصال بالتطبيق بحثًا عن خطأ أثناء الإرسال.

تذكرة OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

معاودة الاتصال بالتطبيق لرسالة التحكُّم المُستلَمة.

قناة PeerAddr

IPAddress PeerAddr

[للقراءة فقط] عنوان IP لعقدة الزملاء،

PeerIntf

InterfaceId PeerIntf

[للقراءة فقط] واجهة البريد الصادر لاستخدامها عند إرسال الرسائل إلى النظير.

(معنى لـ UDP فقط.)

رقم تعريف PeerNode

uint64_t PeerNodeId

[للقراءة فقط] رقم تعريف العقدة لعقدة الزملاء.

منفذ PeerPort

uint16_t PeerPort

[للقراءة فقط] منفذ عقدة التطبيقات المشابهة.

مهلة الاستجابة

Timeout ResponseTimeout

الحد الأقصى لوقت انتظار الاستجابة (بالمللي ثانية)، 0 لإيقاف مهلة الاستجابة.

الفاصل الزمني

uint32_t RetransInterval

الوقت بين عمليات إعادة الإرسال (بالمللي ثانية)، 0 لإيقاف عمليات إعادة الإرسال.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

إصدار بروتوكول الرسائل في ExchangeContext.

إعداد mWRMP

WRMPConfig mWRMPConfig

إعداد WRMP

وظائف عامة

إلغاء

void Abort(
  void
)

إلغاء سياق Exchange فورًا وتحرير جميع المراجع إليه

إضافة مرجع

void AddRef(
  void
)

زيادة العداد المرجعي لسياق التبادل الواحد

AutoRequestAck

bool AutoRequestAck() const 

يعرض ما إذا كان سيتم طلب إقرار كلما تم إرسال رسالة.

إلغاء إعادة الإرسال

void CancelRetrans(
  void
)

إلغاء آلية إعادة إرسال Trickle.

إغلاق

void Close(
  void
)

إغلاق سياق تبادل بشكلٍ أنيق

يقلل هذا الطلب من عدد المراجع ويوقف التبادل عندما ينخفض عدد المراجع.

ترميز EnchExchHeader

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
إذا كان المخزن المؤقت للرسائل لا يتضمن مساحة كافية لترميز عنوان Exchange.
WEAVE_NO_ERROR
إذا تم تشفير الرسالة بنجاح،

الحصول على المفتاح التلقائي

bool GetAutoReleaseKey() const 

عليك الرجوع إلى ما إذا كان يجب إلغاء قفل مفتاح التشفير المرتبط بعملية التبادل أم لا.

GetCurrentRetransfermitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

الحصول على مهلة إعادة الإرسال الحالية.

وستكون هذه هي المهلة الأولية أو النشطة لإعادة الإرسال بناءً على ما إذا كان ExchangeContext يتضمن تبادل رسائل نشطًا مع نظيره.

التفاصيل
المرتجعات
في وقت إعادة الإرسال الحالي.

وصف GetPeer

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

تنشئ سلسلة تصف عقدة الزملاء وعنوانها / معلومات الاتصال المرتبطة بها.

التفاصيل
المعلَمات
[in] buf
مؤشر إلى المخزن المؤقت الذي يجب كتابة السلسلة فيه. يجب أن يكون المخزن المؤقت الذي تم توفيره بحجم kGetPeerDescription_MaxLength على الأقل. إذا تم تخصيص مخزن مؤقت أصغر، سيتم اقتطاع السلسلة لتناسبها. ستتضمّن المخرجات حرف إنهاء لغة NUL في جميع الحالات.
[in] bufSize
حجم المخزن المؤقت المُشار إليه بالمؤشر.

HandleTrickleMessage

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

التعامل مع الرسائل غير المرغوب فيها ضمن سياق Exchange

التفاصيل
المعلَمات
[in] pktInfo
مؤشر إلى عنصر IPPacketInfo.
[in] msgInfo
مؤشر إلى بنية معلومات رسالة Weave.

HasPeerRequestAck

bool HasPeerRequestedAck(
  void
) const 

حدِّد ما إذا كان الأقران قد طلب إقرارًا لرسالة واحدة على الأقل في عملية التبادل هذه.

التفاصيل
المرتجعات
عرض 'true' إذا كان الإقرار مطلوبًا، أو 'false'.

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

حدد ما إذا تم تلقي رسالة واحدة على الأقل في هذا التبادل من الزملاء.

التفاصيل
المرتجعات
عرض 'true' إذا تم استلام الرسالة, آخر 'false'

في انتظار المراجعة

bool IsAckPending(
  void
) const 

حدِّد ما إذا كان هناك إقرار حالي بالفعل للإرسال إلى الصديق بشأن عملية التبادل هذه.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

حدد ما إذا كان ExchangeContext يتضمن WaveConnection نشطًا ومرتبطًا.

التفاصيل
المرتجعات
إرجاع 'true' إذا كان الاتصال مغلقًا، أو 'false'.

المُنشئ

bool IsInitiator(
  void
) const 

تحديد ما إذا كان السياق هو البادئ أم لا.

التفاصيل
المرتجعات
عرض 'true' إذا كان المُنشئ، بخلاف ذلك##39;false'.

لغة الاستجابة المتوقعة

bool IsResponseExpected(
  void
) const 

يمكنك تحديد ما إذا كان من المتوقع أن يتم الرد على الرسائل المُرسلة من خلال هذا التبادل أم لا.

التفاصيل
المرتجعات
عرض 'true' إذا كان الرد متوقّعًا، أو 'false'.

عند إصدار العمل الفنّي

void Release(
  void
)

مرجع الإصدار المرتبط بسياق التبادل هذا

إذا كان العدد منخفضًا بالنسبة إلى واحد، يمكنك إغلاق السياق وإعادة ضبط جميع استدعاءات التطبيق وإيقاف جميع الموقّتات.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

إرسال رسالة شائعة::null

التفاصيل
قيم الإرجاع
WEAVE_ERROR_NO_MEMORY
في حال عدم توفّر PacketBuffers.
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
WEAVE_ERROR_SEND_THROTTLED
في حال تم تقييد سياق التبادل هذا عند استخدام بروتوكول المراسلة الموثوق بها من Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
إذا كان هناك عدم تطابق في عملية الإرسال المحددة وإصدار بروتوكول Weave message المعتمد. على سبيل المثال، قد يظهر هذا الخطأ إذا تمت محاولة استخدام دلالات المراسلة الموثوق بها من Weave عندما يكون إصدار بروتوكول رسالة Weave هو الإصدار 1.
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
WEAVE_ERROR_SEND_THROTTLED
في حال تم تقييد سياق التبادل هذا عند استخدام بروتوكول المراسلة الموثوق بها من Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
إذا كان هناك عدم تطابق في عملية الإرسال المحددة وإصدار بروتوكول Weave message المعتمد. على سبيل المثال، قد يظهر هذا الخطأ إذا تمت محاولة استخدام دلالات المراسلة الموثوق بها من Weave عندما يكون إصدار بروتوكول رسالة Weave هو الإصدار 1.
WEAVE_ERROR_NOT_CONNECTED
إذا كان السياق مرتبطًا برابط تم إغلاقه.
WEAVE_ERROR_INCORRECT_STATE
إذا كانت حالة سياق التبادل غير صحيحة.
WEAVE_NO_ERROR
إذا كانت طبقة Weave ترسل الرسالة بنجاح إلى طبقة الشبكة.

إعدادات معلّقة

void SetAckPending(
  bool inAckPending
)

يمكنك تحديد ما إذا كان يجب إرسال الإقرار إلى الزملاء في هذا التبادل.

التفاصيل
المعلَمات
[in] inAckPending
قيمة منطقية تشير إلى ما إذا كان سيتم إرسال إشعار (صحيح) أم لا (خطأ) ردًا على رسالة مُستلَمة

ضبط مفتاح الإصدار التلقائي

void SetAutoReleaseKey(
  bool autoReleaseKey
)

يمكنك تحديد ما إذا كان يجب تحرير مفتاح التشفير المرتبط بعملية التبادل أم لا.

التفاصيل
المعلَمات
[in] autoReleaseKey
صحيح إذا كان يجب فك تشفير مفتاح تشفير الرسالة تلقائيًا.

ضبط AutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

يمكنك تحديد ما إذا كان يجب طلب الإقرار عند إرسال الرسالة.

التفاصيل
المعلَمات
[in] autoReqAck
قيمة منطقية تشير إلى ما إذا كان يجب طلب إقرار أو إرساله في حال إرسال رسالة.

ضبط الاتصال المغلق

void SetConnectionClosed(
  bool inConnectionClosed
)

اضبط بت علامة kFlagConnectionClosed.

يتم ضبط هذه العلامة عند إغلاق WaveConnection مرتبط بسياق Exchange.

التفاصيل
المعلَمات
[in] inConnectionClosed
قيمة منطقية تشير إلى ما إذا كان السياق (صحيح) أو (خطأ) مرتبطًا بالارتباط

تذكرة SetDropAck

void SetDropAck(
  bool inDropAck
)

يمكنك تحديد ما إذا كان يجب على WeaveExchangeManager عدم إرسال إقرارات لهذا السياق.

للاستخدام الداخلي، يمكن استخدام تصحيح الأخطاء فقط.

التفاصيل
المعلَمات
[in] inDropAck
قيمة منطقية تشير إلى ما إذا كان الإقرار (صحيح) أم لا (خطأ) عدم إرسال الإقرارات مقابل التبادل

بادئ التشغيل

void SetInitiator(
  bool inInitiator
)

اضبط وحدة الإبلاغ عن kFlagInitiator.

يتم ضبط هذه العلامة من خلال العقدة التي تبدأ عملية التبادل.

التفاصيل
المعلَمات
[in] inInitiator
قيمة منطقية تشير إلى ما إذا كان السياق (صحيح) أم لا (خطأ) هو بادئ عملية التبادل.

ضبط MSgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

حدد ما إذا تم تلقي رسالة من التبادل في عملية التبادل هذه.

التفاصيل
المعلَمات
[in] inMsgRcvdFromPeer
قيمة منطقية تشير إلى ما إذا كانت الرسالة (صحيحة) (خطأ) أم لا (خطأ) قد تم استلامها من النظراء في سياق التبادل هذا

SetPeerRequestAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

يمكنك تحديد ما إذا تم طلب إقرار في آخر رسالة تم تلقّيها في عملية التبادل هذه.

التفاصيل
المعلَمات
[in] inPeerRequestedAck
قيمة منطقية تشير إلى ما إذا كان قد تم طلب إقرار أو عدم استلام (خطأ) في آخر رسالة مُستلَمة

تحديد واجهة الاستجابة المتوقعة

void SetResponseExpected(
  bool inResponseExpected
)

يمكنك تحديد ما إذا كان من المتوقع الرد على هذا التبادل.

التفاصيل
المعلَمات
[in] inResponseExpected
قيمة منطقية تشير إلى ما إذا كان من المتوقع أن تكون الاستجابة (صحيحة) أو (خطأ) متوقعة في هذا التبادل.

SetShuldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

حدد ما إذا كان يجب إلغاء ربط Weave المرتبط بعملية التبادل أم لا.

التفاصيل
المعلَمات
[in] autoReleaseCon
صحيح إذا كان من المفترض أن يتم تحرير اتصال Weave تلقائيًا.

إعداد الخداع

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

يمكنك إعداد آلية إعادة الإرسال المتنقّلة عن طريق ضبط الفاصل الزمني لإعادة الإرسال وإعادة الإرسال والحد الأدنى لإعادة البث.

التفاصيل
المعلَمات
[in] retransInterval
الفاصل الزمني لإعادة الإرسال لخوارزمية إعادة بث Trickle.
[in] threshold
الحد الأقصى لعدد مرات إعادة بث الرسالة.
[in] timeout
الحد الأقصى لوقت الانتظار قبل إلغاء موقّت إعادة إرسال Trickle.
المرتجعات
WEAVE_NO_ERROR إذا تم إعداد Trickle بنجاح، بخلاف ذلك، سيتم ربط INET_ERROR في WEAVE_ERROR.

يجب ربط الإصدار تلقائيًا

bool ShouldAutoReleaseConnection() const 

أرجع ما إذا كان يجب إلغاء ربط Weave المرتبط بالتبادل أم لا.

من المفترض أن يسقط من الأمام

bool ShouldDropAck(
  void
) const 

حدِّد ما إذا كان يجب على WeaveExchangeManager عدم إرسال إقرار.

للاستخدام الداخلي، يمكن استخدام تصحيح الأخطاء فقط.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

بدء تشغيل خوارزمية Trickle rebroadcast لآلة إعادة الإرسال الدورية للموقِّت.

التفاصيل
المرتجعات
WEAVE_NO_ERROR إذا نجح الإجراء، سيتم ربط INET_ERROR في WEAVE_ERROR.

TeardownTrickleRemitmit

void TeardownTrickleRetransmit(
  void
)

يمكنك إيقاف آلية إعادة إرسال Trickle من خلال إلغاء الموقّتات الدورية في Trickle وإخلاء المخزن المؤقت للرسائل التي تحمل رسالة Weave.

استخدام EphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

يمكنك الرجوع إلى ما إذا كانت الرسائل الصادرة المرسلة من خلال التبادل يجب إرسالها من منفذ UDP المحلي المؤقت.

قناة WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendتأخيرedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

يمكنك إرسال رسالة تأخير التسليم لإعلام عقدة المُرسِل بأن رسالتها المُرسَلة في السابق ستواجه تأخيرًا متوقعًا قبل تسليمها إلى المُستلِم.

أحد الأسباب المحتملة لتأخير الرسائل قبل تسليمها هو عندما تكون عقدة نهاية المستلم غير نشطة. من المحتمل أن يتم إنشاء هذه الرسالة من عُقدة متوسطة مناسبة في مسار الإرسال تمتلك معلومات كافية عن المستلم لاستنتجها بشأن التسليم المتأخر. وعند تلقي هذه الرسالة، يعيد المُرسِل ضبط موقّتات إعادة الإرسال للرسائل التي تطلب إرجاع الإقرارات.

التفاصيل
المعلَمات
[in] pauseTimeMillis
الوقت (بالمللي ثانية) الذي من المتوقع أن يتأخر فيه تسليم الرسالة المرسلة سابقًا قبل تسليمها.
[in] delayedNodeId
معرّف العُقدة لعقدة الزملاء التي سيتأخر تسليم الرسالة إليها.
قيم الإرجاع
WEAVE_ERROR_INVALID_ARGUMENT
في حال تمرير وسيطة غير صالحة إلى واجهة برمجة تطبيقات SendMessage
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
إذا كان هناك عدم تطابق في عملية الإرسال المحددة وإصدار بروتوكول Weave message المعتمد. على سبيل المثال، قد يظهر هذا الخطأ إذا تمت محاولة استخدام دلالات المراسلة الموثوق بها من Weave عندما يكون إصدار بروتوكول رسالة Weave هو الإصدار 1.
WEAVE_ERROR_NOT_CONNECTED
إذا كان السياق مرتبطًا برابط تم إغلاقه.
WEAVE_ERROR_INCORRECT_STATE
إذا كانت حالة سياق التبادل غير صحيحة.
WEAVE_NO_ERROR
إذا كانت طبقة Weave ترسل الرسالة بنجاح إلى طبقة الشبكة.

قناة WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

إرسال رسالة تدفق تدفق البيانات إلى عقدة الزملاء والتي تطلبها لضبط إرسال الرسائل.

التفاصيل
المعلَمات
[in] pauseTimeMillis
الوقت (بالمللي ثانية) الذي من المتوقع أن يتحكم فيه المستلم في الإرسال.
قيم الإرجاع
WEAVE_ERROR_INVALID_ARGUMENT
إذا تم تمرير وسيطة غير صالحة إلى واجهة برمجة تطبيقات SendMessage.
WEAVE_ERROR_SEND_THROTTLED
إذا تم تقييد سياق التبادل هذا عند استخدام بروتوكول المراسلة الموثوق بها من Weave
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
في حال عدم تطابق عملية الإرسال المحدّدة وإصدار بروتوكول Weave message المتوافق على سبيل المثال، قد يظهر هذا الخطأ إذا تمت محاولة استخدام دلالات المراسلة الموثوق بها من Weave عندما يكون إصدار بروتوكول رسالة Weave هو الإصدار 1.
WEAVE_ERROR_NOT_CONNECTED
إذا كان السياق مرتبطًا باتصال مغلق الآن.
WEAVE_ERROR_INCORRECT_STATE
إذا كانت حالة سياق التبادل غير صحيحة.
WEAVE_NO_ERROR
وإذا كانت طبقة Weave قد أرسلت الرسالة بنجاح إلى طبقة الشبكة.