nl::Weave::Profiles::BDX_Development

इस नेमस्पेस में बल्क डेटा ट्रांसफ़र (बीडीएक्स) प्रोफ़ाइल के लिए, वीव के अंदर वे सभी इंटरफ़ेस शामिल हैं जिन पर अभी काम चल रहा है. इन्हें प्रोडक्शन के लिए इस्तेमाल नहीं किया जाना चाहिए.

खास जानकारी

इन्यूमरेशन

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

टाइपडिफ़

BdxClient टाइपडिफ़
BdxServer टाइपडिफ़
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) टाइपडिफ़
void(*
जब भी कोई Weave गड़बड़ी मिलती है, तो इस हैंडलर को कॉल किया जाता है और गड़बड़ी कोड के ज़रिए सीधे उपयोगकर्ता-ऐप्लिकेशन के तय कंट्रोल फ़्लो को ऐसा नहीं दिया जा सकता.
GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock) टाइपडिफ़
void(*
Get a block of data to be transmitted.
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) टाइपडिफ़
void(*
लंबाई की लंबाई के aDataBlock से दिए गए डेटा के ब्लॉक को हैंडल करें.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) टाइपडिफ़
कॉलबैक का अनुरोध तब किया जाता है, जब डेस्टिनेशन से ReceiveInit को स्वीकार कर लिया जाता है.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) टाइपडिफ़
uint16_t(*
ReceiveInit मैसेज मिलने पर कॉलबैक का अनुरोध किया गया.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) टाइपडिफ़
void(*
तब शुरू किया गया जब पिछले Init मैसेज में से किसी एक को डेस्टिनेशन ने अस्वीकार कर दिया था.
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) टाइपडिफ़
कॉलबैक का अनुरोध तब शुरू हुआ, जब डेस्टिनेशन ने SendInit को स्वीकार किया हो.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) टाइपडिफ़
uint16_t(*
SendInit मैसेज मिलने पर कॉलबैक का अनुरोध किया गया.
XferDoneHandler)(BDXTransfer *aXfer) टाइपडिफ़
void(*
ऐसे मामलों को संभालें जहां ट्रांसफ़र पूरा हो जाता है.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) टाइपडिफ़
void(*
BDX से मिले या भेजे गए TransferError मैसेज को मैनेज करें.

फ़ंक्शन

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag, एक्सचेंज कॉन्टेक्स्ट के कनेक्शन (टीसीपी के लिए कोई अनुरोध सहमति नहीं) के आधार पर और WRMP के लिए, कंपाइल टाइम सपोर्ट के आधार पर, RequestAck फ़ील्ड के लिए सही फ़्लैग दिखाता है.

क्लास

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 मैसेज के जवाब में या प्रोटोकॉल से भेजा गया), तो इस हैंडलर को कॉल किया जाएगा, ताकि उपयोगकर्ता यह तय कर सके कि ट्रांसफ़र वापस पाया जा सकता है और जारी रखा जा सकता है या उसे शटडाउन() पर कॉल करना चाहिए या नहीं. ध्यान दें कि 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 (उपयोगकर्ता ऐप्लिकेशन) को दिए गए बफ़र का इस्तेमाल करना चाहिए, लेकिन पुराने सिस्टम के साथ काम करने की वजहों से, वह अपना बफ़र दिखा सकता है. कैली को 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 से दिए गए डेटा के ब्लॉक को हैंडल करें.

इसमें, उस फ़ाइल को किसी फ़ाइल पर लिखना और उस फ़ाइल को बंद करना शामिल है. ऐसा तब होगा, जब 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 मैसेज मिलने पर कॉलबैक का अनुरोध किया गया.

इसका काम यह तय करना है कि क्या आपको मिलने वाले अनुरोध को स्वीकार करना है और अगर हां, तो aXfer->mIsAlloweded=true सेट करें, ताकि प्रोटोकॉल शुरुआत करने वाले को स्वीकार करने का मैसेज भेज दे. BDXTransfer ऑब्जेक्ट को डिफ़ॉल्ट सेटिंग पर शुरू किया जाता है. यह किसी भी ऐप्लिकेशन की खास स्थिति (ओपन फ़ाइल हैंडल वगैरह) को aXfer->mAppState में अटैच करने के लिए बेहतर है. आपको ज़रूरी हैंडलर भी अटैच करना चाहिए, जैसे कि तो BDXTransfer ऑब्जेक्ट को हैंडल करने से रोक सकता है. अगर kStatus_Fix के अलावा कोई गड़बड़ी कोड दिखाया जाता है, तो यह माना जाता है कि ट्रांसफ़र अस्वीकार कर दिया गया है. साथ ही, कोड के साथ अस्वीकार करने का मैसेज भेजने के लिए प्रोटोकॉल खुद को मैनेज करेगा.

ब्यौरा
पैरामीटर
[in] aXfer
इस ट्रांसफ़र से जुड़े BDXTransfer की ओर इशारा करें
[in] aReceiveInitMsg
उस ReceiveInit मैसेज की ओर पॉइंट करें जिसे हम प्रोसेस कर रहे हैं

RejectHandler

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

तब शुरू किया गया जब पिछले Init मैसेज में से किसी एक को डेस्टिनेशन ने अस्वीकार कर दिया था.

ब्यौरा
पैरामीटर
[in] aXfer
इस ट्रांसफ़र से जुड़े BDXTransfer की ओर इशारा करें
[in] aReport
स्टेटस रिपोर्ट के मैसेज को अस्वीकार किए जाने के बारे में जानकारी दें, जिसे हम प्रोसेस कर रहे हैं

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->mIsAlloweded=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)

BDX से मिले या भेजे गए TransferError मैसेज को मैनेज करें.

ध्यान दें: यह माना जाता है कि BDX ट्रांसफ़र को वापस मिल सकता है.यह कुछ समय के लिए हो सकता है, जैसे कि PacketBuffers में इस समय हो सकता है. इसलिए, शटडाउन() को कॉल करने का विकल्प, ऐप्लिकेशन प्रोग्रामर और उनके तय किए गए कॉलबैक के पास ही रहता है. TODO: इसे सत्यापित करें और BDX दस्तावेज़ की भाषा के साथ इसका समाधान करें, जिसमें यह लिखा है: "[A TransferError] को कोई भी समय किसी भी समय से समय से पहले भेजा जा सकता है बल्क डेटा ट्रांसफ़र को बंद कर सकें."

ब्यौरा
पैरामीटर
[in] aXfer
इस ट्रांसफ़र से जुड़े BDXTransfer की ओर इशारा करें
[in] aXferError
उस स्थिति की रिपोर्ट करें मैसेज गड़बड़ी की ओर इशारा करें जिसे हम प्रोसेस कर रहे हैं

फ़ंक्शन

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag, एक्सचेंज कॉन्टेक्स्ट के कनेक्शन (टीसीपी के लिए कोई अनुरोध सहमति नहीं) के आधार पर और WRMP के लिए, कंपाइल टाइम सपोर्ट के आधार पर, RequestAck फ़ील्ड के लिए सही फ़्लैग दिखाता है.

ब्यौरा
पैरामीटर
[in] anEc
एक्सचेंज का संदर्भ जिसके आधार पर हमें फ़्लैग लेना चाहिए
लौटाए जाने वाले प्रॉडक्ट
0 या kSendFlag_RequestAck