nl:: بافت:: پروفایل ها:: BDX_Development:: BDXTransfer

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

این ساختار شامل اعضای داده ای است که انتقال فعال BDX را نشان می دهد.

خلاصه

این اشیاء توسط BdxProtocol برای حفظ وضعیت پروتکل استفاده می شوند. آنها توسط BdxServer مدیریت می‌شوند که ایجاد و مقداردهی اولیه انتقال‌های جدید، از جمله مدیریت Connections و ExchangeContexts را مدیریت می‌کند.

صفات عمومی

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
شماره بلوک بعدی که انتظار داریم هنگام ارسال یک BlockQuery یا BlockACK دریافت کنیم (پس از شروع رسمی انتقال).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
فایل/مسدود کردن اعضای داده مرتبط TODO: حذف شود؟ یا فقط باید قراردادی ببندیم که این رشته ممکن است چگونه باشد و چگونه از آن استفاده شود؟ به طور خاص، آیا توسط PacketBuffer پشتیبانی می شود؟ اگر چنین است، احتمالاً نباید برای کل xfer بچسبد زیرا یک pbuf را اشغال می کند
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
اگر کنترل کننده بلوک put تنظیم شده است، با آن تماس بگیرید.
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
این تابع کنترل کننده ها را روی این شی BDXTransfer تنظیم می کند.
Shutdown (void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

صفات عمومی

mAmInitiator

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

mAmSender

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

mExchangeContext

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

mFileDesignator

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

فایل/مسدود کردن اعضای داده مرتبط TODO: حذف شود؟ یا فقط باید قراردادی ببندیم که این رشته ممکن است چگونه باشد و چگونه از آن استفاده شود؟ به طور خاص، آیا توسط PacketBuffer پشتیبانی می شود؟ اگر چنین است، احتمالاً نباید برای کل xfer بچسبد زیرا یک pbuf را اشغال می کند

mFirstQuery

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

mHandlers

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

mIsAccepted

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

mIsCompleted با موفقیت

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

من آغاز شده است

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

mMaxBlockSize

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

mNext

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

mStartOffset

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

mTransferMode

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

mVersion

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

توابع عمومی

DispatchError Handler

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
درست است اگر این آخرین بلوک در انتقال باشد

DispatchPutBlockHandler

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

اگر کنترل کننده بلوک put تنظیم شده است، با آن تماس بگیرید.

جزئیات
مولفه های
[in] aLength
طول بلوک
[in] aDataBlock
اشاره گر به بلوک داده
[in] aLastBlock
درست است اگر این آخرین بلوک در انتقال باشد

DispatchReceiveAccept

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

توزیع کنندگان به سادگی بررسی می کنند که آیا کنترل کننده تنظیم شده است یا خیر و در صورت وجود آن را فراخوانی می کنند.

اگر کنترل کننده دریافت دریافت تنظیم شده است، با آن تماس بگیرید.

بنابراین، اینها باید به عنوان رابط عمومی برای تماس های برگشتی استفاده شوند، که هرگز نباید مستقیماً توسط برنامه های کاربردی خارجی لمس شوند. این امکان وجود دارد که در ویرایش بعدی BDXTransfer به جای ذخیره نشانگرهای جداگانه برای هر یک از تماس‌های برگشتی، از یک شی نماینده استفاده شود.

جزئیات
مولفه های
[in] aReceiveAcceptMsg
پیام ReceiveAccept برای پردازش
برمی گرداند
یک مقدار خطا

DispatchRejectHandler

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

اگر کنترل کننده رد تنظیم شده است، با آن تماس بگیرید.

اگر تنظیم نشد، انتقال را نیز به عنوان یک رفتار پیش‌فرض خاموش کنید.

جزئیات
مولفه های
[in] aReport
پیام StatusReport برای پردازش

DispatchSendAccept

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.

جزئیات
برمی گرداند
اگر انتقال ناهمزمان باشد درست است.

IsDriver

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.

هنگام خاموش شدن تماس گرفت.

SetHandlers

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

این تابع کنترل کننده ها را روی این شی BDXTransfer تنظیم می کند.

همیشه باید از این روش استفاده کنید نه اینکه بخواهید آنها را به صورت دستی تنظیم کنید، زیرا اجرای اساسی نحوه ذخیره نشانگرهای تابع handler بخشی از API عمومی نیست.

جزئیات
مولفه های
[in] aHandlers
ساختار کنترل کننده های تماس برگشتی که باید فراخوانی شوند

خاموش شدن

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

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

از این فرصت برای آزاد کردن منابع مرتبط با این انتقال و منطق برنامه خود استفاده کنید.