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
สิ่งที่ต้องทำในไฟล์/บล็อกข้อมูลที่เกี่ยวข้อง: นำเนื้อหานี้ออกหรือไม่ หรือเราควรสัญญาว่าสตริงนี้จะมีหน้าตาอย่างไรและจะนำไปใช้อย่างไร โดยเฉพาะอย่างยิ่ง ได้รับการสนับสนุนจาก PacketBuffer หรือไม่ ถ้ามี ก็ไม่น่าจะอยู่แถวนี้อีกนะ เพราะมันต้องใช้ 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

สิ่งที่ต้องทำในไฟล์/บล็อกข้อมูลที่เกี่ยวข้อง: นำเนื้อหานี้ออกหรือไม่ หรือเราควรสัญญาว่าสตริงนี้จะมีหน้าตาอย่างไรและจะนำไปใช้อย่างไร โดยเฉพาะอย่างยิ่ง ได้รับการสนับสนุนจาก PacketBuffer หรือไม่ ถ้ามี ก็ไม่น่าจะอยู่แถวนี้อีกนะ เพราะมันต้องใช้ 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
)

ผู้มอบหมายงานเพียงตรวจสอบว่าได้ตั้งค่าตัวแฮนเดิลแล้วหรือยัง จากนั้นจึงเรียกใช้หากมีการตั้งค่า

หากตัวแฮนเดิลการรับได้รับการตั้งค่า ให้เรียกใช้

ดังนั้น ควรใช้ชื่อเหล่านี้เป็นอินเทอร์เฟซสาธารณะสำหรับการเรียก Callback ซึ่งแอปพลิเคชันภายนอกไม่ควรสัมผัสโดยตรง อาจเป็นไปได้ว่าการแก้ไข BDXTransfer ในอนาคตจะใช้ออบเจ็กต์ที่มอบสิทธิ์แทนการจัดเก็บตัวชี้แต่ละรายการไปยัง Callback แต่ละรายการ

รายละเอียด
พารามิเตอร์
[in] aReceiveAcceptMsg
ข้อความ ReceiveAccept ที่รอการประมวลผล
การคืนสินค้า
ค่าข้อผิดพลาด

DispatchRejectHandler

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

หากตั้งค่าตัวแฮนเดิลการปฏิเสธไว้ ให้เรียกใช้

หากไม่ได้ตั้งค่าไว้ ให้ปิดการโอนเป็นค่าเริ่มต้นเช่นกัน

รายละเอียด
พารามิเตอร์
[in] aReport
ข้อความ StatusReport ที่จะประมวลผล

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.

รายละเอียด
การคืนสินค้า
true 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.

รายละเอียด
การคืนสินค้า
true 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

คุณควรใช้วิธีนี้เสมอแทนที่จะพยายามตั้งค่าด้วยตนเอง เนื่องจากการใช้งานพื้นฐานของวิธีการจัดเก็บเคอร์เซอร์ของฟังก์ชันตัวแฮนเดิลไม่ได้เป็นส่วนหนึ่งของ API สาธารณะ

รายละเอียด
พารามิเตอร์
[in] aHandlers
โครงสร้างของเครื่องจัดการ Callback ที่จะเรียกใช้

ปิดการทำงาน

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

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

ใช้โอกาสนี้เพื่อปล่อยทรัพยากรที่เชื่อมโยงกับการโอนนี้และตรรกะของแอปพลิเคชันของคุณ