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

#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>

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

الملخّص

وتستخدم BdxProtocol هذه العناصر للحفاظ على حالة البروتوكول. وتتم إدارتها من خلال خادم BdxServer، الذي يعالج إنشاء عمليات نقل جديدة وإعدادها، بما في ذلك إدارة الاتصالات وسياقات Exchange.

السمات العامة

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
رقم الحظر التالي الذي نتوقّع أن يتلقّاه BlockQuery أو BlockACK عند إرساله (بعد بدء عملية النقل رسميًا).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
الملفات/عناصر البيانات ذات الصلة المتعلقة بالمهام: هل تريد إزالة ذلك؟ أم يجب علينا إنشاء عقد يوضّح الشكل الذي ستظهر به هذه السلسلة وكيف سيتم استخدامها؟ على وجه التحديد، هل بدعم من PacketBuffer؟ إذا كان الأمر كذلك، من المفترض أن لا يلتزِم الدبّوس بهذا الشكل حتى يستهلك حافزًا كبيرًا.
mFirstQuery
bool
mHandlers
mIsAccepted
bool
mIsCompletedSuccessfully
bool
mIsInitiated
bool
mIsWideRange
bool
mLength
uint64_t
mMaxBlockSize
uint16_t
mNext)(BDXTransfer &)
mStartOffset
uint64_t
mTransferMode
uint8_t
mVersion
uint8_t

وظائف عامة

DispatchErrorHandler(WEAVE_ERROR anErrorCode)
void
إذا تم إعداد معالج الأخطاء، يمكنك الاتصال به.
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
وفي حال ضبط معالج الحصول على حظر، عليك استدعاءه.
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
إذا تم ضبط معالج وضع القوالب، عليك استدعاءه.
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
يتحقّق المرسِلون مما إذا كان قد تم إعداد المعالج ثم يتصل به في حال توفّره.
DispatchRejectHandler(StatusReport *aReport)
void
إذا تم إعداد معالج الرفض، يمكنك الاتصال به.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
إذا تم ضبط معالج قبول الإرسال، يمكنك الاتصال به.
DispatchXferDoneHandler(void)
void
إذا تم ضبط معالِج النقل الذي تم إتمامه، يمكنك طلبه.
DispatchXferErrorHandler(StatusReport *aXferError)
void
إذا تم ضبط معالج خطأ في النقل، يُرجى الاتصال به.
GetDefaultFlags(bool aExpectResponse)
uint16_t
تعرض هذه الدالة العلامات التلقائية المطلوب إرسالها مع رسالة.
IsAsync(void)
bool
 Returns true if this transfer is asynchronous, false otherwise.
IsDriver(void)
bool
 Returns true if this entity (node) is the driver for this transfer, false otherwise.
Reset(void)
void
 Sets all pointers to NULL, resets counters, etc.
