nl::Weave::Profiles::BDX_Development

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

ملخّص

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

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

تحديدات النوع

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

يوفر المتصل مساحة التخزين المؤقت (المخزن المؤقت وطوله، ويتم تمريره بالإشارة). ينبغي على المتصل (تطبيق المستخدم) استخدام المورد الاحتياطي المقدم، ولكن لأسباب تتعلق بالتوافق مع الأنظمة القديمة، قد يعرض المخزن المؤقت الخاص به. يجب ألا يتجاوز المتصل 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 of length aLength.

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

التفاصيل
المَعلمات
[in] aXfer
عملية BDXTransfer المرتبطة بعملية النقل الجارية هذه
[in] aLength
طول البيانات التي تمت قراءتها وتخزينها في الكتلة المحددة
[in] aDataBlock
كتلة البيانات الفعلية
[in] aLastBlock
صحيح إذا تم استلام الحظر على أنه BlockEOF واكتملت عملية النقل، أو خطأ false في الحالات الأخرى. إذا كانت القيمة 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->mIsAccepted=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
إشارة إلى رفض رسالة StatusReport التي نعمل على معالجتها

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 في الوقت الحالي)، وبالتالي يُترك خيار استدعاء Shutdown() لمبرمج التطبيق وعمليات الاستدعاء التي يحدّدها. المهمة: عليك التحقّق من ذلك ومطابقته مع اللغة الواردة في مستند BDX الذي ينص على ما يلي: "[A TransferError] يمكن لأي طرف إرسال [A TransferError] في أي وقت لإنهاء عملية نقل البيانات المجمّعة قبل أوانه".

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

الدوال

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

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

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