nl::Weave::Profiles::BDX_Development::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 لعملية BDXTransfer المحدّدة.
SendBlockEOFAckV1(BDXTransfer & aXfer)
ترسل هذه الدالة رسالة BlockEOFAckV1 لعملية BDXTransfer المحدّدة.
SendBlockQuery(BDXTransfer & aXfer)
SendBlockQueryV1(BDXTransfer & aXfer)
ترسل هذه الدالة رسالة BlockQueryV1 لعملية BDXTransfer المحدّدة.
SendNextBlock(BDXTransfer & aXfer)
SendNextBlockV1(BDXTransfer & aXfer)
ترسل هذه الدالة BlockSendV1 التالي الذي تم استرداده من خلال استدعاء GetBlockHandler التابع إلى BDXTransfer.
SendStatusReport(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void
يتم إرسال رسالة تقرير الحالة مع رقم تعريف الملف الشخصي ذي الصلة ورمز الحالة وسياق التبادل.
SendTransferError(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void

الدوال

HandleConnectionClosed

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

معالج عند إغلاق الاتصال نفسه.

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

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

HandleKeyError

void HandleKeyError(
  ExchangeContext *anEc,
  WEAVE_ERROR aKeyErr
)

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

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

HandleResponse

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
الرسالة المجمَّعة نفسها

HandleResponseNotAccepted

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

HandleResponseReceive

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

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *anEc
)

معالج يشير إلى وقت انتهاء المهلة في انتظار الرد.

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

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

HandleResponseTransmit

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

HandleSendError

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

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

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

InitBdxReceive

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

InitBdxSend

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

InitBdxSend

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

SendBadBlockCounterStatusReport

WEAVE_ERROR SendBadBlockCounterStatusReport(
  BDXTransfer & aXfer
)

SendBlockAckV1

WEAVE_ERROR SendBlockAckV1(
  BDXTransfer & aXfer
)

ترسِل هذه الدالة رسالة BlockAckV1 لعملية BDXTransfer المحدّدة.

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

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

SendBlockEOFAckV1

WEAVE_ERROR SendBlockEOFAckV1(
  BDXTransfer & aXfer
)

ترسل هذه الدالة رسالة BlockEOFAckV1 لعملية BDXTransfer المحدّدة.

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

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

SendBlockQuery

WEAVE_ERROR SendBlockQuery(
  BDXTransfer & aXfer
)

SendBlockQueryV1

WEAVE_ERROR SendBlockQueryV1(
  BDXTransfer & aXfer
)

ترسل هذه الدالة رسالة BlockQueryV1 لعملية BDXTransfer المحدّدة.

رقم الكتلة المطلوب يساوي aXfer.mBlockCounter.

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

SendNextBlock

WEAVE_ERROR SendNextBlock(
  BDXTransfer & aXfer
)

SendNextBlockV1

WEAVE_ERROR SendNextBlockV1(
  BDXTransfer & aXfer
)

ترسل هذه الدالة BlockSendV1 التالي الذي تم استرداده من خلال استدعاء GetBlockHandler التابع إلى BDXTransfer.

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

SendStatusReport

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

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

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

SendTransferError

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