Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

nl::Weave::Hồ sơ::BDX_Growthment::BDXTransfer

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

Cấu trúc này chứa các thành viên dữ liệu đại diện cho quá trình chuyển BDX đang hoạt động.

Tóm tắt

Những đối tượng này được BdxGiao thức sử dụng để duy trì trạng thái giao thức. Công cụ này được BdxServer quản lý, có chức năng xử lý việc tạo và khởi tạo các quá trình chuyển mới, bao gồm quản lý Connect và ExchangeContexts.

Thuộc tính công khai

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
Số khối tiếp theo mà chúng tôi dự kiến sẽ nhận được BlockQuery hoặc BlockACK khi gửi (sau khi quá trình chuyển chính thức).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
các tệp/chặn dữ liệu liên quan đến thành viên VIỆC CẦN LÀM: xóa mục này hay chúng ta chỉ nên thiết lập một hợp đồng nội dung của chuỗi này và cách sử dụng chuỗi đó? Cụ thể, đó có phải là một PacketBuffer hỗ trợ không? Nếu có, việc đó có thể không liên quan đến toàn bộ xfer vì việc đó sẽ chiếm một 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

Hàm công khai

DispatchErrorHandler(WEAVE_ERROR anErrorCode)
void
Nếu bạn đã đặt trình xử lý lỗi, hãy gọi trình xử lý đó.
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
Nếu bạn đã đặt trình xử lý chặn, hãy gọi trình xử lý đó.
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
Nếu bạn đã đặt trình xử lý khối chặn, hãy gọi trình xử lý đó.
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
Điều phối chỉ đơn giản là kiểm tra xem trình xử lý đã được đặt hay chưa và sau đó gọi điện cho trình xử lý đó.
DispatchRejectHandler(StatusReport *aReport)
void
Nếu bạn đã đặt trình xử lý từ chối, hãy gọi trình xử lý đó.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
Nếu bạn đã đặt trình xử lý chấp nhận gửi, hãy gọi trình xử lý đó.
DispatchXferDoneHandler(void)
void
Nếu bạn đã đặt trình xử lý chuyển xong, hãy gọi cho trình xử lý đó.
DispatchXferErrorHandler(StatusReport *aXferError)
void
Nếu bạn đã đặt trình xử lý lỗi chuyển, hãy gọi trình xử lý đó.
GetDefaultFlags(bool aExpectResponse)
uint16_t
Hàm này trả về những cờ mặc định được gửi kèm theo thông báo.
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
Hàm này đặt trình xử lý trên đối tượng BDXTransfer này.
Shutdown(void)
void
 Shuts down the current transfer, including closing any open ExchangeContext.

Thuộc tính công khai

Bộ khởi động

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

mAmGửi

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

Số khối tiếp theo mà chúng tôi dự kiến sẽ nhận được BlockQuery hoặc BlockACK khi gửi (sau khi quá trình chuyển chính thức).

Khi nhận được, đó là BlockSend tiếp theo mà chúng tôi dự kiến sẽ nhận được hoặc BlockQuery tiếp theo mà chúng tôi gửi (sau khi quá trình chuyển bắt đầu chính thức và lượt truy vấn đầu tiên đã gửi).

mBytesGửi

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

mExchangeContext

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

Thiết kế tệp mFile

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

các tệp/chặn dữ liệu liên quan đến thành viên VIỆC CẦN LÀM: xóa mục này hay chúng ta chỉ nên thiết lập một hợp đồng nội dung của chuỗi này và cách sử dụng chuỗi đó? Cụ thể, đó có phải là một PacketBuffer hỗ trợ không? Nếu có, việc đó có thể không liên quan đến toàn bộ xfer vì việc đó sẽ chiếm một pbuf

mFirstQuery

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

trình xử lý

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

Đã chấp nhận mIs

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

thành công

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

Đã khởi tạo

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

Phạm vi dải ô

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

độ dài

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

mMaxBlockSize

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

Tiếp theo

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

phiên bản mVersion

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

Hàm công khai

Trình xử lý lỗi gửi

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

Nếu bạn đã đặt trình xử lý lỗi, hãy gọi trình xử lý đó.

Nếu bạn không đặt chính sách này, hãy tắt quá trình chuyển dưới dạng hành vi mặc định.

Thông tin chi tiết
Các thông số
[in] anErrorCode
Mã lỗi cần xử lý

