تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

nl::Weave::الملفات الشخصية::BDX_تطوير التطبيقات::BdxProtocol

الملخّص

الدوال

HandleConnectionClosed(ExchangeContext *anEc, WeaveConnection *aCon, WEAVE_ERROR aConErr)
void
معالج البيانات عندما يكون الاتصال نفسه مغلقًا.
HandleKeyError(ExchangeContext *anEc, WEAVE_ERROR aKeyErr)
void
تتم معالجة الحالات التي لا يمكن فيها استخدام المفتاح المُستخدَم لتشفير رسائل Weave ومصادقتها.
HandleResponse(ExchangeContext *anEc, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aWeaveMsgInfo, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
void
المعالج الرئيسي للرسائل التي تصل في تبادل BDX.
HandleResponseNotAccepted(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleResponseReceive(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleResponseTimeout(ExchangeContext *anEc)
void
معالجة وقت انتهاء مهلة انتظار الرد.
HandleResponseTransmit(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleSendError(ExchangeContext *anEc, WEAVE_ERROR aSendErr, void *aMsgCtxt)
void
المعالِج عندما لا يتم الإقرار برسالة WRMP التي أرسلناها.
InitBdxReceive(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback, void *aMetaDataAppState)
SendBadBlockCounterStatusReport(BDXTransfer & aXfer)
SendBlockAckV1(BDXTransfer & aXfer)
ترسل هذه الدالة رسالة BlockAckV1 بشأن BDXTransport.
SendBlockEOFAckV1(BDXTransfer & aXfer)
ترسل هذه الدالة رسالة BlockEOFAckV1 بشأن BDXTransport.
SendBlockQuery(BDXTransfer & aXfer)
SendBlockQueryV1(BDXTransfer & aXfer)
ترسل هذه الدالة رسالة BlockQueryV1 بشأن BDXTransport.
SendNextBlock(BDXTransfer & aXfer)
SendNextBlockV1(BDXTransfer & aXfer)
ترسل هذه الدالة BlockSendV1 التالي الذي تم استرداده عن طريق استدعاء BDXTransport's GetBlockHandler.
SendStatusReport(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void
يتم إرسال رسالة تقرير الحالة مع معرّف الملف الشخصي ورمز الحالة وسياق التبادل المرتبط به.
SendTransferError(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void

الدوال

مقبض الاتصال مغلق

void HandleConnectionClosed(
  ExchangeContext *anEc,
  WeaveConnection *aCon,
  WEAVE_ERROR aConErr
)

معالج البيانات عندما يكون الاتصال نفسه مغلقًا.

يستدعي معالج الخطأ عملية النقل المرتبطة هذه وتغلق عملية النقل.

التفاصيل
المعلَمات
[in] anEc
سياق Exchange الذي رصد اتصالاً مغلقًا، يمكننا العثور على عملية BDXTransport المرتبطة من هذا
[in] aCon
اتصال Weave، غير مستخدم في الوظيفة الفعلية
[in] aConErr
حدث خطأ أثناء إغلاق الاتصال.

خطأ يدوي

void HandleKeyError(
  ExchangeContext *anEc,
  WEAVE_ERROR aKeyErr
)

تتم معالجة الحالات التي لا يمكن فيها استخدام المفتاح المُستخدَم لتشفير رسائل Weave ومصادقتها.

التفاصيل
المعلَمات
[in] anEc
سياق Exchange الذي رصد خطأً رئيسيًا يمكننا العثور على BDXTransport المرتبط من هذا
[in] aKeyErr
خطأ مرتبط بالمفتاح لم يعد قابلاً للاستخدام

مقبض الاستجابة

void HandleResponse(
  ExchangeContext *anEc,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aWeaveMsgInfo,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

المعالج الرئيسي للرسائل التي تصل في تبادل BDX.

إنه يعمل بشكل أساسي كجهاز استخراج لاستخلاص معلومات عنوان BDX وبياناته، وإرسال المعالج المناسب للتصرف على هذا الكائن.

التفاصيل
المعلَمات
[in] anEc
سياق التبادل في حال احتجنا إليه
[in] aPktInfo
غير مستخدم، ولكن يجب أن يتطابق مع النموذج الأولي للدالة.
[in] aWeaveMsgInfo
دمج معلومات الرسالة للرسالة
[in] aProfileId
رقم تعريف الملف الشخصي الذي يتم تحديد الرسالة ضمنه
[in] aMessageType
نوع الرسالة لهذا الملف الشخصي
[in] aPacketBuffer
الرسالة المُجمَّعة نفسها

مقبض الرد غير مقبول

WEAVE_ERROR HandleResponseNotAccepted(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

مقبض الاستلام

WEAVE_ERROR HandleResponseReceive(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

انتهاء مهلة المعالجة

void HandleResponseTimeout(
  ExchangeContext *anEc
)

معالجة وقت انتهاء مهلة انتظار الرد.

يتم إيقاف النقل الذي انتهت المهلة، ويستدعي معالج الخطأ هذا للنقل.

التفاصيل
المعلَمات
[in] anEc
سياق Exchange الذي يمكننا العثور من خلاله على BDXTransport

معدل معالجة المقبض

WEAVE_ERROR HandleResponseTransmit(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

خطأ في المعالجة

void HandleSendError(
  ExchangeContext *anEc,
  WEAVE_ERROR aSendErr,
  void *aMsgCtxt
)

المعالِج عندما لا يتم الإقرار برسالة WRMP التي أرسلناها.

التفاصيل
المعلَمات
[in] anEc
سياق Exchange الذي كان يتضمّن رسالة غير مميّزة يمكن العثور عليها من خلال BDXTransport
[in] aSendErr
خطأ مرتبط بتعذُّر إرسال الرسالة
[in] aMsgCtxt
سياق رسالة عشوائي كان مرتبطًا بالرسالة التي لم يتم قبولها

تلقّي InitBdx

WEAVE_ERROR InitBdxReceive(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

IntBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

IntBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback,
  void *aMetaDataAppState
)

تقرير SendBadBlockCounterStatus

WEAVE_ERROR SendBadBlockCounterStatusReport(
  BDXTransfer & aXfer
)

SendBlockAckV1

WEAVE_ERROR SendBlockAckV1(
  BDXTransfer & aXfer
)

ترسل هذه الدالة رسالة BlockAckV1 بشأن BDXTransport.

رقم الحظر المعتمَد يساوي aXfer.mBlockCounter - 1 لأنّه لا يمكن استدعاء هذه الدالة إلا بعد تقدّم حالة النقل إلى العدّاد التالي.

التفاصيل
المعلَمات
[in] aXfer
BDXTransport الذي نرسله إلى BlockAck.
قيم الإرجاع
WEAVE_NO_ERROR
في حال إرسال الرسالة بنجاح
WEAVE_ERROR_NO_MEMORY
في حال عدم توفّر PacketBuffers.

SendBlockEOFAckV1

WEAVE_ERROR SendBlockEOFAckV1(
  BDXTransfer & aXfer
)

ترسل هذه الدالة رسالة BlockEOFAckV1 بشأن BDXTransport.

رقم الحظر المعترف به يساوي aXfer.mBlockCounter.

التفاصيل
المعلَمات
[in] aXfer
نحن بصدد إرسال BDXTransport BlockEOFAck إلى حسابك.
قيم الإرجاع
WEAVE_NO_ERROR
في حال إرسال الرسالة بنجاح
WEAVE_ERROR_NO_MEMORY
في حال عدم توفّر PacketBuffers.

SendBlockQuery

WEAVE_ERROR SendBlockQuery(
  BDXTransfer & aXfer
)

SendBlockQueryV1

WEAVE_ERROR SendBlockQueryV1(
  BDXTransfer & aXfer
)

ترسل هذه الدالة رسالة BlockQueryV1 بشأن BDXTransport.

رقم الحظر المطلوب يساوي aXfer.mBlockCounter.

التفاصيل
المعلَمات
[in] aXfer
BDXTransport الذي نرسله إلى BlockQuery.
قيم الإرجاع
WEAVE_NO_ERROR
في حال إرسال الرسالة بنجاح
WEAVE_ERROR_NO_MEMORY
في حال عدم توفّر PacketBuffers.

SendNextBlock

WEAVE_ERROR SendNextBlock(
  BDXTransfer & aXfer
)

SendNextBlockV1

WEAVE_ERROR SendNextBlockV1(
  BDXTransfer & aXfer
)

ترسل هذه الدالة BlockSendV1 التالي الذي تم استرداده عن طريق استدعاء BDXTransport's GetBlockHandler.

التفاصيل
المعلَمات
[in] aXfer
BDXTransport الذي يتم استدعاء GetBlockHandler للحصول على الحظر التالي قبل إرساله باستخدام ExchangeContext المرتبطة
قيم الإرجاع
WEAVE_ERROR_INCORRECT_STATE
في حال كانت GetBlockHandler فارغة

إرسال تقرير الحالة

void SendStatusReport(
  ExchangeContext *anEc,
  uint32_t aProfileId,
  uint16_t aStatusCode
)

يتم إرسال رسالة تقرير الحالة مع معرّف الملف الشخصي ورمز الحالة وسياق التبادل المرتبط به.

التفاصيل
المعلَمات
[in] anEc
سياق التبادل الذي يجب أن نرسل رسالة تقرير الحالة إليه
[in] aProfileId
معرِّف الملف الشخصي
[in] aStatusCode
الرمز المرتبط بخطأ في النقل

إرسال خطأ في النقل

void SendTransferError(
  ExchangeContext *anEc,
  uint32_t aProfileId,
  uint16_t aStatusCode
)