nl::Weave::Profiles::BDX_Development::BDXTransfer

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

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

Tóm tắt

Các đối tượng này được BdxProtocol sử dụng để duy trì trạng thái giao thức. Chúng do BdxServer quản lý, giúp xử lý việc tạo và khởi tạo các quy trình chuyển dữ liệu mới, bao gồm cả việc quản lý Connections 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 ta dự kiến sẽ nhận được một BlockQuery hoặc BlockACK khi gửi (sau khi quá trình chuyển chính thức bắt đầu).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
TODO: hãy xoá chuỗi này? hay chỉ cần thiết lập một hợp đồng về dạng của chuỗi này và cách sử dụng? Cụ thể, nó có được một Gói đệm hỗ trợ không? Nếu có, có lẽ bạn không nên dùng hết toàn bộ xfer vì như vậy sẽ chiếm 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 trình xử lý lỗi đã được đặt, hãy gọi nó.
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
Nếu đã thiết lập trình xử lý khối lệnh, hãy gọi trình xử lý này.
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
void
Nếu đã thiết lập trình xử lý khối lệnh, hãy gọi hàm này.
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
Trình điều phối chỉ cần kiểm tra xem trình xử lý đã được thiết lập hay chưa rồi gọi nếu đã thiết lập trình xử lý.
DispatchRejectHandler(StatusReport *aReport)
void
Nếu trình xử lý từ chối đã được đặt, hãy gọi nó.
DispatchSendAccept(SendAccept *aSendAcceptMsg)
Nếu đã thiết lập trình xử lý chấp nhận gửi, hãy gọi trình xử lý này.
DispatchXferDoneHandler(void)
void
Nếu trình xử lý chuyển hoàn tất đã được thiết lập, hãy gọi nó.
DispatchXferErrorHandler(StatusReport *aXferError)
void
Nếu trình xử lý lỗi chuyển đã được đặt, hãy gọi trình xử lý này.
GetDefaultFlags(bool aExpectResponse)
uint16_t
Hàm này trả về các cờ mặc định sẽ được gửi cùng với 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 thiết lập các 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

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

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

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

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

TODO: hãy xoá chuỗi này? hay chỉ cần thiết lập một hợp đồng về dạng của chuỗi này và cách sử dụng? Cụ thể, nó có được một Gói đệm hỗ trợ không? Nếu có, có lẽ bạn không nên dùng hết toàn bộ xfer vì như vậy sẽ chiếm 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

Hàm công khai

DispatchErrorHandler

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

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

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

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

DispatchGetBlockHandler

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

Nếu đã thiết lập trình xử lý khối lệnh, hãy gọi trình xử lý này.

Thông tin chi tiết
Các tham số
[in] aLength
Chiều dài của khối
[in] aDataBlock
Con trỏ đến khối dữ liệu
[in] aLastBlock
Đúng nếu đây là lần chặn cuối cùng trong quá trình chuyển

DispatchPutBlockHandler

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

Nếu đã thiết lập trình xử lý khối lệnh, hãy gọi hàm này.

Thông tin chi tiết
Các tham số
[in] aLength
Chiều dài của khối
[in] aDataBlock
Con trỏ đến khối dữ liệu
[in] aLastBlock
Đúng nếu đây là lần chặn cuối cùng trong quá trình chuyển

DispatchReceiveAccept

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

Trình điều phối chỉ cần kiểm tra xem trình xử lý đã được thiết lập hay chưa rồi gọi nếu đã thiết lập trình xử lý.

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

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

Thông tin chi tiết
Các tham số
[in] aReceiveAcceptMsg
Thông báo ReceiveAccept cần được xử lý
Trả về
giá trị sai số

DispatchRejectHandler

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

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

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

Thông tin chi tiết
Các tham số
[in] aReport
Thông báo StatusReport (Báo cáo trạng thái) cần được xử lý

DispatchSendAccept

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

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

Thông tin chi tiết
Các tham số
[in] aSendAcceptMsg
Thư SendAccept cần được xử lý
Trả về
giá trị sai số

DispatchXferDoneHandler

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

Nếu trình xử lý chuyển hoàn tất đã được thiết lập, hãy gọi nó.

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

DispatchXferErrorHandler

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

Nếu trình xử lý lỗi chuyển đã được đặt, hãy gọi trình xử lý này.

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

Thông tin chi tiết
Các tham số
[in] aXferError
Báo cáo trạng thái của lỗi cần được xử lý

GetDefaultFlags

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

Hàm này trả về các cờ mặc định sẽ được gửi cùng với thông báo.

Thông tin chi tiết
Các tham số
[in] aExpectResponse
Nếu chúng tôi muốn nhận được phản hồi cho thông báo này
Trả về
Cờ sẽ được gửi

IsAsync

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 nếu quá trình chuyển không đồng bộ.

IsDriver

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ề
true nếu pháp nhân này là tác nhân gây ra việc chuyển khoả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.

SetHandlers

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

Hàm này thiết lập các trình xử lý trên đối tượng BDXTransfer này.

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

Thông tin chi tiết
Các tham số
[in] aHandlers
Cấu trúc của trình xử lý 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.