nl::Weave::Profiles::BDX_Development

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

ملخّص

عمليات التعداد

@80 تعداد
@81 تعداد
@82 تعداد
@83 تعداد

تعريف الأنواع

BdxClient تعريف الكتابة
BdxServer تعريف الكتابة
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) تعريف الكتابة
void(*
يتم استدعاء هذا المعالج في أي وقت يحدث فيه خطأ Weave لا يمكن عرضه مباشرةً عبر رموز الخطأ إلى تدفق التحكم الذي يحدده المستخدم.
GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock) تعريف الكتابة
void(*
Get a block of data to be transmitted.
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) تعريف الكتابة
void(*
التعامل مع كتلة البيانات المشار إليها بواسطة aDataBlock بطول aLength.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) تعريف الكتابة
تم استدعاء معاودة الاتصال عند قبول ReceiveInit تم إرساله سابقًا في الوجهة.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) تعريف الكتابة
uint16_t(*
تم استدعاء معاودة الاتصال عند تلقّي رسالة ReceiveInit.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) تعريف الكتابة
void(*
تم استدعاء هذا الإجراء إذا رفضت الوجهة إحدى رسائل Init السابقة.
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) تعريف الكتابة
تم استدعاء معاودة الاتصال عند قبول SendInit تم إرساله سابقًا من قِبل الوجهة.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) تعريف الكتابة
uint16_t(*
تم استدعاء معاودة الاتصال عند تلقّي رسالة SendInit.
XferDoneHandler)(BDXTransfer *aXfer) تعريف الكتابة
void(*
التعامل مع الحالات التي تكتمل فيها عملية النقل
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) تعريف الكتابة
void(*
التعامل مع رسائل TransferError التي استلمتها أو أرسلتها من BDX.

الدوال

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
يعرض GetBDXAckFlag العلامة المناسبة لحقل RequestAck اعتمادًا على اتصال سياق التبادل (بدون طلب ack لـ TCP)، واستنادًا إلى إتاحة وقت التجميع لـ WRMP.

صفوف

nl::Weave::Profiles::BDX_Development::BdxNode
nl::Weave::Profiles::BDX_Development::BlockAck

تُستخدَم رسالة BlockAck للإقرار بحظر البيانات.

nl::Weave::Profiles::BDX_Development::BlockAckV1

تُستخدَم رسالة BlockAckV1 للإقرار بحظر البيانات.

nl::Weave::Profiles::BDX_Development::BlockEOF

تُستخدَم الرسالة BlockEOF لنقل آخر مجموعة بيانات من المُرسِل إلى المستلِم.

nl::Weave::Profiles::BDX_Development::BlockEOFAck

تُستخدَم الرسالة BlockEOFAck للتعرّف على آخر مجموعة للبيانات.

nl::Weave::Profiles::BDX_Development::BlockEOFAckV1

تُستخدَم الرسالة BlockEOFAckV1 للموافقة على آخر مجموعة للبيانات.

nl::Weave::Profiles::BDX_Development::BlockEOFV1

تُستخدَم رسالة BlockEOFV1 لنقل آخر مجموعة بيانات من المُرسِل إلى المستلِم.

nl::Weave::Profiles::BDX_Development::BlockQuery

تُستخدَم رسالة BlockQuery لطلب نقل مجموعة من البيانات من المُرسِل إلى المستلِم.

nl::Weave::Profiles::BDX_Development::BlockQueryV1

يتم استخدام رسالة BlockQueryV1 لطلب نقل مجموعة من البيانات من المُرسِل إلى المستلِم.

nl::Weave::Profiles::BDX_Development::BlockSend

تُستخدَم الرسالة BlockSend لنقل مجموعة بيانات من المُرسِل إلى المستلِم.

nl::Weave::Profiles::BDX_Development::BlockSendV1

تُستخدَم الرسالة BlockSendV1 لنقل مجموعة بيانات من المُرسِل إلى المستلِم.

nl::Weave::Profiles::BDX_Development::ReceiveAccept

تُستخدم رسالة ReceiveAccept لقبول عملية التبادل المقترحة عندما يكون المستلِم هو بادئها.

nl::Weave::Profiles::BDX_Development::ReceiveInit

تُستخدم رسالة ReceiveInit لبدء عملية تبادل عندما يكون المستلِم هو منشئ الحدث.

nl::Weave::Profiles::BDX_Development::ReceiveReject

يتم استخدام رسالة ReceiveReject لرفض عملية تبادل مُقترَحة عندما يكون المُرسِل هو بادئها.

nl::Weave::Profiles::BDX_Development::SendAccept

يتم استخدام رسالة SendAccept لقبول التبادل المقترَح عندما يكون المُرسِل هو بادئ التشغيل.

nl::Weave::Profiles::BDX_Development::SendInit

يتم استخدام الرسالة SendInit لبدء عملية تبادل عندما يكون المُرسِل هو المبدئ.

nl::Weave::Profiles::BDX_Development::SendReject

يتم استخدام الرسالة SendReject لرفض التبادل المقترَح عندما يكون المُرسِل هو بادئه.

nl::Weave::Profiles::BDX_Development::TransferError

تُستخدم رسالة الخطأ للإبلاغ عن خطأ وإلغاء عملية التبادل.

بُنى

nl::Weave::Profiles::BDX_Development::BDXHandlers
nl::Weave::Profiles::BDX_Development::BDXTransfer

تتضمّن هذه البنية أعضاء بيانات يمثّلون عملية نقل BDX نشطة.

مساحات الاسم

nl::Weave::Profiles::BDX_Development::BdxProtocol

عمليات التعداد

@80

 @80

@81

 @81

@82

 @82

@83

 @83

تعريف الأنواع

BdxClient

BdxNode BdxClient

BdxServer

BdxNode BdxServer

ErrorHandler

void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)

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

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

