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:: |
|
nl:: |
BlockAck मैसेज का इस्तेमाल करके यह बताया जाता है कि डेटा ब्लॉक है या नहीं. |
nl:: |
BlockAckV1 मैसेज का इस्तेमाल, डेटा के ब्लॉक होने की पुष्टि करने के लिए किया जाता है. |
nl:: |
BlockEOF मैसेज का इस्तेमाल डेटा के आखिरी ब्लॉक को भेजने वाले से पाने वाले को ट्रांसफ़र करने के लिए किया जाता है. |
nl:: |
BlockEOFAck मैसेज का इस्तेमाल करके डेटा के आखिरी ब्लॉक को स्वीकार किया जाता है. |
nl:: |
BlockEOFAckV1 मैसेज का इस्तेमाल, डेटा के आखिरी ब्लॉक को स्वीकार करने के लिए किया जाता है. |
nl:: |
BlockEOFV1 मैसेज का इस्तेमाल डेटा के आखिरी ब्लॉक को भेजने वाले से पाने वाले को ट्रांसफ़र करने के लिए किया जाता है. |
nl:: |
BlockQuery का इस्तेमाल करके यह अनुरोध किया जाता है कि डेटा के एक ब्लॉक को भेजने वाले से पाने वाले को ट्रांसफ़र किया जाए. |
nl:: |
BlockQueryV1 मैसेज का इस्तेमाल डेटा के एक ब्लॉक को भेजने वाले से पाने वाले को ट्रांसफ़र करने का अनुरोध करने के लिए किया जाता है. |
nl:: |
BlockSend मैसेज का इस्तेमाल डेटा के एक ब्लॉक को भेजने वाले से पाने वाले को ट्रांसफ़र करने के लिए किया जाता है. |
nl:: |
BlockSendV1 मैसेज का इस्तेमाल डेटा के एक ब्लॉक को भेजने वाले से पाने वाले को ट्रांसफ़र करने के लिए किया जाता है. |
nl:: |
अगर मैसेज पाने वाला कोई व्यक्ति ही इस प्रक्रिया को शुरू करता है, तो ReceiveAccept मैसेज का इस्तेमाल करके सुझाए गए एक्सचेंज को स्वीकार किया जाएगा. |
nl:: |
अगर रिसीवर ने इस सुविधा को शुरू किया है, तो ReceiveInit मैसेज का इस्तेमाल एक्सचेंज शुरू करने के लिए किया जाएगा. |
nl:: |
अगर ईमेल भेजने वाला व्यक्ति ही इस प्रक्रिया को शुरू कर रहा है, तो ReceiveReject मैसेज का इस्तेमाल करके सुझाए गए एक्सचेंज को अस्वीकार किया जाएगा. |
nl:: |
SendAccept मैसेज का इस्तेमाल करके सुझाए गए एक्सचेंज को स्वीकार किया जाता है. हालांकि, ऐसा तब ही किया जाता है, जब भेजने वाला व्यक्ति ही इस सुविधा को शुरू करता हो. |
nl:: |
SendInit मैसेज का इस्तेमाल एक्सचेंज शुरू करने के लिए किया जाता है जब भेजने वाला ही शुरुआत कर रहा हो. |
nl:: |
SendReject मैसेज का इस्तेमाल, सुझाए गए एक्सचेंज को अस्वीकार करने के लिए किया जाता है. ऐसा तब किया जाता है, जब भेजने वाला व्यक्ति ही इस सुविधा को शुरू करता हो. |
nl:: |
गड़बड़ी के मैसेज का इस्तेमाल, गड़बड़ी की शिकायत करने और एक्सचेंज को रद्द करने के लिए किया जाता है. |
स्ट्रक्चर |
|
---|---|
nl:: |
|
nl:: |
इस स्ट्रक्चर में, ऐक्टिव BDX ट्रांसफ़र का प्रतिनिधित्व करने वाले डेटा सदस्यों के डेटा को शामिल किया गया है. |
नाम स्थान |
|
---|---|
nl:: |
इन्यूमरेशन
@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 लॉग करेगा और प्रोटोकॉल हर ज़रूरी स्थिति को साफ़ करने के लिए काम करेगा.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
GetBlockHandler
void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
Get a block of data to be transmitted.
कॉलर बफ़रिंग स्पेस (बफ़र और उसकी अवधि, जिसे रेफ़रंस के तौर पर पास किया जाता है) उपलब्ध कराता है. Callee (उपयोगकर्ता ऐप्लिकेशन) को दिए गए बफ़र का इस्तेमाल करना चाहिए, लेकिन पुराने सिस्टम के साथ काम करने की वजहों से, वह अपना बफ़र दिखा सकता है. कैली को aLength
से ज़्यादा बाइट नहीं देनी चाहिए. वापस लौटाने पर, aLength
में बफ़र में पढ़े गए बाइट की असल संख्या शामिल होती है.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
PutBlockHandler
void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
लंबाई की लंबाई के aDataBlock से दिए गए डेटा के ब्लॉक को हैंडल करें.
इसमें, उस फ़ाइल को किसी फ़ाइल पर लिखना और उस फ़ाइल को बंद करना शामिल है. ऐसा तब होगा, जब isLastBlock सही से काम कर रहा हो.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
ReceiveAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
कॉलबैक का अनुरोध तब किया जाता है, जब डेस्टिनेशन से ReceiveInit को स्वीकार कर लिया जाता है.
अगर आपने ट्रांसफ़र शुरू करते समय इस अवसर का इस्तेमाल नहीं किया, तो हो सकता है कि आप फ़ाइलों को खोलने या ट्रांसफ़र के लिए संसाधनों का बंटवारा करने के लिए इसका इस्तेमाल करना चाहें.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
ReceiveInitHandler
uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
ReceiveInit मैसेज मिलने पर कॉलबैक का अनुरोध किया गया.
इसका काम यह तय करना है कि क्या आपको मिलने वाले अनुरोध को स्वीकार करना है और अगर हां, तो aXfer->mIsAlloweded=true सेट करें, ताकि प्रोटोकॉल शुरुआत करने वाले को स्वीकार करने का मैसेज भेज दे. BDXTransfer ऑब्जेक्ट को डिफ़ॉल्ट सेटिंग पर शुरू किया जाता है. यह किसी भी ऐप्लिकेशन की खास स्थिति (ओपन फ़ाइल हैंडल वगैरह) को aXfer->mAppState में अटैच करने के लिए बेहतर है. आपको ज़रूरी हैंडलर भी अटैच करना चाहिए, जैसे कि तो BDXTransfer ऑब्जेक्ट को हैंडल करने से रोक सकता है. अगर kStatus_Fix के अलावा कोई गड़बड़ी कोड दिखाया जाता है, तो यह माना जाता है कि ट्रांसफ़र अस्वीकार कर दिया गया है. साथ ही, कोड के साथ अस्वीकार करने का मैसेज भेजने के लिए प्रोटोकॉल खुद को मैनेज करेगा.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
RejectHandler
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
तब शुरू किया गया जब पिछले Init मैसेज में से किसी एक को डेस्टिनेशन ने अस्वीकार कर दिया था.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
SendAcceptHandler
WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
कॉलबैक का अनुरोध तब शुरू हुआ, जब डेस्टिनेशन ने SendInit को स्वीकार किया हो.
अगर आपने ट्रांसफ़र शुरू करते समय इस अवसर का इस्तेमाल नहीं किया, तो हो सकता है कि आप फ़ाइलों को खोलने या ट्रांसफ़र के लिए संसाधनों का बंटवारा करने के लिए इसका इस्तेमाल करना चाहें.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
SendInitHandler
uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
SendInit मैसेज मिलने पर कॉलबैक का अनुरोध किया गया.
इसका काम यह तय करना है कि आपको SendInit को स्वीकार करना है या नहीं. अगर हां, तो aXfer->mIsAlloweded=true सेट करें, ताकि प्रोटोकॉल शुरुआत करने वाले को स्वीकार करने का मैसेज भेज दे. BDXTransfer ऑब्जेक्ट को डिफ़ॉल्ट सेटिंग पर शुरू किया जाता है. यह किसी भी ऐप्लिकेशन की खास स्थिति (ओपन फ़ाइल हैंडल वगैरह) को aXfer->mAppState में अटैच करने के लिए बेहतर है. आपको ज़रूरी हैंडलर भी अटैच करना चाहिए, जैसे कि तो BDXTransfer ऑब्जेक्ट को हैंडल करने से रोक सकता है. अगर WEAVE_NO_ERROR के अलावा कोई अन्य गड़बड़ी कोड मिलता है, तो यह माना जाता है कि ट्रांसफ़र अस्वीकार कर दिया गया है और प्रोटोकॉल, कोड के साथ अस्वीकार मैसेज भेजना हैंडल करेगा.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
ऐसे मामलों को संभालें जहां ट्रांसफ़र पूरा हो जाता है.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
XferErrorHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
BDX से मिले या भेजे गए TransferError मैसेज को मैनेज करें.
ध्यान दें: यह माना जाता है कि BDX ट्रांसफ़र को वापस मिल सकता है.यह कुछ समय के लिए हो सकता है, जैसे कि PacketBuffers में इस समय हो सकता है. इसलिए, शटडाउन() को कॉल करने का विकल्प, ऐप्लिकेशन प्रोग्रामर और उनके तय किए गए कॉलबैक के पास ही रहता है. TODO: इसे सत्यापित करें और BDX दस्तावेज़ की भाषा के साथ इसका समाधान करें, जिसमें यह लिखा है: "[A TransferError] को कोई भी समय किसी भी समय से समय से पहले भेजा जा सकता है बल्क डेटा ट्रांसफ़र को बंद कर सकें."
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
फ़ंक्शन
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag, एक्सचेंज कॉन्टेक्स्ट के कनेक्शन (टीसीपी के लिए कोई अनुरोध सहमति नहीं) के आधार पर और WRMP के लिए, कंपाइल टाइम सपोर्ट के आधार पर, RequestAck फ़ील्ड के लिए सही फ़्लैग दिखाता है.
ब्यौरा | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए जाने वाले प्रॉडक्ट |
0 या kSendFlag_RequestAck
|