nl::Weave::Profiles::BDX_Development::SendInit

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

Thông báo SendInit được dùng để bắt đầu một phiên trao đổi khi người gửi là người khởi tạo.

Tóm tắt

Tính kế thừa

Lớp học con đã biết trực tiếp: nl::Weave::Profiles::BDX_Development::ReceiveInit

Hàm khởi tạo và phá huỷ

SendInit(void)

Loại công khai

MetaDataTLVWriteCallback)(uint8_t *aBuffer, uint16_t aBufferLength, uint16_t &aNumBytesWritten, void *aAppState) typedef
MetaDataTLVWriteCallback cung cấp một phương tiện mà ứng dụng có thể cung cấp SendInit cùng với bất kỳ siêu dữ liệu nào mà họ muốn.

Các thuộc tính công khai

mAsynchronousModeSupported
bool
Đúng nếu chúng tôi có thể hỗ trợ chế độ không đồng bộ.
mDefiniteLength
bool
Đúng nếu có trường độ dài.
mFileDesignator
Chuỗi chứa thông tin đã thương lượng trước.
mLength
uint64_t
Độ dài dữ liệu đề xuất trong quá trình chuyển, là 0 cho vô thời hạn.
mMaxBlockSize
uint16_t
Kích thước khối tối đa được đề xuất để dùng trong quá trình chuyển.
mMetaData
Siêu dữ liệu TLV không bắt buộc.
mMetaDataAppState
void *
Trạng thái ứng dụng không bắt buộc cho Siêu dữ liệu TLV.
mMetaDataWriteCallback
Hàm không bắt buộc để ghi siêu dữ liệu TLV.
mReceiverDriveSupported
bool
Đúng nếu chúng tôi có thể hỗ trợ bộ thu.
mSenderDriveSupported
bool
Đúng nếu chúng tôi có thể hỗ trợ Drive dành cho người gửi.
mStartOffset
uint64_t
Độ lệch đầu của dữ liệu được đề xuất.
mStartOffsetPresent
bool
Đúng nếu có trường bù trừ đầu.
mVersion
uint8_t
Phiên bản của giao thức BDX mà chúng tôi đã quyết định.
mWideRange
bool
Đúng nếu độ lệch và độ dài là 64 bit.

Hàm công khai

init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive, bool aAsynchMode, uint16_t aMaxBlockSize, uint64_t aStartOffset, uint64_t aLength, ReferencedString & aFileDesignator, ReferencedTLVData *aMetaData)
Khởi tạo "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)
Khởi chạy "không rộng" SendInit (độ lệch đầu 32 bit, độ dài 32 bit)
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)
Khởi tạo "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)
Khởi chạy "không rộng" SendInit (độ lệch đầu 32 bit, độ dài 32 bit)
operator==(const SendInit &) const
bool
So sánh bình đẳng giữa các thông báo SendInit.
pack(PacketBuffer *aBuffer)
Đóng gói thông báo gửi khởi tạo vào PacketBuffer.
packedLength(void)
uint16_t
Trả về độ dài đóng gói của thông báo khởi tạo gửi này.

Hàm tĩnh công khai

parse(PacketBuffer *aBuffer, SendInit & aRequest)
Phân tích cú pháp dữ liệu từ PacketBuffer thành định dạng thông báo SendInit.

Loại công khai

MetaDataTLVWriteCallback

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

MetaDataTLVWriteCallback cung cấp một phương tiện mà ứng dụng có thể cung cấp SendInit cùng với bất kỳ siêu dữ liệu nào mà họ muốn.

Ứng dụng có thể thoải mái cung cấp TLV được mã hoá trước (nhanh hơn), mã hoá nhanh (sử dụng ít bộ nhớ hơn), mã hoá từng phần (nhanh hơn một chút khi khởi động), v.v. khi thấy phù hợp.

Trong mọi trường hợp, hệ thống giả định rằng dữ liệu do lệnh gọi lại tạo ra là không đổi đối với một SendInit nhất định, tức là không thay đổi bất kể thời điểm đó được gọi. Lý do là lệnh gọi lại cũng được dùng để tính toán độ dài của bất kỳ TLV nào đã ghi ra và có thể được yêu cầu bất cứ lúc nào.