التفاصيل
المعلمات
[in] aXfer
أشِر إلى BDXTransfer المرتبط بعملية النقل هذه.
[in] anErrorCode
رمز الخطأ الذي نحتاج إلى معالجته

GetBlockHandler

void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)

Get a block of data to be transmitted.

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

التفاصيل
المعلمات
[in] aXfer
عملية BDXTransfer المرتبطة بعملية النقل الجارية هذه
[in,out] aLength
طول البيانات التي تمت قراءتها وتخزينها في هذا الجزء. عند طلب الدالة، يتم تضمين طول المخزن المؤقت الذي تم تمريره في aDataBlock. وفي المقابل، يحتوي المتغير على طول البيانات التي تمت قراءتها بالفعل.
[in,out] aDataBlock
يشير إلى كتلة البيانات. وعند الإدخال، يحتوي على المخزن المؤقت المقدم من إطار العمل؛ يمكن للمتصل أن يستخدم تلك المساحة لملء المخزن المؤقت، أو توفير مساحة التخزين المؤقت الخاصة به (لتطبيقات التوافق مع الأنظمة القديمة). يجب ألا تفترض التطبيقات التي تستخدم المخزن المؤقت المقدم أي محاذاة.
[out] aLastBlock
صحيح إذا كان يجب إرسال الحظر باعتباره BlockEOF واكتملت عملية النقل، وخطأ في الحالات الأخرى

PutBlockHandler

void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)

التعامل مع كتلة البيانات المشار إليها بواسطة aDataBlock بطول aLength.

من المحتمل أن يتضمن ذلك كتابته في ملف وإغلاق الملف المعني إذا كانت isLastBlock true.

التفاصيل
المعلمات
[in] aXfer
عملية BDXTransfer المرتبطة بعملية النقل الجارية هذه
[in] aLength
طول البيانات التي تمت قراءتها وتخزينها في الكتلة المحددة
[in] aDataBlock
الكتلة الفعلية للبيانات
[in] aLastBlock
صحيح إذا تمّ تلقّي الحظر باعتباره BlockEOF واكتملت عملية النقل، وخطأ في الحالات الأخرى. إذا كانت القيمة true، من المفترض أن ينهي المبرمج أي معالجات ملفات، مع الأخذ في الاعتبار أنه سيتم استدعاء XferDoneHandler بعد ذلك

ReceiveAcceptHandler

WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)

تم استدعاء معاودة الاتصال عند قبول ReceiveInit تم إرساله سابقًا في الوجهة.

قد ترغب في استغلال هذه الفرصة لفتح الملفات أو تخصيص موارد لعملية النقل إذا لم تفعل ذلك عند بدئه.

التفاصيل
المعلمات
[in] aXfer
أشِر إلى BDXTransfer المرتبط بعملية النقل هذه.
[in] aReceiveAcceptMsg
أشِر إلى رسالة ReceiveAccept التي نعالجها

ReceiveInitHandler

uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)

تم استدعاء معاودة الاتصال عند تلقّي رسالة ReceiveInit.

