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

این فضای نام شامل تمام رابط‌های موجود در نمایه Weave for Bulk Data Transfer (BDX) است که به طور فعال در حال توسعه هستند و نباید برای استفاده در تولید استفاده شوند.

خلاصه

شمارش ها

@80 enum
@81 enum
@82 enum
@83 enum

Typedefs

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 از طول 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 بسته به اتصال زمینه تبادل (بدون درخواست برای TCP) و بر اساس پشتیبانی زمان کامپایل برای WRMP، پرچم مناسب را برای فیلد RequestAck برمی‌گرداند.

کلاس ها

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

پیام BlockAck برای تایید یک بلوک از داده ها استفاده می شود.

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

پیام BlockAckV1 برای تایید یک بلوک از داده ها استفاده می شود.

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

پیام BlockEOF برای انتقال آخرین بلوک داده از فرستنده به گیرنده استفاده می شود.

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

پیام BlockEOFAck برای تایید آخرین بلوک داده استفاده می شود.

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

پیام BlockEOFAckV1 برای تایید آخرین بلوک داده استفاده می شود.

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

پیام BlockEOFV1 برای انتقال آخرین بلوک داده از فرستنده به گیرنده استفاده می شود.

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

پیام BlockQuery برای درخواست انتقال بلوکی از داده ها از فرستنده به گیرنده استفاده می شود.

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

پیام BlockQueryV1 برای درخواست انتقال بلوکی از داده ها از فرستنده به گیرنده استفاده می شود.

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

پیام BlockSend برای انتقال بلوکی از داده ها از فرستنده به گیرنده استفاده می شود.

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

پیام BlockSendV1 برای انتقال بلوکی از داده ها از فرستنده به گیرنده استفاده می شود.

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

پیام ReceiveAccept برای پذیرش مبادله پیشنهادی زمانی که گیرنده آغازگر باشد استفاده می شود.

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

پیام ReceiveInit برای شروع یک تبادل زمانی که گیرنده آغازگر است استفاده می شود.

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

پیام ReceiveReject برای رد تبادل پیشنهادی زمانی که فرستنده آغازگر است استفاده می شود.

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

پیام SendAccept برای پذیرش تبادل پیشنهادی زمانی که فرستنده آغازگر باشد استفاده می شود.

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

پیام SendInit برای شروع یک تبادل زمانی که فرستنده آغازگر است استفاده می شود.

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

پیام SendReject برای رد تبادل پیشنهادی زمانی که فرستنده آغازگر است استفاده می شود.

nl:: بافت:: نمایه ها:: BDX_Development:: خطای انتقال

پیام خطا برای گزارش خطا و لغو تبادل استفاده می شود.

سازه ها

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

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

فضاهای نام

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

شمارش ها

@80

 @80

@81

 @81

@82

 @82

@83

 @83

Typedefs

BdxClient

BdxNode BdxClient

BdxServer

BdxNode BdxServer

Error Handler

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

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

به این معنا که اگر خطایی در کنترلر دیگری رخ دهد که امضای آن دارای نوع برگشتی void است (مثلاً در پاسخ به پیام 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.

تماس گیرنده فضای بافر (بافر و طول بافر، ارسال شده توسط مرجع) را فراهم می کند. Callee (برنامه کاربر) باید از بافر ارائه شده استفاده کند، اما به دلایل سازگاری با عقب، ممکن است بافر خود را برگرداند. 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 خواهد بود.

جزئیات
مولفه های
[in] aXfer
BDXTransfer مربوط به این انتقال مداوم است
[in] aLength
طول داده های خوانده شده و ذخیره شده در بلوک مشخص شده
[in] aDataBlock
بلوک واقعی داده ها
[in] aLastBlock
درست است اگر بلوک به عنوان BlockEOF دریافت شود و انتقال کامل شود، در غیر این صورت نادرست است. اگر درست باشد، برنامه نویس احتمالاً باید هر گونه دسته فایل را نهایی کند، در نظر داشته باشد که 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 ، تماس مجدد فراخوانی می شود.

وظیفه آن این است که تعیین کند آیا می‌خواهید Receive را بپذیرید یا خیر، و اگر چنین است، 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() به برنامه نویس برنامه و callback هایی که آنها تعریف می کنند واگذار می شود. TODO: این را تأیید کنید و آن را با زبان موجود در سند BDX تطبیق دهید، که بیان می‌کند: "[A TransferError] می‌تواند در هر زمانی توسط هر یک از طرفین ارسال شود تا انتقال داده‌های انبوه به‌طور پیش از موعد پایان یابد."

جزئیات
مولفه های
[in] aXfer
اشاره به BDXTransfer مرتبط با این انتقال
[in] aXferError
نشانگر خطای پیام StatusReport که در حال پردازش آن هستیم

کارکرد

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag بسته به اتصال زمینه تبادل (بدون درخواست برای TCP) و بر اساس پشتیبانی زمان کامپایل برای WRMP، پرچم مناسب را برای فیلد RequestAck برمی‌گرداند.

جزئیات
مولفه های
[in] anEc
زمینه مبادله ای که باید بر اساس آن پرچم را دریافت کنیم
برمی گرداند
0 یا kSendFlag_RequestAck