nl::Weave::โปรไฟล์::BDX_ Developmentment::SendInit

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

ข้อความ SendInit จะใช้เพื่อเริ่มการแลกเปลี่ยนเมื่อผู้ส่งเป็นผู้เริ่ม

สรุป

การสืบทอด

คลาสย่อยที่รู้จักโดยตรง: nl::Weave::Profiles::BDX_ Developmentment::ReceiveInit

เครื่องมือสร้างและตัวสร้าง

SendInit(void)

ประเภทสาธารณะ

MetaDataTLVWriteCallback)(uint8_t *aBuffer, uint16_t aBufferLength, uint16_t &aNumBytesWritten, void *aAppState) Typedef
MetaDataTLVWriteCallback จะกําหนดวิธีที่ไคลเอ็นต์จะส่ง SendInit พร้อมข้อมูลเมตาที่ต้องการ

แอตทริบิวต์สาธารณะ

mAsynchronousModeSupported
bool
เป็นจริงหากเรารองรับโหมดไม่พร้อมกัน
mDefiniteLength
bool
จริง หากมีช่องความยาวแสดงอยู่
mFileDesignator
สตริงที่มีข้อมูลที่เจรจาต่อรองล่วงหน้า
mLength
uint64_t
ความยาวของข้อมูลที่เสนอในการโอนคือ 0 สําหรับการไม่จํากัด
mMaxBlockSize
uint16_t
ขนาดบล็อกสูงสุดที่เสนอในการโอน
mMetaData
ข้อมูลเมตา TLV (ไม่บังคับ)
mMetaDataAppState
void *
สถานะแอปที่ไม่บังคับสําหรับข้อมูลเมตา TLV
mMetaDataWriteCallback
ฟังก์ชันที่ไม่บังคับสําหรับเขียนข้อมูลเมตา TLV
mReceiverDriveSupported
bool
เป็นจริงหากเราสามารถรองรับไดรฟ์ของผู้รับได้
mSenderDriveSupported
bool
เป็นจริงหากเราสามารถรองรับไดรฟ์ของผู้ส่ง
mStartOffset
uint64_t
ออฟเซ็ตข้อมูลที่แนะนําที่เสนอ
mStartOffsetPresent
bool
เป็นจริงหากมีช่องออฟเซ็ตเริ่มต้นแสดงอยู่
mVersion
uint8_t
เวอร์ชันของโปรโตคอล BDX ที่เราตัดสินใจแล้ว
mWideRange
bool
เป็นจริงหากออฟเซ็ตและความยาวคือ 64 บิต

ฟังก์ชันสาธารณะ

init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive, bool aAsynchMode, uint16_t aMaxBlockSize, uint64_t aStartOffset, uint64_t aLength, ReferencedString & aFileDesignator, ReferencedTLVData *aMetaData)
กําหนดค่า "wide" SendInit
init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive, bool aAsynchMode, uint16_t aMaxBlockSize, uint32_t aStartOffset, uint32_t aLength, ReferencedString & aFileDesignator, ReferencedTLVData *aMetaData)
กําหนดค่า "non-wide" SendInit (ออฟเซ็ตเริ่มต้น 32 บิต ความยาว 32 บิต)
init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive, bool aAsynchMode, uint16_t aMaxBlockSize, uint64_t aStartOffset, uint64_t aLength, ReferencedString & aFileDesignator, MetaDataTLVWriteCallback aMetaDataWriteCallback, void *aMetaDataAppState)
กําหนดค่า "wide" SendInit
init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive, bool aAsynchMode, uint16_t aMaxBlockSize, uint32_t aStartOffset, uint32_t aLength, ReferencedString & aFileDesignator, MetaDataTLVWriteCallback aMetaDataWriteCallback, void *aMetaDataAppState)
กําหนดค่า "non-wide" SendInit (ออฟเซ็ตเริ่มต้น 32 บิต ความยาว 32 บิต)
operator==(const SendInit &) const
bool
การเปรียบเทียบความเท่าเทียมกันระหว่างข้อความ SendInit
pack(PacketBuffer *aBuffer)
บรรจุข้อความ ลองดู init ไว้ใน PacketBuffer
packedLength(void)
uint16_t
ส่งคืนความยาวของแพ็กเก็ตของข้อความ init นี้

ฟังก์ชันสาธารณะแบบคงที่

