nl:: বুনা:: প্রোফাইল:: বিডিএক্স_ডেভেলপমেন্ট

এই নেমস্পেসটিতে বাল্ক ডেটা ট্রান্সফার (বিডিএক্স) প্রোফাইলের জন্য উইভের মধ্যে সমস্ত ইন্টারফেস অন্তর্ভুক্ত রয়েছে যা সক্রিয়ভাবে বিকাশের অধীনে রয়েছে এবং উত্পাদন ব্যবহারের জন্য ব্যবহার করা উচিত নয়।

সারসংক্ষেপ

গণনা

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

Typedefs

BdxClient typedef
BdxServer typedef
ErrorHandler )(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
এই হ্যান্ডলারকে বলা হয় যেকোন সময় একটি উইভ ত্রুটির সম্মুখীন হয় যা ব্যবহারকারী-অ্যাপ্লিকেশন-সংজ্ঞায়িত নিয়ন্ত্রণ প্রবাহে ত্রুটি কোডের মাধ্যমে সরাসরি ফেরত দেওয়া যায় না।
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(*
দৈর্ঘ্য aLength এর aDataBlock দ্বারা নির্দেশিত ডেটা ব্লক পরিচালনা করুন।
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(*
BDX দ্বারা প্রাপ্ত বা প্রেরিত স্থানান্তর ত্রুটি বার্তা পরিচালনা করুন।

ফাংশন

GetBDXAckFlag ( ExchangeContext *anEc)
uint16_t
GetBDXAckFlag RequestAck ক্ষেত্রের জন্য উপযুক্ত পতাকা প্রদান করে এক্সচেঞ্জ কনটেক্সটের সংযোগের উপর নির্ভর করে (TCP-এর জন্য কোনো অনুরোধ নেই), এবং WRMP-এর জন্য কম্পাইল টাইম সাপোর্টের উপর ভিত্তি করে।

ক্লাস

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

ব্লকসেন্ড বার্তাটি প্রেরক থেকে প্রাপকের কাছে ডেটার একটি ব্লক স্থানান্তর করতে ব্যবহৃত হয়।

nl:: বুনা:: প্রোফাইল:: BDX_Development:: BlockSendV1

BlockSendV1 বার্তাটি প্রেরক থেকে প্রাপকের কাছে ডেটার একটি ব্লক স্থানান্তর করতে ব্যবহৃত হয়।

nl:: বুনা:: প্রোফাইল:: BDX_Development:: গ্রহণ করুন

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:: TransferError

ত্রুটি বার্তা একটি ত্রুটি রিপোর্ট এবং একটি বিনিময় বাতিল করতে ব্যবহৃত হয়.

কাঠামো

nl:: বুনা:: প্রোফাইল:: BDX_Development:: BDXHandlers
nl:: বুনা:: প্রোফাইল:: বিডিএক্স_ডেভেলপমেন্ট:: বিডিএক্স ট্রান্সফার

এই কাঠামোতে একটি সক্রিয় BDX স্থানান্তরের প্রতিনিধিত্বকারী ডেটা সদস্য রয়েছে।

নামস্থান

nl:: বুনা:: প্রোফাইল:: BDX_Development:: BdxProtocol

গণনা

@80

 @80

@৮১

 @81

@৮২

 @82

@83

 @83

Typedefs

বিডিএক্সক্লায়েন্ট

BdxNode BdxClient

বিডিএক্স সার্ভার

BdxNode BdxServer

ErrorHandler

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

এই হ্যান্ডলারকে বলা হয় যেকোন সময় একটি উইভ ত্রুটির সম্মুখীন হয় যা ব্যবহারকারী-অ্যাপ্লিকেশন-সংজ্ঞায়িত নিয়ন্ত্রণ প্রবাহে ত্রুটি কোডের মাধ্যমে সরাসরি ফেরত দেওয়া যায় না।

অর্থাৎ, যদি অন্য হ্যান্ডলারের মধ্যে একটি ত্রুটি ঘটে যার স্বাক্ষরে রিটার্ন টাইপ অকার্যকর থাকে (যেমন একটি ইনকামিং ওয়েভ বার্তার প্রতিক্রিয়া হিসাবে বা এমনকি প্রোটোকল দ্বারা প্রেরিত), এই হ্যান্ডলারকে কল করা হবে যাতে ব্যবহারকারী নির্ধারণ করতে পারে যে স্থানান্তরটি পুনরুদ্ধার করা যাবে কিনা। এবং চালিয়ে যান বা যদি তারা শাটডাউন () কল করা উচিত। মনে রাখবেন যে একটি বিডিএক্সট্রান্সফার শুরু হওয়ার আগে একটি ত্রুটি ঘটতে পারে (যেমন ইতিমধ্যেই অনেকগুলি বরাদ্দ স্থানান্তর বস্তু)। এই ধরনের ক্ষেত্রে, কথিত ত্রুটিটি উইভ দ্বারা লগ করা হবে এবং প্রোটোকলটি বরাদ্দ করা যেকোনো প্রয়োজনীয় অবস্থা পরিষ্কার করার ব্যবস্থা করবে।

বিস্তারিত
পরামিতি
[in] aXfer
এই স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফারের নির্দেশক
[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
এই চলমান স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফার
[in,out] aLength
এই ব্লকে পড়া এবং সংরক্ষিত ডেটার দৈর্ঘ্য। ফাংশনে কল করার সময় aDataBlock এ পাস করা বাফারের দৈর্ঘ্য থাকে। রিটার্নে, ভেরিয়েবলে আসলে পড়া ডেটার দৈর্ঘ্য থাকে।
[in,out] aDataBlock
ডেটা ব্লকের পয়েন্টার। ইনপুটে, এতে ফ্রেমওয়ার্ক-প্রদত্ত বাফার থাকে; কলী সেই স্থানটি বাফারটি পূরণ করতে ব্যবহার করতে পারে, অথবা তার নিজস্ব বাফারিং স্থান প্রদান করতে পারে (পশ্চাদগামী সামঞ্জস্যপূর্ণ অ্যাপ্লিকেশনের জন্য)। প্রদত্ত বাফার ব্যবহার করে অ্যাপ্লিকেশনগুলিকে অবশ্যই কোনো প্রান্তিককরণ অনুমান করা উচিত নয়৷
[out] aLastBlock
সত্য যদি ব্লকটি BlockEOF হিসাবে পাঠানো হয় এবং স্থানান্তর সম্পূর্ণ হয়, অন্যথায় মিথ্যা

পুটব্লকহ্যান্ডলার

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

দৈর্ঘ্য aLength এর aDataBlock দ্বারা নির্দেশিত ডেটা ব্লক পরিচালনা করুন।

সম্ভবত এটি একটি ফাইলে এটি লেখা এবং যদি isLastBlock সত্য হয় তবে বলা ফাইলটি বন্ধ করা জড়িত।

বিস্তারিত
পরামিতি
[in] aXfer
এই চলমান স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফার
[in] aLength
নির্দিষ্ট ব্লকে পড়া এবং সংরক্ষণ করা ডেটার দৈর্ঘ্য
[in] aDataBlock
ডেটার প্রকৃত ব্লক
[in] aLastBlock
সত্য যদি ব্লকটি ব্লকইওএফ হিসাবে প্রাপ্ত হয় এবং স্থানান্তর সম্পন্ন হয়, অন্যথায় মিথ্যা। সত্য হলে, প্রোগ্রামারকে সম্ভবত যেকোন ফাইল হ্যান্ডেল চূড়ান্ত করা উচিত, এটি মনে রেখে যে এর পরে XferDoneHandlerকে কল করা হবে।

রিসিভঅ্যাকসেপ্টহ্যান্ডলার

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

একটি পূর্বে পাঠানো ReceiveInit গন্তব্য দ্বারা গৃহীত হলে কলব্যাক আহ্বান করা হয়।

আপনি ফাইল খুলতে বা স্থানান্তরের জন্য সংস্থান বরাদ্দ করার জন্য এই সুযোগটি ব্যবহার করতে চাইতে পারেন যদি আপনি এটি শুরু করার সময় তা না করেন।

বিস্তারিত
পরামিতি
[in] aXfer
এই স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফারের নির্দেশক
[in] aReceiveAcceptMsg
আমরা প্রসেস করছি এমন ReceiveAccept মেসেজের দিকে নির্দেশক

ReceiveInitHandler

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

একটি ReceiveInit বার্তা পাওয়ার সময় কলব্যাক আহ্বান করা হয়।

এর কাজ হল আপনি গ্রহন গ্রহণ করতে চান কিনা তা নির্ধারণ করা এবং যদি তাই হয়, aXfer->mIsAccepted=true সেট করুন যাতে প্রোটোকলটি ইনিশিয়েটরকে একটি গ্রহণ বার্তা পাঠাতে পারে। BDXTransfer অবজেক্টটি ডিফল্ট সেটিংসে শুরু করা হয়েছে। এটি aXfer->mAppState-এ যেকোনো অ্যাপ্লিকেশন-নির্দিষ্ট অবস্থা (খোলা ফাইল হ্যান্ডেল, ইত্যাদি) সংযুক্ত করার জন্য একটি ভাল জায়গা। এই মুহুর্তে আপনাকে BDXTransfer অবজেক্টের সাথে ব্লক হ্যান্ডলিংয়ের জন্য প্রয়োজনীয় হ্যান্ডলারগুলিও সংযুক্ত করতে হবে। kStatus_Success ছাড়া অন্য কোনো ত্রুটির কোড ফেরত দিলে, স্থানান্তর প্রত্যাখ্যান করা হয়েছে বলে ধরে নেওয়া হয় এবং প্রোটোকল কোড সহ একটি প্রত্যাখ্যান বার্তা পাঠানোর ব্যবস্থা করবে।

বিস্তারিত
পরামিতি
[in] aXfer
এই স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফারের নির্দেশক
[in] aReceiveInitMsg
আমরা প্রক্রিয়া করছি যে ReceiveInit বার্তার দিকে নির্দেশক

রিজেক্টহ্যান্ডলার

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

যদি পূর্ববর্তী Init বার্তাগুলির একটি গন্তব্য দ্বারা প্রত্যাখ্যান করা হয় তবে আমন্ত্রণ জানানো হয়।

বিস্তারিত
পরামিতি
[in] aXfer
এই স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফারের নির্দেশক
[in] aReport
StatusReport বার্তা প্রত্যাখ্যানের নির্দেশক যা আমরা প্রক্রিয়া করছি

SendAcceptHandler

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

একটি পূর্বে পাঠানো SendInit গন্তব্য দ্বারা গৃহীত হলে কলব্যাক আহ্বান করা হয়।

আপনি ফাইল খুলতে বা স্থানান্তরের জন্য সংস্থান বরাদ্দ করার জন্য এই সুযোগটি ব্যবহার করতে চাইতে পারেন যদি আপনি এটি শুরু করার সময় তা না করেন।

বিস্তারিত
পরামিতি
[in] aXfer
এই স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফারের নির্দেশক
[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
এই স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফারের নির্দেশক
[in] aSendInitMsg
সেন্ডইনিট বার্তার দিকে নির্দেশক যা আমরা প্রক্রিয়া করছি

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

স্থানান্তর শেষ হয় এমন ক্ষেত্রে পরিচালনা করুন।

বিস্তারিত
পরামিতি
[in] aXfer
এই স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফারের নির্দেশক

XferErrorHandler

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

BDX দ্বারা প্রাপ্ত বা প্রেরিত স্থানান্তর ত্রুটি বার্তা পরিচালনা করুন।

দ্রষ্টব্য: বিডিএক্স স্থানান্তরটি সম্ভাব্য পুনরুদ্ধারযোগ্য বলে অনুমান করা হয় (সম্ভবত সাময়িক যেমন এই মুহূর্তে প্যাকেটবাফারের বাইরে) এবং তাই শাটডাউন() কল করার বিকল্পটি অ্যাপ্লিকেশন প্রোগ্রামার এবং তাদের সংজ্ঞায়িত কলব্যাকের উপর ছেড়ে দেওয়া হয়েছে। TODO: এটি যাচাই করুন এবং BDX নথির ভাষার সাথে এটির সমন্বয় করুন, যেখানে বলা হয়েছে: "[একটি স্থানান্তর ত্রুটি] যে কোনো সময় যেকোনো পক্ষের দ্বারা পাঠানো যেতে পারে যাতে অকালে বাল্ক ডেটা স্থানান্তর শেষ হয়।"

বিস্তারিত
পরামিতি
[in] aXfer
এই স্থানান্তরের সাথে যুক্ত বিডিএক্স ট্রান্সফারের নির্দেশক
[in] aXferError
StatusReport বার্তা ত্রুটির নির্দেশক যা আমরা প্রক্রিয়া করছি

ফাংশন

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag RequestAck ক্ষেত্রের জন্য উপযুক্ত পতাকা প্রদান করে এক্সচেঞ্জ কনটেক্সটের সংযোগের উপর নির্ভর করে (TCP-এর জন্য কোনো অনুরোধ নেই), এবং WRMP-এর জন্য কম্পাইল টাইম সাপোর্টের উপর ভিত্তি করে।

বিস্তারিত
পরামিতি
[in] anEc
বিনিময়ের প্রেক্ষাপটের ভিত্তিতে আমাদের পতাকা পাওয়া উচিত
রিটার্নস
0 বা kSendFlag_RequestAck