SetHandlers(BDXHandlers aHandlers)
void
تضبط هذه الدالة المعالجات على كائن BDXTransport هذا.
Shutdown(void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

السمات العامة

بادئ التشغيل

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmInitiator

مراسِل

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmSender

mAppState

void * nl::Weave::Profiles::BDX_Development::BDXTransfer::mAppState

mBlockCounter

uint32_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBlockCounter

رقم الحظر التالي الذي نتوقّع أن يتلقّاه BlockQuery أو BlockACK عند إرساله (بعد بدء عملية النقل رسميًا).

وعند الاستلام، سيكون طلب BlockSend التالي الذي نتوقّع تلقّيه أو آخر BlockQuery الذي أرسلناه (بعد بدء عملية النقل رسميًا وإرسال طلب البحث الأول).

mBytesSent

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBytesSent

سياق mExchange

ExchangeContext * nl::Weave::Profiles::BDX_Development::BDXTransfer::mExchangeContext

mFileDesignator

ReferencedString nl::Weave::Profiles::BDX_Development::BDXTransfer::mFileDesignator

الملفات/عناصر البيانات ذات الصلة المتعلقة بالمهام: هل تريد إزالة ذلك؟ أم يجب علينا إنشاء عقد يوضّح الشكل الذي ستظهر به هذه السلسلة وكيف سيتم استخدامها؟ على وجه التحديد، هل بدعم من PacketBuffer؟ إذا كان الأمر كذلك، من المفترض أن لا يلتزِم الدبّوس بهذا الشكل حتى يستهلك حافزًا كبيرًا.

طلب بحث mFirst

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mFirstQuery

معالجات mHandlers

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

mIs مقبول

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsAccepted

mIsاكتمال بنجاح

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsCompletedSuccessfully

تم بدء MI

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsInitiated

mIsWideRange

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsWideRange

طول متر

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mLength

الحد الأقصى للحجم

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mMaxBlockSize

التالي

WEAVE_ERROR(* nl::Weave::Profiles::BDX_Development::BDXTransfer::mNext)(BDXTransfer &)

mStartoffset

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mStartOffset

وضع النقل

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mTransferMode

إصدار mVersion

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mVersion

وظائف عامة

DispatchErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchErrorHandler(
  WEAVE_ERROR anErrorCode
)

إذا تم إعداد معالج الأخطاء، يمكنك الاتصال به.

في حال عدم ضبط هذه السياسة، عليك أيضًا إيقاف عملية النقل كسلوك تلقائي.

التفاصيل
المعلَمات
[in] anErrorCode
رمز الخطأ الذي ستتم معالجته

أداة DispatchGetBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler(
  uint64_t *aLength,
  uint8_t **aDataBlock,
  bool *aLastBlock
)

وفي حال ضبط معالج الحصول على حظر، عليك استدعاءه.

التفاصيل
المعلَمات
[in] aLength
مدة الحظر
[in] aDataBlock
الإشارة إلى مجموعة البيانات
[in] aLastBlock
صحيح إذا كان هذا هو الحظر الأخير في عملية النقل

DispatchPlaceBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler(
  uint64_t aLength,
  uint8_t *aDataBlock,
  bool aLastBlock
)

إذا تم ضبط معالج وضع القوالب، عليك استدعاءه.

التفاصيل
المعلَمات
[in] aLength
مدة الحظر
[in] aDataBlock
الإشارة إلى مجموعة البيانات
[in] aLastBlock
صحيح إذا كان هذا هو الحظر الأخير في عملية النقل

إرسال البريد المستلَم

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept(
  ReceiveAccept *aReceiveAcceptMsg
)

يتحقّق المرسِلون مما إذا كان قد تم إعداد المعالج ثم يتصل به في حال توفّره.

إذا تم ضبط معالج قبول الاستلام، يمكنك الاتصال به.

ولذلك، يجب استخدام هذه البيانات كواجهة عامة للاتصال باستدعاءات، والتي يجب ألا يتم لمسها مباشرةً من خلال تطبيقات خارجية. من المحتمل أن تستخدم مراجعة مستقبلية لـ BDXTransport كائن مفوَّض بدلاً من تخزين مؤشرات فردية لكل استدعاء.

التفاصيل
المعلَمات
[in] aReceiveAcceptMsg
تتم معالجة رسالة AcceptAccept
المرتجعات
قيمة خطأ

معالج رفض الإرسال

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler(
  StatusReport *aReport
)

إذا تم إعداد معالج الرفض، يمكنك الاتصال به.

في حال عدم ضبط هذه السياسة، عليك أيضًا إيقاف عملية النقل كسلوك تلقائي.

التفاصيل
المعلَمات
[in] aReport
رسالة حالة التقرير التي ستتم معالجتها

إرسال البريد المرسَل

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept(
  SendAccept *aSendAcceptMsg
)

إذا تم ضبط معالج قبول الإرسال، يمكنك الاتصال به.

التفاصيل
المعلَمات
[in] aSendAcceptMsg
يجب معالجة رسالة SendAccept.
المرتجعات
قيمة خطأ

DispatchXferDoneHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler(
  void
)

إذا تم ضبط معالِج النقل الذي تم إتمامه، يمكنك طلبه.

في حال عدم ضبط هذه السياسة، عليك أيضًا إيقاف عملية النقل كسلوك تلقائي.

DispatchXferErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler(
  StatusReport *aXferError
)

إذا تم ضبط معالج خطأ في النقل، يُرجى الاتصال به.

في حال عدم ضبط هذه السياسة، عليك أيضًا إيقاف عملية النقل كسلوك تلقائي.

التفاصيل
المعلَمات
[in] aXferError
تقرير الحالة للخطأ الذي ستتم معالجته

علامات GetDefaultFlags

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags(
  bool aExpectResponse
)

تعرض هذه الدالة العلامات التلقائية المطلوب إرسالها مع رسالة.

التفاصيل
المعلَمات
[in] aExpectResponse
إذا كنا نتوقع ردًا على هذه الرسالة
المرتجعات
العلامات التي سيتم إرسالها

isAsync (المزامنة)

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsAsync(
  void
)

 Returns true if this transfer is asynchronous, false otherwise.

التفاصيل
المرتجعات
صحيح إذا كانت عملية النقل غير متزامنة.

برنامج DriveDriver

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsDriver(
  void
)

 Returns true if this entity (node) is the driver for this transfer, false otherwise.

التفاصيل
المرتجعات
صحيح إذا كان هذا الكيان هو المحرك لعملية النقل هذه

إعادة الضبط

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Reset(
  void
)

 Sets all pointers to NULL, resets counters, etc.

تم إجراء مكالمة عند إيقاف التشغيل.

معالجات الضبط

void nl::Weave::Profiles::BDX_Development::BDXTransfer::SetHandlers(
  BDXHandlers aHandlers
)

تضبط هذه الدالة المعالجات على كائن BDXTransport هذا.

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

التفاصيل
المعلَمات
[in] aHandlers
بنية معالجات رد الاتصال التي سيتم طلبها

إيقاف التشغيل

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown(
  void
)

 Shuts down the current transfer, including closing any open ExchangeContext.

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