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.
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
[قراءة فقط] اتصال Weave المرتبط.
EncryptionType
uint8_t
نوع التشفير الذي سيتم استخدامه عند إرسال رسالة
ExchangeId
uint16_t
[للقراءة فقط] رقم تعريف التبادل المعيّن.
ExchangeMgr
[القراءة فقط] امتلاك مدير الصرف.
KeyId
uint16_t
مفتاح تشفير لاستخدامه عند إرسال رسالة
OnAckRcvd
معاودة الاتصال بالطلب للإقرار المُستلَم.
OnConnectionClosed
OnDDRcvd
معاودة الاتصال بالطلب لرسالة "التسليم المتأخر" التي تم استلامها.
OnKeyError
هذه الدالة هي استدعاء التطبيق الذي سيتم استدعاءه عند تلقي رسالة خطأ أساسية من النظير.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
معاودة الاتصال بالتطبيق لحدوث خطأ أثناء الإرسال.
OnThrottleRcvd
معاودة الاتصال بالتطبيق لرسالة Throttle التي تم استلامها.
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)
أرسل رسالة تدفق التقييد إلى عقدة النظير تطلب منها تقييد إرسال الرسائل.

الأنواع العلنية

@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

[قراءة فقط] اتصال 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

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

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 على الفور وإزالة جميع الإشارات إليه.

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" في حال طلب الإقرار، وفي الحالات الأخرى "false".

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

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

التفاصيل
المرتجعات
عرض "صحيح" في حال استلام الرسالة، وعرض "خطأ" آخر.

IsAckPending

bool IsAckPending(
  void
) const 

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

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

حدد ما إذا كان ExchangeContext له ارتباط WeaveConnection نشط.

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

IsInitiator

bool IsInitiator(
  void
) const 

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

التفاصيل
المرتجعات
عرض "صحيح" إذا كان هو المُنشئ، وبخلاف ذلك عرض "خطأ".

IsResponseExpected

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().

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

SetAckPending

void SetAckPending(
  bool inAckPending
)

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

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

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

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

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

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

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

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

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

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

يتم ضبط هذه العلامة عندما يتم إغلاق WeaveConnection المرتبط بـ ExchangeContext.

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

SetDropAck

void SetDropAck(
  bool inDropAck
)

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

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

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

SetInitiator

void SetInitiator(
  bool inInitiator
)

اضبط وحدة بت علامة kFlagInitiator.

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

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

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