Chi tiết
Tham số
[in] aBuffer
Vùng đệm đích nơi có thể ghi một số TLV
[in] aBufferLength
Độ dài (tính bằng byte) của vùng đệm đích
[in,out] aNumBytesWritten
Số byte được ghi vào vùng đệm đích
[in] aAppState
Trạng thái ứng dụng do người dùng cung cấp
Giá trị trả về
WEAVE_ERROR
Đã xảy ra lỗi bất kỳ.

Các thuộc tính công khai

mAsynchronousModeSupported

bool mAsynchronousModeSupported

Đúng nếu chúng tôi có thể hỗ trợ chế độ không đồng bộ.

mDefiniteLength

bool mDefiniteLength

Đúng nếu có trường độ dài.

mFileDesignator

ReferencedString mFileDesignator

Chuỗi chứa thông tin đã thương lượng trước.

mLength

uint64_t mLength

Độ dài dữ liệu đề xuất trong quá trình chuyển, là 0 cho vô thời hạn.

mMaxBlockSize

uint16_t mMaxBlockSize

Kích thước khối tối đa được đề xuất để dùng trong quá trình chuyển.

mMetaData

ReferencedTLVData mMetaData

Siêu dữ liệu TLV không bắt buộc.

mMetaDataAppState

void * mMetaDataAppState

Trạng thái ứng dụng không bắt buộc cho Siêu dữ liệu TLV.

mMetaDataWriteCallback

MetaDataTLVWriteCallback mMetaDataWriteCallback

Hàm không bắt buộc để ghi siêu dữ liệu TLV.

mReceiverDriveSupported

bool mReceiverDriveSupported

Đúng nếu chúng tôi có thể hỗ trợ bộ thu.

mSenderDriveSupported

bool mSenderDriveSupported

Đúng nếu chúng tôi có thể hỗ trợ Drive dành cho người gửi.

mStartOffset

uint64_t mStartOffset

Độ lệch đầu của dữ liệu được đề xuất.

mStartOffsetPresent

bool mStartOffsetPresent

Đúng nếu có trường bù trừ đầu.

mVersion

uint8_t mVersion

Phiên bản của giao thức BDX mà chúng tôi đã quyết định.

mWideRange

bool mWideRange

Đúng nếu độ lệch và độ dài là 64 bit.

Hàm công khai

SendInit

 SendInit(
  void
)

khởi tạo

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
)

Khởi tạo "wide" SendInit.

Chi tiết
Tham số
[in] aVersion
Phiên bản BDX mà chúng tôi đang sử dụng
[in] aSenderDrive
Đúng nếu người gửi đang lái xe
[in] aReceiverDrive
Đúng nếu người nhận đang lái xe
[in] aAsynchMode
Đúng nếu thiết bị hỗ trợ chế độ không đồng bộ
[in] aMaxBlockSize
Đề xuất cho kích thước chặn tối đa cho lần chuyển này
[in] aStartOffset
Độ lệch bắt đầu trong tệp mà chúng ta nên bắt đầu
[in] aLength
Độ dài của tệp được truyền – 0 có nghĩa là tệp có thời lượng vô hạn
[in] aFileDesignator
Chuỗi xác định dữ liệu cần chuyển
[in] aMetaData
(không bắt buộc) Dữ liệu bổ sung ở định dạng TLV
Trả về
WEAVE_NO_ERROR nếu thành công

khởi tạo

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
)

Khởi chạy "không rộng" SendInit (độ lệch đầu 32 bit, độ dài 32 bit)

Chi tiết
Tham số
[in] aVersion
Phiên bản BDX mà chúng tôi đang sử dụng
[in] aSenderDrive
Đúng nếu người gửi đang lái xe
[in] aReceiverDrive
Đúng nếu người nhận đang lái xe
[in] aAsynchMode
Đúng nếu thiết bị hỗ trợ chế độ không đồng bộ
[in] aMaxBlockSize
Đề xuất cho kích thước chặn tối đa cho lần chuyển này
[in] aStartOffset
Độ lệch bắt đầu trong tệp mà chúng ta nên bắt đầu
[in] aLength
Độ dài của tệp được truyền – 0 có nghĩa là tệp có thời lượng vô hạn
[in] aFileDesignator
Chuỗi xác định dữ liệu cần chuyển
[in] aMetaData
(không bắt buộc) Dữ liệu bổ sung ở định dạng TLV
Trả về
WEAVE_NO_ERROR nếu thành công

