nl::Weave::Profiles::BDX_Development::BDXTransfer

#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>

इस स्ट्रक्चर में, ऐक्टिव BDX ट्रांसफ़र का प्रतिनिधित्व करने वाले डेटा सदस्यों के डेटा को शामिल किया गया है.

खास जानकारी

BdxProtocol इन ऑब्जेक्ट का इस्तेमाल, प्रोटोकॉल की स्थिति बनाए रखने के लिए करता है. इन्हें BdxServer की मदद से मैनेज किया जाता है, जो नए ट्रांसफ़र बनाने और उन्हें शुरू करने का काम करता है. इसमें कनेक्शन और ExchangeContexts को मैनेज करना भी शामिल है.

सार्वजनिक विशेषताएं

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
अगले ब्लॉक नंबर को भेजने के लिए, हम उसे BlockQuery या BlockACK मिलने की उम्मीद करते हैं (ट्रांसफ़र आधिकारिक तौर पर शुरू होने के बाद).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
फ़ाइल/ब्लॉक संबंधित डेटा सदस्यों के लिए TODO: इसे हटाएं? या आपको बस एक अनुबंध करना चाहिए कि यह स्ट्रिंग कैसी दिख सकती है और इसका इस्तेमाल कैसे किया जाएगा? खास तौर पर, क्या यह PacketBuffer का इस्तेमाल करता है? अगर ऐसा है, तो इसे शायद पूरे xfer के लिए नहीं रखना चाहिए, क्योंकि यह एक pbuf लेता है
mFirstQuery
bool
mHandlers
mIsAccepted
bool
mIsCompletedSuccessfully
bool
mIsInitiated
bool
mIsWideRange
bool
mLength
uint64_t
mMaxBlockSize
uint16_t
mNext)(BDXTransfer &)
mStartOffset
uint64_t
mTransferMode
uint8_t
mVersion
uint8_t

सार्वजनिक फ़ंक्शन

DispatchErrorHandler(WEAVE_ERROR anErrorCode)
void
अगर गड़बड़ी हैंडलर सेट किया गया है, तो उसे कॉल करें.
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
अगर 'ब्लॉक करें' हैंडलर सेट किया गया है, तो उसे कॉल करें.
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
अगर पुट ब्लॉक हैंडलर सेट किया गया है, तो उसे कॉल करें.
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
डिस्पैचर सिर्फ़ यह देखते हैं कि कोई हैंडलर सेट किया गया है या नहीं. अगर ऐसा है, तो उसे कॉल किया जाता है.
DispatchRejectHandler(StatusReport *aReport)
void
अगर अस्वीकार करने वाला हैंडलर सेट किया गया है, तो उसे कॉल करें.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
अगर भेजें स्वीकार करने वाला हैंडलर सेट किया गया है, तो उसे कॉल करें.
DispatchXferDoneHandler(void)
void
अगर ट्रांसफ़र हो गया हैंडलर सेट किया गया है, तो उसे कॉल करें.
DispatchXferErrorHandler(StatusReport *aXferError)
void
अगर ट्रांसफ़र से जुड़ी गड़बड़ी को ठीक करने वाला हैंडलर सेट किया गया है, तो उसे कॉल करें.
GetDefaultFlags(bool aExpectResponse)
uint16_t
यह फ़ंक्शन, मैसेज के साथ भेजे जाने वाले डिफ़ॉल्ट फ़्लैग दिखाता है.
IsAsync(void)
bool
 Returns true if this transfer is asynchronous, false otherwise.
IsDriver(void)
bool
 Returns true if this entity (node) is the driver for this transfer, false otherwise.
Reset(void)
void
 Sets all pointers to NULL, resets counters, etc.