parse(PacketBuffer *aBuffer, SendInit & aRequest)
แยกวิเคราะห์ข้อมูลจาก PacketBuffer เป็นรูปแบบข้อความ SendInit

ประเภทสาธารณะ

MetaDataTLVWriteCallback

WEAVE_ERROR(* MetaDataTLVWriteCallback)(uint8_t *aBuffer, uint16_t aBufferLength, uint16_t &aNumBytesWritten, void *aAppState)

MetaDataTLVWriteCallback จะกําหนดวิธีที่ไคลเอ็นต์จะส่ง SendInit พร้อมข้อมูลเมตาที่ต้องการ

ไคลเอ็นต์มีโค้ด TLV ที่เข้ารหัสไว้ล่วงหน้า (เร็วกว่า) เข้ารหัสได้ทันที (ใช้หน่วยความจําน้อยลง) เข้ารหัสแบบ Lazy Loading (เมื่อลิตเติลโหลดได้เร็วขึ้นเมื่อเริ่มต้นใช้งาน) ฯลฯ เมื่อเห็นว่าเหมาะสม

ในทุกกรณี ระบบจะถือว่าข้อมูลที่สร้างขึ้นจากโค้ดเรียกกลับเป็นค่าคงที่สําหรับ SendInit ที่กําหนด กล่าวคือ จะไม่มีการเปลี่ยนแปลงใดๆ เมื่อมีการเรียกใช้ เนื่องจากระบบจะใช้โค้ดเรียกกลับในการคํานวณความยาวของ TLV แบบเขียนออกมาด้วย ซึ่งระบบขอได้ทุกเมื่อ

รายละเอียด
พารามิเตอร์
[in] aBuffer
บัฟเฟอร์ปลายทางที่ระบุ TLV ได้
[in] aBufferLength
ความยาว (เป็นไบต์) ของบัฟเฟอร์ปลายทาง
[in,out] aNumBytesWritten
จํานวนไบต์ที่เขียนไปยังบัฟเฟอร์ปลายทาง
[in] aAppState
สถานะแอปที่ผู้ใช้ให้ไว้
แสดงผลค่า
WEAVE_ERROR
พบข้อผิดพลาด

แอตทริบิวต์สาธารณะ

รองรับ mAsแบบอะซิงโครนัสMode

bool mAsynchronousModeSupported

เป็นจริงหากเรารองรับโหมดไม่พร้อมกัน

mDefiniteLength

bool mDefiniteLength

จริง หากมีช่องความยาวแสดงอยู่

mFileDesignator

ReferencedString mFileDesignator

สตริงที่มีข้อมูลที่เจรจาต่อรองล่วงหน้า

mm

uint64_t mLength

ความยาวของข้อมูลที่เสนอในการโอนคือ 0 สําหรับการไม่จํากัด

ขนาดบล็อกสูงสุด

uint16_t mMaxBlockSize

ขนาดบล็อกสูงสุดที่เสนอในการโอน

mMetaData

ReferencedTLVData mMetaData

ข้อมูลเมตา TLV (ไม่บังคับ)

mMetaDataAppState

void * mMetaDataAppState

สถานะแอปที่ไม่บังคับสําหรับข้อมูลเมตา TLV

mMetaDataWrite การติดต่อกลับ

MetaDataTLVWriteCallback mMetaDataWriteCallback

ฟังก์ชันที่ไม่บังคับสําหรับเขียนข้อมูลเมตา TLV

รองรับ mReceiverDrive

bool mReceiverDriveSupported

เป็นจริงหากเราสามารถรองรับไดรฟ์ของผู้รับได้

mSenderDriveSupported

bool mSenderDriveSupported

เป็นจริงหากเราสามารถรองรับไดรฟ์ของผู้ส่ง

mStartOffset

uint64_t mStartOffset

ออฟเซ็ตข้อมูลที่แนะนําที่เสนอ

mStartOffset ปัจจุบัน

bool mStartOffsetPresent

เป็นจริงหากมีช่องออฟเซ็ตเริ่มต้นแสดงอยู่

เวอร์ชัน m

uint8_t mVersion

เวอร์ชันของโปรโตคอล BDX ที่เราตัดสินใจแล้ว

ช่วงที่กว้าง

bool mWideRange

เป็นจริงหากออฟเซ็ตและความยาวคือ 64 บิต

ฟังก์ชันสาธารณะ

SendInit

 SendInit(
  void
)

init

