nl::Weave::Profiles::BDX_Development

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

खास जानकारी

गिनती

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

टाइपडीफ़

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(*
लंबाई की लंबाई के एक DataBlock के ज़रिए बताए गए डेटा के ब्लॉक को हैंडल करें.
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 से मिले या भेजे गए TransferError मैसेज को मैनेज करें.

फ़ंक्शन

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
getBDXAckFlag, Exchange कॉन्टेक्स्ट के कनेक्शन (टीसीपी के लिए कोई अनुरोध स्वीकार नहीं करने) और डब्ल्यूआरएमपी के लिए कंपाइल टाइम सपोर्ट के आधार पर, 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)

लंबाई की लंबाई के एक DataBlock के ज़रिए बताए गए डेटा के ब्लॉक को हैंडल करें.

अगर isLastBlock सही है, तो संभावना है कि इसमें इसे किसी फ़ाइल पर लिखा जाए और बताई गई फ़ाइल को बंद किया जाए.

जानकारी
पैरामीटर
[in] aXfer
इस ट्रांसफ़र से जुड़ा BDXTransfer
[in] aLength
बताए गए ब्लॉक में पढ़े और सेव किए गए डेटा की लंबाई
[in] aDataBlock
डेटा का असल ब्लॉक
[in] aLastBlock
अगर ब्लॉक को BlockEOF के तौर पर मिला है और ट्रांसफ़र पूरा हो गया है, तो वैल्यू 'सही' होगी, नहीं तो 'गलत'. अगर सही है, तो प्रोग्रामर को इस बात को ध्यान में रखते हुए किसी भी फ़ाइल हैंडल को अंतिम रूप देना चाहिए कि X FerDonHandler को इसके बाद कॉल किया जाएगा

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->mIsAllowed=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
उस Status Report मैसेज के अस्वीकार होने की ओर इशारा करें जिसे हम प्रोसेस कर रहे हैं

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->mIsAllowed=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 ट्रांसफ़र को वापस पाया जा सकता है.उदाहरण के लिए, यह कुछ समय के लिए हो सकता है. उदाहरण के लिए, इस समय पैकेट से बाहर. TODO: इसकी पुष्टि करें और इसका मिलान BDX दस्तावेज़ की भाषा से करें, जिसमें यह बताया गया है: "[एकTransferError] बल्क डेटा ट्रांसफ़र को समय से पहले खत्म करने के लिए, किसी भी पक्ष को कभी भी मैसेज भेजा जा सकता है."

जानकारी
पैरामीटर
[in] aXfer
इस ट्रांसफ़र से जुड़े BDXTransfer की ओर कर्सर ले जाएं
[in] aXferError
हम जिस Status Report मैसेज को प्रोसेस कर रहे हैं उस गड़बड़ी की जानकारी दें

फ़ंक्शन

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

getBDXAckFlag, Exchange कॉन्टेक्स्ट के कनेक्शन (टीसीपी के लिए कोई अनुरोध स्वीकार नहीं करने) और डब्ल्यूआरएमपी के लिए कंपाइल टाइम सपोर्ट के आधार पर, requestAck फ़ील्ड के लिए सही फ़्लैग दिखाता है.

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