nl::Weave::Binding

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

تسجيل الهدف المقصود لاتصال Weave ومعلومات التهيئة ذات الصلة.

ملخّص

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

الإعداد

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

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

الإعداد

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

التواصل

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

تغييرات الحالة الملزِمة

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

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

فترة صلاحية الربط

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

عند الانتهاء من تطبيق باستخدام الربط، قد يستدعي 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 الذي يمكن أن يتناسب مع PacketBuffer المزود.
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::Binding::Configuration

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

الهياكل

nl::Weave::Binding::InEventParam

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

nl::Weave::Binding::OutEventParam

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

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

@23

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

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

EventCallback

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

EventType

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

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

kEvent_BindingReady

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

kEvent_ConnectionEstablished

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

kEvent_DefaultCheck

يتم استخدامه للتحقّق من المعالجة التلقائية الصحيحة للأحداث في التطبيق.

kEvent_PASEParametersRequested

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

kEvent_PrepareFailed

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

kEvent_PrepareRequested

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

kEvent_TAKEParametersRequested

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

الحالة

 State

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

AppState

void * AppState

الدوال العامة

AddRef

void AddRef(
  void
)

حجز مرجع إلى كائن الربط.

AdjustResponseTimeout

WEAVE_ERROR AdjustResponseTimeout(
  ExchangeContext *apExchangeContext
) const 

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

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

AllocateRightSizedBuffer

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

BeginConfiguration

Configuration BeginConfiguration()

عملية ضبط الربط.

يجب أن تستدعي التطبيقات BeginConfiguration() لضبط الربط قبل إعداده للتواصل مع النظير.

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

CanBePrepared

bool CanBePrepared(
  void
) const 

إغلاق

void Close(
  void
)

أغلِق كائن الربط وأفلِت مرجعًا.

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

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

GetConnection

WeaveConnection * GetConnection() const 

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

التفاصيل
المرتجعات
مؤشر إلى كائن WeaveConnection، أو NULL إذا لم يكن هناك اتصال مرتبط بالربط.

GetDefaultResponseTimeout

uint32_t GetDefaultResponseTimeout() const 

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

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

GetDefaultWRMPConfig

const WRMPConfig & GetDefaultWRMPConfig(
  void
) const 

احصل على تكوين WRMP الافتراضي لاستخدامه عند التواصل مع التطبيق المشابهة.

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

GetEncryptionType

uint8_t GetEncryptionType(
  void
) const 

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

GetEventCallback

EventCallback GetEventCallback() const 

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

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

GetExchangeManager

WeaveExchangeManager * GetExchangeManager() const 

GetKeyId

uint32_t GetKeyId(
  void
) const 

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

GetLogId

uint16_t GetLogId(
  void
) const 

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

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const System::PacketBuffer *msgBuf
)

احصل على الحد الأقصى لحجم حمولة Weave الذي يمكن أن يتناسب مع PacketBuffer المزود.

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

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

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

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

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

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

GetPeerIPAddress

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

استرداد معلومات عنوان IP للنظير، إذا كان ذلك متاحًا.

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

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

GetPeerNodeId

uint64_t GetPeerNodeId(
  void
) const 

استرجع معرِّف العقدة الخاص بنظير الربط.

لا يكون صالحًا إلا بعد إعداد كائن الربط.

التفاصيل
المرتجعات
نسيج معرِّف عقدة النظير

GetProtocolLayerCallback

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

GetState

State GetState(
  void
) const 

استرجع الحالة الحالية للربط.

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

IsAuthenticMessageFromPeer

bool IsAuthenticMessageFromPeer(
  const WeaveMessageInfo *msgInfo
)

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

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

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

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

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

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

IsConnectionTransport

bool IsConnectionTransport() const 

IsPreparing

bool IsPreparing(
  void
) const 

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

IsReady

bool IsReady(
  void
) const 

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

IsUDPTransport

bool IsUDPTransport() const 

IsUnreliableUDPTransport

bool IsUnreliableUDPTransport() const 

IsWRMTransport

bool IsWRMTransport() const 

NewExchangeContext

WEAVE_ERROR NewExchangeContext(
  ExchangeContext *& appExchangeContext
)

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

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

الإصدار

void Release(
  void
)

حرر مرجعًا إلى كائن الربط.

إذا لم يكن هناك المزيد من المراجع إلى كائن الربط، يتم إغلاق الربط وتحريره.

RequestPrepare

WEAVE_ERROR RequestPrepare()

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

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

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

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

إعادة الضبط

void Reset(
  void
)

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

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

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

SetDefaultResponseTimeout

void SetDefaultResponseTimeout(
  uint32_t msec
)

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

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

SetDefaultWRMPConfig

void SetDefaultWRMPConfig(
  const WRMPConfig & wrmpConfig
)

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

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

SetEventCallback

void SetEventCallback(
  EventCallback aEventCallback
)

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

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

SetProtocolLayerCallback

void SetProtocolLayerCallback(
  EventCallback callback,
  void *state
)

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

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

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

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

DefaultEventHandler

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

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

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

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