WEAVE_ERROR init(
  uint8_t aVersion,
  bool aSenderDrive,
  bool aReceiverDrive,
  bool aAsynchMode,
  uint16_t aMaxBlockSize,
  uint64_t aStartOffset,
  uint64_t aLength,
  ReferencedString & aFileDesignator,
  ReferencedTLVData *aMetaData
)

กําหนดค่า "wide" SendInit

รายละเอียด
พารามิเตอร์
[in] aVersion
เวอร์ชันของ BDX ที่เราใช้
[in] aSenderDrive
เป็นจริงหากผู้ส่งกําลังขับรถ
[in] aReceiverDrive
เป็นจริงหากผู้รับกําลังขับรถ
[in] aAsynchMode
เป็นจริงหากอุปกรณ์รองรับโหมดแบบอะซิงโครนัส
[in] aMaxBlockSize
ข้อเสนอสําหรับขนาดบล็อกสูงสุดสําหรับการโอนนี้
[in] aStartOffset
เริ่มออฟเซ็ตในไฟล์ที่เราควรเริ่มที่
[in] aLength
ความยาวของไฟล์ที่จะโอน - 0 หมายถึงไม่จํากัดความยาว
[in] aFileDesignator
สตริงที่ระบุข้อมูลที่จะโอน
[in] aMetaData
(ไม่บังคับ) ข้อมูลเพิ่มเติมในรูปแบบ TLV
การคืนสินค้า
WEhave_NO_ERROR หากสําเร็จ

init

WEAVE_ERROR init(
  uint8_t aVersion,
  bool aSenderDrive,
  bool aReceiverDrive,
  bool aAsynchMode,
  uint16_t aMaxBlockSize,
  uint32_t aStartOffset,
  uint32_t aLength,
  ReferencedString & aFileDesignator,
  ReferencedTLVData *aMetaData
)

กําหนดค่า "non-wide" SendInit (ออฟเซ็ตเริ่มต้น 32 บิต ความยาว 32 บิต)

รายละเอียด
พารามิเตอร์
[in] aVersion
เวอร์ชันของ BDX ที่เราใช้
[in] aSenderDrive
เป็นจริงหากผู้ส่งกําลังขับรถ
[in] aReceiverDrive
เป็นจริงหากผู้รับกําลังขับรถ
[in] aAsynchMode
เป็นจริงหากอุปกรณ์รองรับโหมดแบบอะซิงโครนัส
[in] aMaxBlockSize
ข้อเสนอสําหรับขนาดบล็อกสูงสุดสําหรับการโอนนี้
[in] aStartOffset
เริ่มออฟเซ็ตในไฟล์ที่เราควรเริ่มที่
[in] aLength
ความยาวของไฟล์ที่จะโอน - 0 หมายถึงไม่จํากัดความยาว
[in] aFileDesignator
สตริงที่ระบุข้อมูลที่จะโอน
[in] aMetaData
(ไม่บังคับ) ข้อมูลเพิ่มเติมในรูปแบบ TLV
การคืนสินค้า
WEhave_NO_ERROR หากสําเร็จ

init

WEAVE_ERROR init(
  uint8_t aVersion,
  bool aSenderDrive,
  bool aReceiverDrive,
  bool aAsynchMode,
  uint16_t aMaxBlockSize,
  uint64_t aStartOffset,
  uint64_t aLength,
  ReferencedString & aFileDesignator,
  MetaDataTLVWriteCallback aMetaDataWriteCallback,
  void *aMetaDataAppState
)

กําหนดค่า "wide" SendInit

รายละเอียด
พารามิเตอร์
[in] aVersion
เวอร์ชันของ BDX ที่เราใช้
[in] aSenderDrive
เป็นจริงหากผู้ส่งกําลังขับรถ
[in] aReceiverDrive
เป็นจริงหากผู้รับกําลังขับรถ
[in] aAsynchMode
เป็นจริงหากอุปกรณ์รองรับโหมดแบบอะซิงโครนัส
[in] aMaxBlockSize
ข้อเสนอสําหรับขนาดบล็อกสูงสุดสําหรับการโอนนี้
[in] aStartOffset
เริ่มออฟเซ็ตในไฟล์ที่เราควรเริ่มที่
[in] aLength
ความยาวของไฟล์ที่จะโอน - 0 หมายถึงไม่จํากัดความยาว
[in] aFileDesignator
สตริงที่ระบุข้อมูลที่จะโอน
[in] aMetaDataWriteCallback
(ไม่บังคับ) ฟังก์ชันสําหรับเขียนข้อมูลเพิ่มเติมในรูปแบบ TLV
[in] aMetaDataAppState
บริบทที่ไม่บังคับสําหรับส่งผ่านลงใน aMetaDataWriteCallback
การคืนสินค้า
WEhave_NO_ERROR หากสําเร็จ

