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) تعريف الكتابة
void(*
هذه الدالة هي استدعاء التطبيق لاستدعاء عند إغلاق اتصال Weave الحالي.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) تعريف الكتابة
void(*
نوع وظيفة معالجة رسالة الخطأ الرئيسية.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) تعريف الكتابة
void(*
هذه الدالة هي استدعاء التطبيق للتعامل مع رسالة Weave المستلمة.
ResponseTimeoutFunct)(ExchangeContext *ec) تعريف الكتابة
void(*
هذه الوظيفة هي استدعاء التطبيق لاستدعاء عند انتهاء مهلة استلام رسالة الرد.
RetransmissionTimeoutFunct)(ExchangeContext *ec) تعريف الكتابة
void(*
هذه الدالة هي معاودة اتصال التطبيق لاستدعاء عند انتهاء مهلة إعادة إرسال رسالة تم إرسالها سابقًا.
Timeout تعريف الكتابة
uint32_t
النوع المستخدم للتعبير عن المهلة في ExchangeContext هذا بالمللي ثانية.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) تعريف الكتابة
void(*
هذه الوظيفة هي معاودة اتصال التطبيق لاستدعاء عند تلقي إقرار لرسالة Weave التي طلبت واحدًا كجزء من بروتوكول المراسلة الموثوقة.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) تعريف الكتابة
void(*
هذه الوظيفة هي معاودة اتصال التطبيق لاستدعاء عند تلقي رسالة تقييد أو رسالة التسليم المتأخر كجزء من بروتوكول المراسلة الموثوقة.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) تعريف الكتابة
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
[READ ONLY] عنوان IP لعقدة مشابهة
PeerIntf
InterfaceId
[للقراءة فقط] الواجهة الصادرة التي سيتم استخدامها عند إرسال رسائل إلى التطبيقات المشابهة
PeerNodeId
uint64_t
[READ ONLY] معرّف العقدة لعقدة مشابهة
PeerPort
uint16_t
[READ ONLY] منفذ من عقدة تطبيقات مشابهة
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)
يمكنك إرسال رسالة "تدفق الخانة" إلى العقدة المشابهة لطلب تقييد إرسال الرسائل منها.

الأنواع العامة

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 التي طلبت واحدًا كجزء من بروتوكول المراسلة الموثوقة.

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

WRMPPauseRcvdFunct

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

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

تصاحب كل رسالة من هذه الرسائل قيمة زمنية (بالملي ثانية) تشير إلى الوقت اللازم لإيقاف إرسال رسائل 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

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

EncryptionType

uint8_t EncryptionType

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

ExchangeId

uint16_t ExchangeId

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

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

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

KeyId

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

[READ ONLY] عنوان IP لعقدة مشابهة

PeerIntf

InterfaceId PeerIntf

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

(معنى فقط لبروتوكول UDP).

PeerNodeId

uint64_t PeerNodeId

[READ ONLY] معرّف العقدة لعقدة مشابهة

PeerPort

uint16_t PeerPort

[READ ONLY] منفذ من عقدة تطبيقات مشابهة

ResponseTimeout

Timeout ResponseTimeout

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

RetransInterval

uint32_t RetransInterval

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

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

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

mWRMPConfig

WRMPConfig mWRMPConfig

إعداد WRMP.

وظائف عامة

إلغاء

void Abort(
  void
)

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

AddRef

void AddRef(
  void
)

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

AutoRequestAck

bool AutoRequestAck() const 

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

CancelRetrans

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 

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

التفاصيل
المرتجعات
عرض القيمة "true" في حال طلب الإقرار، وبخلاف ذلك، يتم اختيار "خطأ".

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

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

التفاصيل
المرتجعات
عرض القيمة "true" في حالة تلقي الرسالة، else "false".

IsAckPending

bool IsAckPending(
  void
) const 

تحديد ما إذا كان هناك إقرار في انتظار إرساله إلى أحد التطبيقات المشابهة في عملية التبادل هذه

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

حدِّد ما إذا كان ExchangeContext يتضمّن WeaveConnection نشِطًا.

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

IsInitiator

bool IsInitiator(
  void
) const 

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

التفاصيل
المرتجعات
عرض القيمة "true" إذا كان هذا هو المُبدئ، else 'false'.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

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

التفاصيل
المرتجعات
عرض القيمة "true" إذا كان من المتوقع أن تكون الاستجابة، else "false".

الإصدار

void Release(
  void
)

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

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

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

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

التفاصيل
قيم الإرجاع
WEAVE_ERROR_NO_MEMORY
في حال عدم توفّر PacketBuffers.
WEAVE_NO_ERROR
ما إذا نجحت الطريقة أو لم يكن الخطأ فادحًا.
other
حدث خطأ فادح آخر عرَض بواسطة SendMessage().

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

SendMessage

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

SetAckPending

void SetAckPending(
  bool inAckPending
)

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

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

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

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

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

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

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

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

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
قيمة منطقية تشير إلى ما إذا كان قد تم تلقّي رسالة (خطأ) أم لا (خطأ) في سياق التبادل هذا.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

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

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

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

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

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

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.
المرتجعات
WEAVE_NO_ERROR إذا تم إعداد Trickle بنجاح، وبخلاف ذلك، تم ربط 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.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

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

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

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