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 หรือไม่ ถ้ามี ก็คงไม่อยู่ต่อทั้งเรื่อง เสียดายเหมือนกัน
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
หากตั้งค่าเครื่องจัดการบล็อก Pull แล้ว ให้เรียกใช้
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 หรือไม่ ถ้ามี ก็คงไม่อยู่ต่อทั้งเรื่อง เสียดายเหมือนกัน

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
)

หากตั้งค่าเครื่องจัดการบล็อก Pull แล้ว ให้เรียกใช้

รายละเอียด
พารามิเตอร์
[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
ข้อความ Status Report ที่จะประมวลผล

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.

รายละเอียด
การส่งคืน
เพราะการโอนเป็นแบบไม่พร้อมกัน

IsDriver

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

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

รายละเอียด
การส่งคืน
จริงไม่ใช่บุคคลผู้นี้เป็นผู้ขับเคลื่อนสำหรับการโอนครั้งนี้

รีเซ็ต

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
โครงสร้างของเครื่องจัดการโค้ดเรียกกลับที่จะเรียกใช้

ปิดการทำงาน

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

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

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