init

WEAVE_ERROR init(
  uint8_t aVersion,
  bool aSenderDrive,
  bool aReceiverDrive,
  bool aAsynchMode,
  uint16_t aMaxBlockSize,
  uint32_t aStartOffset,
  uint32_t aLength,
  ReferencedString & aFileDesignator,
  MetaDataTLVWriteCallback aMetaDataWriteCallback,
  void *aMetaDataAppState
)

กําหนดค่า "non-wide" SendInit (ออฟเซ็ตเริ่มต้น 32 บิต ความยาว 32 บิต)

รายละเอียด
พารามิเตอร์
[in] aVersion
เวอร์ชันของ BDX ที่เราใช้
[in] aSenderDrive
เป็นจริงหากผู้ส่งกําลังขับรถ
[in] aReceiverDrive
เป็นจริงหากผู้รับกําลังขับรถ
[in] aAsynchMode
เป็นจริงหากอุปกรณ์รองรับโหมดแบบอะซิงโครนัส
[in] aMaxBlockSize
ข้อเสนอสําหรับขนาดบล็อกสูงสุดสําหรับการโอนนี้
[in] aStartOffset
เริ่มออฟเซ็ตในไฟล์ที่เราควรเริ่มที่
[in] aLength
ความยาวของไฟล์ที่จะโอน - 0 หมายถึงไม่จํากัดความยาว
[in] aFileDesignator
สตริงที่ระบุข้อมูลที่จะโอน
[in] aMetaDataWriteCallback
(ไม่บังคับ) ฟังก์ชันสําหรับเขียนข้อมูลเพิ่มเติมในรูปแบบ TLV
[in] aMetaDataAppState
(ไม่บังคับ) บริบทที่จะส่งกลับไปยังฟังก์ชันเรียกกลับ
การคืนสินค้า
WEhave_NO_ERROR หากสําเร็จ

โอเปอเรเตอร์==

bool operator==(
  const SendInit &
) const 

การเปรียบเทียบความเท่าเทียมกันระหว่างข้อความ SendInit

รายละเอียด
พารามิเตอร์
[in] another
ข้อความ SendInit อีกข้อความเพื่อเปรียบเทียบกับ
การคืนสินค้า
ทั้ง 2 ช่องมีช่องที่เหมือนกันทั้งหมด

แพ็ก

WEAVE_ERROR pack(
  PacketBuffer *aBuffer
)

บรรจุข้อความ ลองดู init ไว้ใน PacketBuffer

รายละเอียด
พารามิเตอร์
[out] aBuffer
PacketBuffer เพื่อบรรจุข้อความ SendInit ใน
แสดงผลค่า
WEAVE_NO_ERROR
หากสําเร็จ
WEAVE_ERROR_BUFFER_TOO_SMALL
หากบัฟเฟอร์เล็กเกินไป

ความยาวของกล่องบรรจุ

uint16_t packedLength(
  void
)

ส่งคืนความยาวของแพ็กเก็ตของข้อความ init นี้

รายละเอียด
การคืนสินค้า
ความยาวของข้อความเมื่อบรรจุ

ฟังก์ชันสาธารณะแบบคงที่

แยกวิเคราะห์

WEAVE_ERROR parse(
  PacketBuffer *aBuffer,
  SendInit & aRequest
)

แยกวิเคราะห์ข้อมูลจาก PacketBuffer เป็นรูปแบบข้อความ SendInit

รายละเอียด
พารามิเตอร์
[in] aBuffer
ชี้ไปที่ PacketBuffer ซึ่งมีข้อมูลที่เราต้องการแยกวิเคราะห์
[out] aRequest
ชี้ไปที่ออบเจ็กต์ SendInit ที่เราควรจัดเก็บผลลัพธ์
แสดงผลค่า
WEAVE_NO_ERROR
หากสําเร็จ
WEAVE_ERROR_BUFFER_TOO_SMALL
หากบัฟเฟอร์เล็กเกินไป