nl::Weave::ربط

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

يشير إلى الهدف المقصود من اتصالات Weave ومعلومات الإعداد المرتبطة.

الملخّص

يحدد كائن الربط الهدف المقصود لاتصال Weave (المعروف أيضًا باسم "P&;&") بالإضافة إلى مجموعة من معلمات الإعداد التي تصف كيفية إجراء الاتصال مع نظيره. ترتبط عمليات الربط ببروتوكول التطبيق الذي يتم قوله بين الطرفين. وبالتالي، تلتقط العلامة "&&;;&&;;&;;ٍّ&ٍّ؛؛؛؛؛؛ أو؛ غير أنّها ليست في اقتباس؛؛؛؛؛ تمثل؛

الإعداد

يجب على التطبيقات ضبط ربط بمعلمات خاصة بنوع قناة الاتصال المطلوبة. توفّر عمليات الربط دعمًا لمجموعة من عمليات نقل الشبكة، بما في ذلك TCP وUDP وUDP مع مراسلة موثوقة من Weave وWaBLE (WoBLE). ويمكن للتطبيقات أيضًا طلب استخدام آليات أمان محددة لحماية الرسائل المُرسَلة بين الطرفين. ويشمل ذلك جلسات CASE وPASE ومفاتيح مجموعة التطبيقات. تستخدم الواجهة لإعداد الربط نمط واجهة برمجة تطبيقات تعريفية يسمح للتطبيقات بتوضيح متطلبات الاتصال بعبارات بسيطة.

للحصول على مزيد من التفاصيل، يمكنك الاطّلاع على مستندات ربط::الإعداد.

الإعداد

قبل بدء التواصل، يجب تحضير علامة إلزامية. يتضمّن عملية إعداد الربط إنشاء الحالة اللازمة للتواصل. وقد يتضمن ذلك إجراءات مثل: حل عنوان الشبكة لشبكة الند أو إنشاء اتصال بالشبكة أو التفاوض على مفاتيح الأمان. بعد تهيئة التطبيق، يتولى الربط جميع الخطوات اللازمة للاستعداد للاتصال، ومعاودة الاتصال بالتطبيق عند اكتمال العملية. وبهذه الطريقة، تخفي عمليات الربط آليات التواصل، ما يسمح للتطبيقات بالتركيز على التفاعلات عالية المستوى.

التواصل

بعد تحضير الربط، يصبح جاهزًا للاستخدام. في هذه الحالة، تطلب التطبيقات (أو بشكل أكثر شيوعًا، رمز طبقة البروتوكول الذي يعمل نيابةً عن تطبيق) الربط لتخصيص سياق تبادل Weave. ويتم ضبط سياق التبادل الناتج بشكل مسبق للتواصل، ما يتيح للتطبيق بدء تبادل Weave على الفور مع الأقران. يمكن للتطبيق الاستمرار في طلب سياقات التبادل من الربط إلى أن يتم إغلاق الربط أو إنهاء بعض الأحداث، مثل تعطّل الشبكة وإنهاء قناة الاتصال الأساسية.

ربط تغييرات الحالة

على مدار استخدامه، سيؤدي الربط إلى تسليم أحداث واجهة برمجة التطبيقات إلى التطبيق لإعلامه بالتغييرات التي تطرأ على حالة الربط's. على سبيل المثال، عند نجاح عملية الإعداد، سيتلقّى التطبيق حدثًا يُعلمك بأنّ الربط جاهز للاستخدام. وبالمثل، في حال تعذُّر قناة الاتصال الأساسية، يتم تسليم حدث إلى التطبيق لإعلامه بأن الربط لم يعد في حالة الاستعداد.

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

الربط منذ إنشاء التطبيق

يتم ربط الملفات المرجعية للسماح بالاستخدام المشترك على مستوى عدة مكونات برامج. عند تخصيص ربط، يتم إنشاء مرجع واحد إلى عملية الربط. ويعمل التطبيق على إصدار هذا المرجع في مرحلة ما في المستقبل بحيث يكون ربط المحتوى مجانيًا لإعادة استخدامه لاحقًا.