SetHandlers(BDXHandlers aHandlers)
void
यह फ़ंक्शन, इस BDXTransfer ऑब्जेक्ट पर हैंडलर सेट करता है.
Shutdown(void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

सार्वजनिक विशेषताएं

mAmInitiator

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmInitiator

mAmSender

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmSender

mAppState

void * nl::Weave::Profiles::BDX_Development::BDXTransfer::mAppState

mBlockCounter

uint32_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBlockCounter

अगले ब्लॉक नंबर को भेजने के लिए, हम उसे BlockQuery या BlockACK मिलने की उम्मीद करते हैं (ट्रांसफ़र आधिकारिक तौर पर शुरू होने के बाद).

रिसीव करते समय, यह अगला BlockSend होगा और हमें सबसे नया BlockQuery मिल सकता है (ट्रांसफ़र के आधिकारिक तौर पर शुरू होने और पहली क्वेरी भेजने के बाद).

mBytesSent

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBytesSent

mExchangeContext

ExchangeContext * nl::Weave::Profiles::BDX_Development::BDXTransfer::mExchangeContext

mFileDesignator

ReferencedString nl::Weave::Profiles::BDX_Development::BDXTransfer::mFileDesignator

फ़ाइल/ब्लॉक संबंधित डेटा सदस्यों के लिए TODO: इसे हटाएं? या आपको बस एक अनुबंध करना चाहिए कि यह स्ट्रिंग कैसी दिख सकती है और इसका इस्तेमाल कैसे किया जाएगा? खास तौर पर, क्या यह PacketBuffer का इस्तेमाल करता है? अगर ऐसा है, तो इसे शायद पूरे xfer के लिए नहीं रखना चाहिए, क्योंकि यह एक pbuf लेता है

mFirstQuery

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mFirstQuery

mHandlers

BDXHandlers nl::Weave::Profiles::BDX_Development::BDXTransfer::mHandlers

mIsAccepted

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsAccepted

mIsCompletedSuccessfully

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsCompletedSuccessfully

mIsInitiated

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsInitiated

mIsWideRange

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsWideRange

mLength

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mLength

mMaxBlockSize

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mMaxBlockSize

mNext

WEAVE_ERROR(* nl::Weave::Profiles::BDX_Development::BDXTransfer::mNext)(BDXTransfer &)

mStartOffset

uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mStartOffset

mTransferMode

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mTransferMode

mVersion

uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mVersion

सार्वजनिक फ़ंक्शन

DispatchErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchErrorHandler(
  WEAVE_ERROR anErrorCode
)

अगर गड़बड़ी हैंडलर सेट किया गया है, तो उसे कॉल करें.

अगर इस नीति को सेट नहीं किया जाता है, तो ट्रांसफ़र को डिफ़ॉल्ट तरीके के तौर पर बंद भी कर दें.

जानकारी
पैरामीटर
[in] anErrorCode
प्रोसेस किया जाने वाला गड़बड़ी कोड

DispatchGetBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler(
  uint64_t *aLength,
  uint8_t **aDataBlock,
  bool *aLastBlock
)

अगर 'ब्लॉक करें' हैंडलर सेट किया गया है, तो उसे कॉल करें.

जानकारी
पैरामीटर
[in] aLength
ब्लॉक की लंबाई
[in] aDataBlock
डेटा ब्लॉक की ओर इशारा करें
[in] aLastBlock
सही है, अगर यह ट्रांसफ़र में आखिरी ब्लॉक है

DispatchPutBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler(
  uint64_t aLength,
  uint8_t *aDataBlock,
  bool aLastBlock
)

अगर पुट ब्लॉक हैंडलर सेट किया गया है, तो उसे कॉल करें.

जानकारी
पैरामीटर
[in] aLength
ब्लॉक की लंबाई
[in] aDataBlock
डेटा ब्लॉक की ओर इशारा करें
[in] aLastBlock
सही है, अगर यह ट्रांसफ़र में आखिरी ब्लॉक है

DispatchReceiveAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept(
  ReceiveAccept *aReceiveAcceptMsg
)

डिस्पैचर सिर्फ़ यह देखते हैं कि कोई हैंडलर सेट किया गया है या नहीं. अगर ऐसा है, तो उसे कॉल किया जाता है.

अगर रिसीव करने वाला हैंडलर सेट किया गया है, तो उसे कॉल करें.

इसलिए, इनका इस्तेमाल, कॉलबैक को कॉल करने के लिए सार्वजनिक इंटरफ़ेस के तौर पर किया जाना चाहिए. इन्हें बाहरी ऐप्लिकेशन से सीधे तौर पर नहीं छूना चाहिए. ऐसा हो सकता है कि आने वाले समय में BDXTransfer पर किए जाने वाले बदलावों में, हर कॉलबैक में अलग-अलग पॉइंटर सेव करने के बजाय, किसी डेलिगेट ऑब्जेक्ट का इस्तेमाल किया जाएगा.

जानकारी
पैरामीटर
[in] aReceiveAcceptMsg
ReceiveAccept मैसेज को प्रोसेस करें
लौटाए जाने वाले प्रॉडक्ट
गड़बड़ी की वैल्यू

DispatchRejectHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler(
  StatusReport *aReport
)

अगर अस्वीकार करने वाला हैंडलर सेट किया गया है, तो उसे कॉल करें.

अगर इस नीति को सेट नहीं किया जाता है, तो ट्रांसफ़र को डिफ़ॉल्ट तरीके के तौर पर बंद भी कर दें.

जानकारी
पैरामीटर
[in] aReport
स्थिति की शिकायत करने वाला मैसेज प्रोसेस होना बाकी है

DispatchSendAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept(
  SendAccept *aSendAcceptMsg
)

अगर भेजें स्वीकार करने वाला हैंडलर सेट किया गया है, तो उसे कॉल करें.

जानकारी
पैरामीटर
[in] aSendAcceptMsg
SendAccept मैसेज को प्रोसेस किया जाना है
लौटाए जाने वाले प्रॉडक्ट
गड़बड़ी की वैल्यू

DispatchXferDoneHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler(
  void
)

अगर ट्रांसफ़र हो गया हैंडलर सेट किया गया है, तो उसे कॉल करें.

अगर इस नीति को सेट नहीं किया जाता है, तो ट्रांसफ़र को डिफ़ॉल्ट तरीके के तौर पर बंद भी कर दें.

DispatchXferErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler(
  StatusReport *aXferError
)

अगर ट्रांसफ़र से जुड़ी गड़बड़ी को ठीक करने वाला हैंडलर सेट किया गया है, तो उसे कॉल करें.

अगर इस नीति को सेट नहीं किया जाता है, तो ट्रांसफ़र को डिफ़ॉल्ट तरीके के तौर पर बंद भी कर दें.

जानकारी
पैरामीटर
[in] aXferError
किसी गड़बड़ी की स्थिति रिपोर्ट को प्रोसेस करना बाकी है

GetDefaultFlags

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags(
  bool aExpectResponse
)

यह फ़ंक्शन, मैसेज के साथ भेजे जाने वाले डिफ़ॉल्ट फ़्लैग दिखाता है.

जानकारी
पैरामीटर
[in] aExpectResponse
क्या हम इस मैसेज के जवाब की उम्मीद करते हैं
लौटाए जाने वाले प्रॉडक्ट
भेजे जाने वाले फ़्लैग

IsAsync

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsAsync(
  void
)

 Returns true if this transfer is asynchronous, false otherwise.

जानकारी
लौटाए जाने वाले प्रॉडक्ट
सही iff ट्रांसफ़र एसिंक्रोनस है.

IsDriver

bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsDriver(
  void
)

 Returns true if this entity (node) is the driver for this transfer, false otherwise.

जानकारी
लौटाए जाने वाले प्रॉडक्ट
सही iff इस इकाई के लिए ही यह इकाई ट्रांसफ़र की जाती है

रीसेट करें

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Reset(
  void
)

 Sets all pointers to NULL, resets counters, etc.

बंद होने पर कॉल किया गया.

SetHandlers

void nl::Weave::Profiles::BDX_Development::BDXTransfer::SetHandlers(
  BDXHandlers aHandlers
)

यह फ़ंक्शन, इस BDXTransfer ऑब्जेक्ट पर हैंडलर सेट करता है.

आपको मैन्युअल तरीके से सेट करने के बजाय, हमेशा इस तरीके का इस्तेमाल करना चाहिए. ऐसा इसलिए, क्योंकि यह सार्वजनिक एपीआई का हिस्सा नहीं है कि हैंडलर फ़ंक्शन पॉइंटर कैसे स्टोर किए जाएं.

जानकारी
पैरामीटर
[in] aHandlers
कॉल किए जाने वाले कॉलबैक हैंडलर का स्ट्रक्चर

बंद करें

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown(
  void
)

 Shuts down the current transfer, including closing any open ExchangeContext.

इस अनुरोध और अपने ऐप्लिकेशन के लॉजिक से जुड़े सभी संसाधनों को खाली करने के लिए, इस अवसर का इस्तेमाल करें.