وتتمثل مهمتها في تحديد ما إذا كنت تريد قبول الاستلام، وفي هذه الحالة، قم بتعيين aXfer->mIsAgree=true حتى يرسل البروتوكول رسالة قبول إلى منشئ الرسالة. يبدأ الكائن BDXTransfer في الإعدادات التلقائية. وهو مكان جيد لإرفاق أي حالة خاصة بالتطبيق (مؤشرات الملفات المفتوحة، وما إلى ذلك) بـ aXfer->mAppState. يجب أيضًا إرفاق المعالِجات اللازمة، على سبيل المثال: حظر المعالجة على الكائن BDXTransfer في هذه المرحلة. إذا تم عرض رمز خطأ غير kStatus_Success، يُفترض أن يتم رفض عملية النقل وسيعالج البروتوكول إرسال رسالة رفض تتضمن الرمز.

التفاصيل
المعلمات
[in] aXfer
أشِر إلى BDXTransfer المرتبط بعملية النقل هذه.
[in] aReceiveInitMsg
الإشارة إلى رسالة ReceiveInit التي نعالجها

RejectHandler

void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)

تم استدعاء هذا الإجراء إذا رفضت الوجهة إحدى رسائل Init السابقة.

التفاصيل
المعلمات
[in] aXfer
أشِر إلى BDXTransfer المرتبط بعملية النقل هذه.
[in] aReport
مؤشر إلى رفض رسالة StateReport التي نعالجها

SendAcceptHandler

WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)

تم استدعاء معاودة الاتصال عند قبول SendInit تم إرساله سابقًا من قِبل الوجهة.

قد ترغب في استغلال هذه الفرصة لفتح الملفات أو تخصيص موارد لعملية النقل إذا لم تفعل ذلك عند بدئه.

التفاصيل
المعلمات
[in] aXfer
أشِر إلى BDXTransfer المرتبط بعملية النقل هذه.
[in] aSendAcceptMsg
الإشارة إلى رسالة SendAccept التي تتم معالجتها

SendInitHandler

uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)

تم استدعاء معاودة الاتصال عند تلقّي رسالة SendInit.

وتتمثل مهمته في تحديد ما إذا كنت تريد قبول SendInit أم لا، وفي هذه الحالة، اضبط aXfer->mIsAccepted=true بحيث سيرسل البروتوكول رسالة قبول إلى منشئ الرسالة. يبدأ الكائن BDXTransfer في الإعدادات التلقائية. وهو مكان جيد لإرفاق أي حالة خاصة بالتطبيق (مؤشرات الملفات المفتوحة، وما إلى ذلك) بـ aXfer->mAppState. يجب أيضًا إرفاق المعالِجات اللازمة، على سبيل المثال: حظر المعالجة على الكائن BDXTransfer في هذه المرحلة. في حال عرض رمز خطأ غير WEAVE_NO_ERROR، يُفترض أن تكون عملية النقل مرفوضة، وسيعالج البروتوكول إرسال رسالة رفض تتضمن الرمز.

التفاصيل
المعلمات
[in] aXfer
أشِر إلى BDXTransfer المرتبط بعملية النقل هذه.
[in] aSendInitMsg
الإشارة إلى رسالة SendInit التي نعالجها

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

التعامل مع الحالات التي تكتمل فيها عملية النقل

التفاصيل
المعلمات
[in] aXfer
أشِر إلى BDXTransfer المرتبط بعملية النقل هذه.

XferErrorHandler

void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)

التعامل مع رسائل TransferError التي استلمتها أو أرسلتها من BDX.

ملاحظة: يُفترض أن يكون من الممكن استرداد عملية نقل BDX (وقد يكون ذلك مؤقّتًا، على سبيل المثال خارج PacketBuffers في الوقت الحالي)، ولذا يتم ترك خيار استدعاء Launchdown() لمبرمج التطبيق واستدعاءات معاودة الاتصال التي يحددها. قائمة المهام: يُرجى التحقق من هذا الأمر ومطابقته مع اللغة الواردة في مستند BDX الذي ينص على ما يلي: "[A TransferError] يمكن لأي طرف أن يرسل في أي وقت بواسطة أنهِ عملية نقل البيانات المجمّعة".

التفاصيل
المعلمات
[in] aXfer
أشِر إلى BDXTransfer المرتبط بعملية النقل هذه.
[in] aXferError
مؤشر إلى رسالة الخطأ "StatusReport" التي نقوم بمعالجتها

الدوال

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

يعرض GetBDXAckFlag العلامة المناسبة لحقل RequestAck اعتمادًا على اتصال سياق التبادل (بدون طلب ack لـ TCP)، واستنادًا إلى إتاحة وقت التجميع لـ WRMP.

التفاصيل
المعلمات
[in] anEc
سياق التبادل الذي ينبغي أن نحصل عليه العلامة استنادًا إلى
المرتجعات
0 أو kSendFlag_RequestAck