عند الانتهاء من تنفيذ أحد التطبيقات باستخدام ربط، قد يطلب التطبيق Close() في عملية الربط. ويؤدي ذلك إلى إصدار التطبيق كمرجع للربط وحظر جميع أحداث واجهة برمجة التطبيقات. وعند إصدار آخر إشارة إلى ربط، يتم إغلاقها تلقائيًا.

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

@23{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
تعداد
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) typedef
void(*
EventType{
  kEvent_ConnectionEstablished = 1,
  kEvent_BindingReady = 2,
  kEvent_PrepareFailed = 3,
  kEvent_BindingFailed = 4,
  kEvent_PrepareRequested = 5,
  kEvent_PASEParametersRequested = 6,
  kEvent_TAKEParametersRequested = 7,
  kEvent_DefaultCheck = 100
}
تعداد
State تعداد

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

AppState
void *

وظائف عامة

AddRef(void)
void
احتفِظ بمرجع لكائن الربط.
AdjustResponseTimeout(ExchangeContext *apExchangeContext) const
يمكنك إعادة ضبط سياق Exchange الحالي لضبط مهلة الاستجابة.
AllocateRightSizedBuffer(PacketBuffer *& buf, const uint32_t desiredSize, const uint32_t minSize, uint32_t & outMaxPayloadSize)
BeginConfiguration()
أن تكون عملية ضبط الربط.
CanBePrepared(void) const
bool
Close(void)
void
أغلِق العنصر المُلزِم واخرج من المرجع.
GetConnection() const
الحصول على كائن اتصال Weave المرتبط بالربط.
GetDefaultResponseTimeout() const
uint32_t
احصل على مهلة استجابة التبادل التلقائية لاستخدامها عند التواصل مع الأقران.
GetDefaultWRMPConfig(void) const
const WRMPConfig &
يمكنك الحصول على إعداد WRMP التلقائي لاستخدامه عند التواصل مع تطبيق مشابه.
GetEncryptionType(void) const
uint8_t
يمكنك استرداد نوع تشفير الرسائل المراد استخدامها عند تشفير الرسائل من/إلى الشبكة المشابهة.
GetEventCallback() const
EventCallback
احصل على الدالة التي سيتم طلبها عند وقوع حدث واجهة برمجة التطبيقات لربط.
GetExchangeManager() const
GetKeyId(void) const
uint32_t
يمكنك استرداد معرِّف مفتاح تشفير الرسالة المراد استخدامه عند تشفير الرسائل من/إلى الشبكة المشابهة.
GetLogId(void) const
uint16_t
احصل على معرّف فريد للربط.
GetMaxWeavePayloadSize(const System::PacketBuffer *msgBuf)
uint32_t
يمكنك الحصول على الحد الأقصى لحجم حمولة Weave الذي يمكن تركيبه داخل الحزمة العازلة المرفقة.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
تنشئ سلسلة تصف عقدة الزملاء وعنوانها / معلومات الاتصال المرتبطة بها.
GetPeerIPAddress(nl::Inet::IPAddress & address, uint16_t & port, InterfaceId & interfaceId) const
void
استرجاع معلومات عنوان IP للأقران، في حال توفرها
GetPeerNodeId(void) const
uint64_t
استرِد معرّف العقدة للنظر الملزِم.
GetProtocolLayerCallback(EventCallback & callback, void *& state) const
void
GetState(void) const
State
استرِد الحالة الحالية لعملية الربط.
IsAuthenticMessageFromPeer(const WeaveMessageInfo *msgInfo)
bool
يمكنك تحديد ما إذا كانت رسالة واردة معينة من نظيره الذي تم إعداده وتمت مصادقتها بشكل مناسب.
IsConnectionTransport() const
bool
IsPreparing(void) const
bool
IsReady(void) const
bool
IsUDPTransport() const
bool
IsUnreliableUDPTransport() const
bool
IsWRMTransport() const
bool
NewExchangeContext(ExchangeContext *& appExchangeContext)
تخصيص سياق Exchange جديد للتواصل مع نظيره الذي هو هدف الربط.
Release(void)
void
ارفَع مرجعًا إلى العنصر الملزِم.
RequestPrepare()
اطلب من التطبيق ضبط الربط وإعداده.
Reset(void)
void
يمكنك إعادة ضبط الربط إلى حالة لم يتم ضبطها.
SetDefaultResponseTimeout(uint32_t msec)
void
إعداد مهلة ردّ التبادل التلقائية التي سيتم استخدامها عند التواصل مع التطبيقات المشابهة
SetDefaultWRMPConfig(const WRMPConfig & wrmpConfig)
void
ضبط إعدادات WRMP التلقائية لاستخدامها عند التواصل مع التطبيقات المشابهة.
SetEventCallback(EventCallback aEventCallback)
void
اضبط الدالة التي حدّدها التطبيق ليتم استدعاؤها عند وقوع حدث واجهة برمجة التطبيقات لعملية ربط.
SetProtocolLayerCallback(EventCallback callback, void *state)
void
يمكنك تحديد دالة رد اتصال الحدث لرمز طبقة البروتوكول باستخدام ربط نيابةً عن التطبيق.

الدوال الثابتة العامة

DefaultEventHandler(void *apAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void
المعالج التلقائي لأحداث واجهة برمجة التطبيقات المُلزِمة

صفوف

nl:: Weave::الربط::الإعداد

توفّر واجهة نمطية لتعريف عنصر الربط وإعداده.

الهياكل

nl::Weave::ربط::InEventParam

إدخال المعلمات إلى حدث واجهة برمجة التطبيقات Binding.

nl::Weave::ربط::OutEventParam

مَعلمات الإخراج لحدث واجهة برمجة تطبيقات الربط.

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

@23

 @23
أماكن إقامة
kGetPeerDescription_MaxLength

الحد الأقصى لطول السلسلة (بما في ذلك حرف NUL) الذي يتم عرضه بواسطة GetPeerDescription().

معاودة الاتصال بالحدث

void(* EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)

نوع الحدث

 EventType
أماكن إقامة
kEvent_BindingFailed

تعذّر الربط ولم يعُد من الممكن استخدامه للتواصل مع التطبيقات المشابهة.

kEvent_BindingReady

نجح إجراء عملية التحضير في عملية الربط ويمكن الآن استخدام الربط للتواصل مع الزملاء.

kEvent_ConnectionEstablished

تم إنشاء اتصال Weave المطلوب.

kEvent_DefaultCheck

يُستخدم للتحقق من معالجة الحدث التلقائية بشكل صحيح في التطبيق.

kEvent_PASEParametersRequested

تتم مطالبة التطبيق بتوفير معلمات لاستخدامها أثناء إنشاء جلسة PASE.

kEvent_PrepareFailed

تعذّر إجراء تحضير الربط.

kEvent_PrepareRequested

يتم طلب التطبيق لإعداد الربط واستخدامه من خلال حِزم الشبكة.

kEvent_TAKEParametersRequested

يُطلب من التطبيق تقديم معلمات لاستخدامها أثناء إنشاء جلسة GET.

الولاية

 State

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

حالة التطبيق

void * AppState

وظائف عامة

إضافة مرجع

void AddRef(
  void
)

احتفِظ بمرجع لكائن الربط.

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

WEAVE_ERROR AdjustResponseTimeout(
  ExchangeContext *apExchangeContext
) const 

يمكنك إعادة ضبط سياق Exchange الحالي لضبط مهلة الاستجابة.

التفاصيل
المعلَمات
[in] apExchangeContext
مؤشر إلى عنصر "سياق Exchange" لتتم إعادة ضبطه

المخزن المؤقت المخصصة

WEAVE_ERROR AllocateRightSizedBuffer(
  PacketBuffer *& buf,
  const uint32_t desiredSize,
  const uint32_t minSize,
  uint32_t & outMaxPayloadSize
)

بدء الإعداد

Configuration BeginConfiguration()

أن تكون عملية ضبط الربط.

يجب على التطبيقات استدعاء StartConfiguration() لضبط الربط قبل تحضيره للتواصل مع النظير.

التفاصيل
المرتجعات
عنصر الربط::الإعداد يمكن استخدامه لضبط الربط.

كن مستعدًا

bool CanBePrepared(
  void
) const 

إغلاق

void Close(
  void
)

أغلِق العنصر المُلزِم واخرج من المرجع.

وتؤدي هذه الطريقة إلى إلزام الربط بإدخال حالة "مغلق". يتم إلغاء أي إجراءات تحضيرية قيد الربط الربط ويتم إصدار جميع موارد الاتصالات الخارجية التي تم تجميدها.

يؤدي استدعاء Close() إلى تقليل عدد المراجع المرتبطة بالربط، وتحرير الكائن إذا أصبح عدد المراجع صفرًا.

الحصول على اتصال

WeaveConnection * GetConnection() const 

الحصول على كائن اتصال Weave المرتبط بالربط.

التفاصيل
المرتجعات
مؤشر إلى عنصر WeaveConnection، أو فارغ في حال عدم وجود اتصال مرتبط بالربط.

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

uint32_t GetDefaultResponseTimeout() const 

احصل على مهلة استجابة التبادل التلقائية لاستخدامها عند التواصل مع الأقران.

التفاصيل
المرتجعات
مهلة الاستجابة بالمللي ثانية.

GetDefaultWRMPConfig

const WRMPConfig & GetDefaultWRMPConfig(
  void
) const 

يمكنك الحصول على إعداد WRMP التلقائي لاستخدامه عند التواصل مع تطبيق مشابه.

التفاصيل
المرتجعات
مرجع إلى بنية WRMPConfig تحتوي على قيم الإعداد التلقائية

GetEncryptionType

uint8_t GetEncryptionType(
  void
) const 

يمكنك استرداد نوع تشفير الرسائل المراد استخدامها عند تشفير الرسائل من/إلى الشبكة المشابهة.

GetEventCallback

EventCallback GetEventCallback() const 

احصل على الدالة التي سيتم طلبها عند وقوع حدث واجهة برمجة التطبيقات لربط.

التفاصيل
المرتجعات
مؤشر إلى دالة رد الاتصال.

الحصول على مدير Exchange

WeaveExchangeManager * GetExchangeManager() const 

GetKeyId

uint32_t GetKeyId(
  void
) const 

يمكنك استرداد معرِّف مفتاح تشفير الرسالة المراد استخدامه عند تشفير الرسائل من/إلى الشبكة المشابهة.

رقم تعريف GetLog

uint16_t GetLogId(
  void
) const 

احصل على معرّف فريد للربط.

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const System::PacketBuffer *msgBuf
)

يمكنك الحصول على الحد الأقصى لحجم حمولة Weave الذي يمكن تركيبه داخل الحزمة العازلة المرفقة.

بالنسبة إلى UDP، بما في ذلك UDP مع WRM، سيضمن الحد الأقصى لحجم الحمولة المعروض أن رسالة Weave الناتجة لن تتجاوز تدفق UDP MTU الذي تم إعداده.

وبالإضافة إلى ذلك، ستضمن هذه الطريقة أن حمولة Weave لن تتجاوز حزمة PacketBuffer التي تم توفيرها.

التفاصيل
المعلَمات
[in] msgBuf
مؤشر إلى PacketBuffer التي سيتم كتابة حمولة الرسالة إليها.
المرتجعات
الحد الأقصى لحجم حمولة Weave.

وصف GetPeer

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

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

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

الحصول على عنوان IP

void GetPeerIPAddress(
  nl::Inet::IPAddress & address,
  uint16_t & port,
  InterfaceId & interfaceId
) const 

استرجاع معلومات عنوان IP للأقران، في حال توفرها

يعتمد مدى توفّر معلومات عنوان IP لبعض التطبيقات المشابهة على حالة عملية الربط وإعدادها. لا تتوفر معلومات عنوان IP إلا عند استخدام النقل المستند إلى عنوان IP (TCP أو UDP أو UDP مع WRMP). قبل بدء التحضير، لا تتوفّر معلومات العنوان إلا إذا تم ضبطها صراحةً من خلال التطبيق أثناء الإعداد. أثناء مرحلة التحضير، تتوفر معلومات العنوان عند اكتمال إعداد العنوان (على سبيل المثال بعد اكتمال تحليل نظام أسماء النطاقات). بعد أن يصبح الربط جاهزًا، تظل معلومات العنوان متاحة إلى أن تتم إعادة ضبط الربط.

التفاصيل
المعلَمات
[out] address
مرجع إلى عنصر IPAddress يتلقى عنوان IP الخاص بـ "شبكة البحث المشابهة". إذا كانت معلومات عنوان IP الخاص بـ "الجميع" غير متاحة، فسيتم تعيين هذه القيمة على IPAddress::أي.
[out] port
مرجع إلى عدد صحيح يتلقّى رقم منفذ النظير. إذا كانت معلومات عنوان IP غير متاحة، لن تكون هذه القيمة محددة.
[out] interfaceId
مرجع إلى عدد صحيح يتلقّى رقم تعريف واجهة الشبكة التي يمكن الوصول من خلالها إلى نظير. إذا كانت معلومات عنوان IP غير متاحة، لن تكون هذه القيمة محددة.

GetPeerNodeId

uint64_t GetPeerNodeId(
  void
) const 

استرِد معرّف العقدة للنظر الملزِم.

لا يصبح صالحًا إلا بعد إعداد الكائن المُلزِم.

التفاصيل
المرتجعات
معرّف Weav لعقدة الند

GetProtocolLayerCallback

void GetProtocolLayerCallback(
  EventCallback & callback,
  void *& state
) const 

الحصول على الولاية

State GetState(
  void
) const 

استرِد الحالة الحالية لعملية الربط.

التفاصيل
المرتجعات
حالة الربط.

isAuthenticMessageFromPeer

bool IsAuthenticMessageFromPeer(
  const WeaveMessageInfo *msgInfo
)

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

تؤكد هذه الطريقة التفاصيل التالية حول الرسالة المحددة:

  • وردت الرسالة من عقدة نظير عملية الربط
  • تم استلام الرسالة عبر نوع النقل نفسه المُلزِم. إذا تم استلام الرسالة عبر اتصال، تؤكد الطريقة أيضًا أنه تم استلام الرسالة عبر الاتصال نفسه المرتبط بالربط.
  • يتطابق مفتاح التشفير ونوعه المستخدمة لتشفير الرسالة مع تلك التي تم ضبطها في الربط. بالنسبة إلى عمليات الربط التي تم ضبطها بدون استخدام الأمان، تؤكد الطريقة أن الرسالة الواردة ليست مشفّرة.

تهدف هذه الطريقة إلى استخدامها في بروتوكولات مثل WDM حيث يمكن للزملاء بدء التبادلات بشكل مفاجئ إلى العقدة المحلية بعد التبادل الأولي من العقدة إلى النظير. وفي مثل هذه الحالات، تسمح الطريقة للعقدة المحلية بتأكيد إرسال الرسالة غير المرغوب فيها الواردة من قبل الشخص المرتبط المعني. (بالطبع، بالنسبة إلى عمليات الربط التي تم ضبطها بدون استخدام ترميز الرسائل، لا يوفّر هذا التأكيد أي قيمة من منظور الأمان. وهي تؤكد فقط تطابق رقم تعريف عقدة المُرسِل وأنواع النقل.)

تجدر الإشارة إلى أنه إذا لم يكن الربط في حالة "جاهز"، ستعرض هذه الطريقة القيمة false دائمًا.

التفاصيل
المعلَمات
[in] msgInfo
معلومات رسالة Weave للرسالة الواردة.
المرتجعات
صحيح إذا كانت الرسالة حقيقية من الصديق.

IsConnectionTransport

bool IsConnectionTransport() const 

جارٍ التحضير...

bool IsPreparing(
  void
) const 

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

جاهزية

bool IsReady(
  void
) const 

التفاصيل
المرتجعات
صحيح إذا كان الربط في حالة "جاهز".

IUDPTransport

bool IsUDPTransport() const 

وسائل النقل غير الموثوق بها

bool IsUnreliableUDPTransport() const 

نقل وسائل النقل العام (ISWRM)

bool IsWRMTransport() const 

NewExchangeContext

WEAVE_ERROR NewExchangeContext(
  ExchangeContext *& appExchangeContext
)

تخصيص سياق Exchange جديد للتواصل مع نظيره الذي هو هدف الربط.

التفاصيل
المعلَمات
[out] appExchangeContext
مرجع إلى مؤشر سيتلقى كائن سياق Exchange المخصّص حديثًا. سيتم ضبط المؤشر على "فارغ" في حال تعذُّر الطريقة.
قيم الإرجاع
WEAVE_NO_ERROR
في حال تخصيص سياق التبادل بنجاح.
WEAVE_ERROR_NO_MEMORY
في حال عدم توفر ذاكرة لتخصيص سياق التبادل.
WEAVE_ERROR_INCORRECT_STATE
إذا لم يكن الربط في حالة "جاهز".
other
أخطاء أخرى مرتبطة بضبط سياق التبادل استنادًا إلى إعدادات عملية الربط

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

void Release(
  void
)

ارفَع مرجعًا إلى العنصر الملزِم.

إذا لم تكن هناك إشارات أخرى إلى العنصر الملزِم، سيتم إغلاق الربط وإخلاءه.

طلب التحضير

WEAVE_ERROR RequestPrepare()

اطلب من التطبيق ضبط الربط وإعداده.

يمكن أن تستخدم رمز طبقة البروتوكول هذه الطريقة على ربط لم يتم إعداده أو تعذّر تشغيله، لتشغيل حدث للتطبيق (kEvent_SetupRequested) يطلب منه إعداد الربط وإعداده للاستخدام.

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

إذا كان التطبيق لا يتيح ضبط/إعداد عمليات الربط عند الطلب، ستتعذّر الطريقة مع WEAVE_ERROR_NOT_IMPLEMENTED.

إعادة الضبط

void Reset(
  void
)

يمكنك إعادة ضبط الربط إلى حالة لم يتم ضبطها.

عند استدعاء Reset()، يتم إلغاء أي إجراءات إعداد قيد التنفيذ للربط ويتم إصدار جميع موارد الاتصالات الخارجية التي تحتفظ بها عملية الربط. تضع Reset() الالتزام في الحالة غير المضبوطة، وبعدها قد يتم ضبطها وإعدادها مرة أخرى.

لا يؤدي Reset() إلى تغيير العدد المرجعي للربط.

تحديد مهلة الرد التلقائي

void SetDefaultResponseTimeout(
  uint32_t msec
)

إعداد مهلة ردّ التبادل التلقائية التي سيتم استخدامها عند التواصل مع التطبيقات المشابهة

التفاصيل
المعلَمات
[in] timeout
مهلة الاستجابة الجديدة بالمللي ثانية.

ضبط DefaultWRMPConfig

void SetDefaultWRMPConfig(
  const WRMPConfig & wrmpConfig
)

ضبط إعدادات WRMP التلقائية لاستخدامها عند التواصل مع التطبيقات المشابهة.

التفاصيل
المعلَمات
[in] aWRMPConfig
مرجع إلى بنية WRMPConfig تحتوي على الإعدادات التلقائية الجديدة.

ضبط CallEvent

void SetEventCallback(
  EventCallback aEventCallback
)

اضبط الدالة التي حدّدها التطبيق ليتم استدعاؤها عند وقوع حدث واجهة برمجة التطبيقات لعملية ربط.

التفاصيل
المعلَمات
[in] aEventCallback
مؤشر إلى دالة رد الاتصال.

ضبط ProtocolLayerCallback

void SetProtocolLayerCallback(
  EventCallback callback,
  void *state
)

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

وسيتم استدعاء هذه الدالة بالإضافة إلى دالة رد الاتصال التي يحددها التطبيق عند وقوع أحداث واجهة برمجة التطبيقات لربط.

التفاصيل
المعلَمات
[in] callback
مؤشر إلى دالة رد الاتصال.
[in] state
مؤشر إلى كائن حالة سيتم توفيره إلى رمز طبقة البروتوكول عند حدوث استدعاء طبقة بروتوكول.

الدوال الثابتة العامة

مؤشر الحدث التلقائي

void DefaultEventHandler(
  void *apAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

المعالج التلقائي لأحداث واجهة برمجة التطبيقات المُلزِمة

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

التفاصيل
المعلَمات
[in] apAppState
مؤشر إلى معلومات حالة تعريف التطبيق المرتبطة بالربط.
[in] aEvent
رقم تعريف الحدث تم تمريره من خلال معاودة الاتصال بالحدث
[in] aInParam
مرجع مَعلمات أحداث الإدخال التي يتم تمريرها بواسطة استدعاء الحدث
[in] aOutParam
مرجع مَعلمات أحداث الإخراج التي يمرِّرها استدعاء الحدث