Gửi trình xử lý

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

Nếu bạn đã đặt trình xử lý chặn, hãy gọi trình xử lý đó.

Thông tin chi tiết
Các thông số
[in] aLength
Độ dài của khối
[in] aDataBlock
Trỏ vào khối dữ liệu
[in] aLastBlock
True nếu đây là khối cuối cùng trong quá trình chuyển

Trình xử lý khối

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

Nếu bạn đã đặt trình xử lý khối chặn, hãy gọi trình xử lý đó.

Thông tin chi tiết
Các thông số
[in] aLength
Độ dài của khối
[in] aDataBlock
Trỏ vào khối dữ liệu
[in] aLastBlock
True nếu đây là khối cuối cùng trong quá trình chuyển

Chấp nhận công văn

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

Điều phối chỉ đơn giản là kiểm tra xem trình xử lý đã được đặt hay chưa và sau đó gọi điện cho trình xử lý đó.

Nếu bạn đã đặt trình xử lý chấp nhận nhận, hãy gọi trình xử lý đó.

Do đó, bạn nên sử dụng các giao diện này làm giao diện công khai cho các lệnh gọi lại, mà bạn không nên chạm trực tiếp vào các ứng dụng bên ngoài. Bản sửa đổi BDXTransfer trong tương lai sẽ dùng đối tượng ủy quyền thay vì lưu trữ từng con trỏ vào từng lệnh gọi lại.

Thông tin chi tiết
Các thông số
[in] aReceiveAcceptMsg
Thông báo Nhận chấp nhận cần được xử lý
Trả về
giá trị lỗi

Trình xử lý gửi từ chối

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

Nếu bạn đã đặt trình xử lý từ chối, hãy gọi trình xử lý đó.

Nếu bạn không đặt chính sách này, hãy tắt quá trình chuyển dưới dạng hành vi mặc định.

Thông tin chi tiết
Các thông số
[in] aReport
Thông báo Trạng thái báo cáo sẽ được xử lý

Gửi đi chấp nhận

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

Nếu bạn đã đặt trình xử lý chấp nhận gửi, hãy gọi trình xử lý đó.

Thông tin chi tiết
Các thông số
[in] aSendAcceptMsg
Thông báo Gửi chấp nhận để được xử lý
Trả về
giá trị lỗi

DispatchXferDoneHandler

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

Nếu bạn đã đặt trình xử lý chuyển xong, hãy gọi cho trình xử lý đó.

Nếu bạn không đặt chính sách này, hãy tắt quá trình chuyển dưới dạng hành vi mặc định.

Trình xử lý lỗi xảy ra

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

Nếu bạn đã đặt trình xử lý lỗi chuyển, hãy gọi trình xử lý đó.

Nếu bạn không đặt chính sách này, hãy tắt quá trình chuyển dưới dạng hành vi mặc định.

Thông tin chi tiết
Các thông số
[in] aXferError
Báo cáo trạng thái về lỗi sẽ được xử lý

GetDefaultFlags

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

Hàm này trả về những cờ mặc định được gửi kèm theo thông báo.

Thông tin chi tiết
Các thông số
[in] aExpectResponse
Nếu chúng tôi dự kiến nhận được thư này
Trả về
Cờ được gửi

Không đồng bộ

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

 Returns true if this transfer is asynchronous, false otherwise.

Thông tin chi tiết
Trả về
true iff, quá trình chuyển không đồng bộ.

Là DriveDriver

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

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

Thông tin chi tiết
Trả về
thực sự là pháp nhân này là người lái xe cho quá trình chuyển này

Đặt lại

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

 Sets all pointers to NULL, resets counters, etc.

Được gọi khi tắt nguồn.

Trình xử lý đã đặt

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

Hàm này đặt trình xử lý trên đối tượng BDXTransfer này.

Bạn phải luôn sử dụng phương pháp này thay vì cố gắng đặt các phương thức này theo cách thủ công vì việc triển khai cơ bản của cách lưu trữ con trỏ hàm của trình xử lý không phải là một phần của API công khai.

Thông tin chi tiết
Các thông số
[in] aHandlers
Cấu trúc của trình xử lý lệnh gọi lại sẽ được gọi

Tắt

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

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

Hãy tận dụng cơ hội này để giải phóng mọi tài nguyên liên quan đến quá trình chuyển này và logic ứng dụng của bạn.