nl::Weave::Binding

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

التقاط الهدف المقصود لاتصال Weave ومعلومات الإعداد ذات الصلة.

ملخّص

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

الإعداد

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

راجِع مستندات Binding::Configuration للحصول على مزيد من التفاصيل.

الإعداد

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

التواصل

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

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

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

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

مدة الربط

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

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

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

@23{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
تعداد
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) تعريف الكتابة
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

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

nl::Weave::Binding::OutEventParam

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

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

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() لضبط الربط قبل إعداده للتواصل مع التطبيقات المشابهة.

التفاصيل
المرتجعات
كائن Binding::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 التي تم إعدادها.

بالإضافة إلى ذلك، ستضمن هذه الطريقة عدم تجاوز حمولة 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). قبل بدء عملية الإعداد، لا تتوفّر معلومات العنوان إلا إذا تم ضبطها صراحةً من خلال التطبيق أثناء عملية الإعداد. أثناء مرحلة الإعداد، تتوفر معلومات العنوان عند اكتمال إعداد العنوان (على سبيل المثال، بعد اكتمال تحليل نظام أسماء النطاقات). بعد أن يصبح الربط جاهزًا، ستظل معلومات العنوان متوفّرة إلى أن تتم إعادة ضبط الربط.

التفاصيل
المعلمات
[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_Prepare وإلى) يطلب منه ضبط الربط وإعداده للاستخدام.

لا يمكن استدعاء هذه الطريقة إلا في Bindings في حالات 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
مرجع مَعلمات أحداث النتائج التي يتم تمريرها من خلال عملية معاودة الاتصال بالحدث