khởi tạo

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
)

Khởi tạo "wide" SendInit.

Chi tiết
Tham số
[in] aVersion
Phiên bản BDX mà chúng tôi đang sử dụng
[in] aSenderDrive
Đúng nếu người gửi đang lái xe
[in] aReceiverDrive
Đúng nếu người nhận đang lái xe
[in] aAsynchMode
Đúng nếu thiết bị hỗ trợ chế độ không đồng bộ
[in] aMaxBlockSize
Đề xuất cho kích thước chặn tối đa cho lần chuyển này
[in] aStartOffset
Độ lệch bắt đầu trong tệp mà chúng ta nên bắt đầu
[in] aLength
Độ dài của tệp được truyền – 0 có nghĩa là tệp có thời lượng vô hạn
[in] aFileDesignator
Chuỗi xác định dữ liệu cần chuyển
[in] aMetaDataWriteCallback
(không bắt buộc) Một hàm để ghi dữ liệu bổ sung ở định dạng TLV
[in] aMetaDataAppState
Ngữ cảnh không bắt buộc được truyền vào aMetaDataWriteCallback
Trả về
WEAVE_NO_ERROR nếu thành công

khởi tạo

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
)

Khởi chạy "không rộng" SendInit (độ lệch đầu 32 bit, độ dài 32 bit)

Chi tiết
Tham số
[in] aVersion
Phiên bản BDX mà chúng tôi đang sử dụng
[in] aSenderDrive
Đúng nếu người gửi đang lái xe
[in] aReceiverDrive
Đúng nếu người nhận đang lái xe
[in] aAsynchMode
Đúng nếu thiết bị hỗ trợ chế độ không đồng bộ
[in] aMaxBlockSize
Đề xuất cho kích thước chặn tối đa cho lần chuyển này
[in] aStartOffset
Độ lệch bắt đầu trong tệp mà chúng ta nên bắt đầu
[in] aLength
Độ dài của tệp được truyền – 0 có nghĩa là tệp có thời lượng vô hạn
[in] aFileDesignator
Chuỗi xác định dữ liệu cần chuyển
[in] aMetaDataWriteCallback
(không bắt buộc) Một hàm để ghi dữ liệu bổ sung ở định dạng TLV
[in] aMetaDataAppState
(không bắt buộc) Ngữ cảnh được chuyển lại vào hàm callback
Trả về
WEAVE_NO_ERROR nếu thành công

toán tử==

bool operator==(
  const SendInit &
) const 

So sánh bình đẳng giữa các thông báo SendInit.

Chi tiết
Tham số
[in] another
Một thông báo SendInit khác để so sánh với thông báo này
Trả về
true iff tất cả các trường đều giống nhau.

gói

WEAVE_ERROR pack(
  PacketBuffer *aBuffer
)

Đóng gói thông báo gửi khởi tạo vào PacketBuffer.

Chi tiết
Tham số
[out] aBuffer
PacketBuffer để đóng gói thông báo SendInit
Giá trị trả về
WEAVE_NO_ERROR
Nếu thành công
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu vùng đệm quá nhỏ

packedLength

uint16_t packedLength(
  void
)

Trả về độ dài đóng gói của thông báo khởi tạo gửi này.

Chi tiết
Trả về
chiều dài của thư khi được đóng gói

Hàm tĩnh công khai

phân tích cú pháp

WEAVE_ERROR parse(
  PacketBuffer *aBuffer,
  SendInit & aRequest
)

Phân tích cú pháp dữ liệu từ PacketBuffer thành định dạng thông báo SendInit.

Chi tiết
Tham số
[in] aBuffer
Con trỏ đến một PacketBuffer có dữ liệu mà chúng tôi muốn phân tích cú pháp
[out] aRequest
Con trỏ đến đối tượng SendInit nơi chúng ta nên lưu trữ kết quả
Giá trị trả về
WEAVE_NO_ERROR
Nếu thành công
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu vùng đệm quá nhỏ