nl:: Weave:: Profiles:: BDX_Development
Không gian tên này bao gồm tất cả các giao diện trong cấu hình Weave dành cho cấu hình Chuyển dữ liệu hàng loạt (BDX) đang trong quá trình phát triển và không được dùng để dùng cho việc phát hành chính thức.
Tóm tắt
Bảng liệt kê |
|
---|---|
@80
|
enum |
@81
|
enum |
@82
|
enum |
@83
|
enum |
Typedef |
|
---|---|
BdxClient
|
typedef |
BdxServer
|
typedef |
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
|
typedefvoid(*
Trình xử lý này được gọi mỗi khi gặp lỗi Weave mà không thể trả về trực tiếp thông qua mã lỗi cho luồng điều khiển do ứng dụng do người dùng xác định. |
GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
|
typedefvoid(*
Get a block of data to be transmitted. |
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
|
typedefvoid(*
Xử lý khối dữ liệu được trỏ đến bởi aDataBlock có độ dài aLength. |
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
|
typedef Lệnh gọi lại được gọi khi đích đến chấp nhận ReceiveInit đã gửi trước đó. |
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
|
typedefuint16_t(*
Lệnh gọi lại được gọi khi nhận được thông báo ReceiveInit. |
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
|
typedefvoid(*
Được gọi nếu một trong các thông báo Init trước đó bị đích đến từ chối. |
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
|
typedef Lệnh gọi lại được gọi khi đích đến chấp nhận SendInit đã gửi trước đó. |
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
|
typedefuint16_t(*
Lệnh gọi lại được gọi khi nhận được thông báo SendInit. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
Xử lý các trường hợp đã chuyển xong. |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
Xử lý thông báo TransferError do BDX nhận hoặc gửi. |
Hàm |
|
---|---|
GetBDXAckFlag(ExchangeContext *anEc)
|
uint16_t
GetBDXAckFlag trả về cờ thích hợp cho trường RequestAck tuỳ thuộc vào kết nối của ngữ cảnh trao đổi (không xác định yêu cầu đối với TCP) và dựa trên khả năng hỗ trợ thời gian biên dịch của WRMP.
|
Lớp |
|
---|---|
nl:: |
|
nl:: |
Thông báo BlockAck được dùng để xác nhận một khối dữ liệu. |
nl:: |
Thông báo BlockAckV1 được dùng để xác nhận một khối dữ liệu. |
nl:: |
Thông báo BlockEOF được dùng để chuyển khối dữ liệu cuối cùng từ người gửi sang người nhận. |
nl:: |
Thông báo BlockEOFAck được dùng để xác nhận khối dữ liệu cuối cùng. |
nl:: |
Thông báo BlockEOFAckV1 được dùng để xác nhận khối dữ liệu cuối cùng. |
nl:: |
Thông báo BlockEOFV1 được dùng để chuyển khối dữ liệu cuối cùng từ người gửi sang người nhận. |
nl:: |
Thông báo BlockQuery được dùng để yêu cầu chuyển một khối dữ liệu từ người gửi sang người nhận. |
nl:: |
Thông báo BlockQueryV1 dùng để yêu cầu chuyển một khối dữ liệu từ người gửi sang người nhận. |
nl:: |
Thông báo BlockSend được dùng để chuyển một khối dữ liệu từ người gửi sang người nhận. |
nl:: |
Thông báo BlockSendV1 được dùng để chuyển một khối dữ liệu từ người gửi sang người nhận. |
nl:: |
Thông báo ReceiveAccept để chấp nhận trao đổi được đề xuất khi người nhận là người tạo. |
nl:: |
Thông báo ReceiveInit được dùng để bắt đầu trao đổi khi trình nhận là người tạo. |
nl:: |
Thông báo ReceiveReject được dùng để từ chối một cuộc trao đổi được đề xuất khi người gửi là người tạo. |
nl:: |
Thông báo SendAccept dùng để chấp nhận giao dịch trao đổi được đề xuất khi người gửi là người tạo. |
nl:: |
Tin nhắn SendInit được dùng để bắt đầu quá trình trao đổi khi người gửi là người tạo. |
nl:: |
Thông báo SendReject dùng để từ chối một giao dịch trao đổi được đề xuất khi người gửi là người tạo. |
nl:: |
Thông báo Lỗi được dùng để báo cáo lỗi và huỷ quá trình trao đổi. |
Cấu trúc |
|
---|---|
nl:: |
|
nl:: |
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. |
Không gian tên |
|
---|---|
nl:: |
Bảng liệt kê
@80
@80
@81
@81
@82
@82
@83
@83
Typedef
BdxClient
BdxNode BdxClient
BdxServer
BdxNode BdxServer
ErrorHandler
void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
Trình xử lý này được gọi mỗi khi gặp lỗi Weave mà không thể trả về trực tiếp thông qua mã lỗi cho luồng điều khiển do ứng dụng do người dùng xác định.
Nghĩa là, nếu xảy ra lỗi trong một trình xử lý khác có chữ ký không có loại trả về (ví dụ: để phản hồi một thông báo Weave đến hoặc thậm chí được gửi đi bởi giao thức), trình xử lý này sẽ được gọi để người dùng có thể xác định xem liệu quá trình truyền có thể được khôi phục và tiếp tục hay không hoặc nếu họ nên gọi Shutdown(). Lưu ý rằng có thể xảy ra lỗi trước khi khởi tạo BDXTransfer (ví dụ: đã có quá nhiều đối tượng truyền được phân bổ). Trong trường hợp như vậy, lỗi đã nêu sẽ được Weave ghi lại và giao thức sẽ xử lý việc xoá mọi trạng thái cần thiết mà giao thức đã phân bổ.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
GetBlockHandler
void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
Get a block of data to be transmitted.
Phương thức gọi cung cấp không gian lưu vào bộ đệm (vùng đệm và độ dài của vùng đệm, được truyền vào bằng tham chiếu). Hàm được gọi (ứng dụng người dùng) PHẢI dùng vùng đệm được cung cấp. Tuy nhiên, vì lý do tương thích ngược, có thể trả về vùng đệm của riêng nó. Hàm được gọi không được cung cấp nhiều hơn aLength
byte. Khi trả về, aLength
chứa số byte thực tế được đọc vào vùng đệm.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các tham số |
|
PutBlockHandler
void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
Xử lý khối dữ liệu được trỏ đến bởi aDataBlock có độ dài aLength.
Có thể điều này sẽ liên quan đến việc ghi nó vào một tệp và đóng tệp đã nêu nếu isLastBlock là true.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các tham số |
|
ReceiveAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
Lệnh gọi lại được gọi khi đích đến chấp nhận ReceiveInit đã gửi trước đó.
Bạn nên tận dụng cơ hội này để mở tệp hoặc phân bổ tài nguyên cho quá trình chuyển nếu chưa thực hiện việc này khi bắt đầu.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
ReceiveInitHandler
uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
Lệnh gọi lại được gọi khi nhận được thông báo ReceiveInit.
Nhiệm vụ của chương trình là xác định xem bạn có muốn chấp nhận receiver hay không. Nếu có, hãy thiết lập aXfer->mIs accepted=true để giao thức gửi thông báo chấp nhận đến trình khởi tạo. Đối tượng BDXTransfer được khởi tạo theo chế độ cài đặt mặc định. Đây là nơi phù hợp để đính kèm mọi trạng thái dành riêng cho ứng dụng (mở tệp điều khiển, v.v.) vào aXfer->mAppState. Tại thời điểm này, bạn cũng nên đính kèm các trình xử lý cần thiết, ví dụ: xử lý khối vào đối tượng BDXTransfer. Nếu mã lỗi không phải là kStatus_Success được trả về, quá trình chuyển được coi là bị từ chối và giao thức sẽ xử lý việc gửi thông báo từ chối kèm theo mã.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
RejectHandler
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
Được gọi nếu một trong các thông báo Init trước đó bị đích đến từ chối.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
SendAcceptHandler
WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
Lệnh gọi lại được gọi khi đích đến chấp nhận SendInit đã gửi trước đó.
Bạn nên tận dụng cơ hội này để mở tệp hoặc phân bổ tài nguyên cho quá trình chuyển nếu chưa thực hiện việc này khi bắt đầu.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
SendInitHandler
uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
Lệnh gọi lại được gọi khi nhận được thông báo SendInit.
Nhiệm vụ của chương trình là xác định xem bạn có muốn chấp nhận SendInit hay không và nếu có, hãy thiết lập aXfer->mIsRequired=true để giao thức gửi thông báo chấp nhận đến trình khởi tạo. Đối tượng BDXTransfer được khởi tạo theo chế độ cài đặt mặc định. Đây là nơi phù hợp để đính kèm mọi trạng thái dành riêng cho ứng dụng (mở tệp điều khiển, v.v.) vào aXfer->mAppState. Tại thời điểm này, bạn cũng nên đính kèm các trình xử lý cần thiết, ví dụ: xử lý khối vào đối tượng BDXTransfer. Nếu một mã lỗi khác WEAVE_NO_ERROR được trả về, quá trình chuyển được coi là bị từ chối và giao thức sẽ xử lý việc gửi thông báo từ chối kèm theo mã này.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Xử lý các trường hợp đã chuyển xong.
Thông tin chi tiết | |||
---|---|---|---|
Các tham số |
|
XferErrorHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
Xử lý thông báo TransferError do BDX nhận hoặc gửi.
Lưu ý: Quá trình chuyển BDX được cho là có khả năng khôi phục (có thể là tạm thời, chẳng hạn như hết Gói đệm vào lúc này), do đó tuỳ chọn gọi Shutdown() được để lại cho lập trình viên ứng dụng và các lệnh gọi lại mà họ xác định. VIỆC CẦN LÀM: xác minh thông tin này và điều chỉnh lại với ngôn ngữ trong tài liệu BDX, trong đó có nêu rõ: "[A TransferError] Có thể được một trong hai bên gửi bất cứ lúc nào để kết thúc sớm hoạt động chuyển dữ liệu hàng loạt".
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
Hàm
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag trả về cờ thích hợp cho trường RequestAck tuỳ thuộc vào kết nối của ngữ cảnh trao đổi (không xác định yêu cầu đối với TCP) và dựa trên khả năng hỗ trợ thời gian biên dịch của WRMP.
Thông tin chi tiết | |||
---|---|---|---|
Các tham số |
|
||
Trả về |
0 hoặc kSendFlag_RequestAck
|