nl:: Weave:: Hồ sơ:: BDX_Phát triển
Vùng chứa tên này bao gồm tất cả giao diện trong Weave cho cấu hình Chuyển dữ liệu hàng loạt (BDX) đang tích cực phát triển và không được dùng cho mục đích sản xuất.
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 bất cứ khi nào gặp lỗi Weave mà không thể trả về trực tiếp qua mã lỗi vào luồng điều khiển do ứng dụng xác định bởi người dùng. |
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 do aDataBlock có độ dài a a trỏ đến. |
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
|
typedef Lệnh gọi lại được gọi khi đích nhận bInInit đã gửi trước đó được chấp nhận. |
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
|
typedefuint16_t(*
Lệnh gọi lại được gọi khi nhận thông báo RecipientInit. |
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
|
typedefvoid(*
Được gọi nếu một trong các thông báo Init trước đó đã bị từ chối. |
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
|
typedef Lệnh gọi lại được gọi khi đích SendInit đã gửi trước đó được chấp nhận. |
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
|
typedefuint16_t(*
Lệnh gọi lại được gọi khi nhận thông báo GửiInit. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
Xử lý các trường hợp khi quá trình chuyển hoàn tất. |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
Xử lý các thông báo TransferLỗi đã nhận được hoặc được gửi từ BDX. |
Hàm |
|
---|---|
GetBDXAckFlag(ExchangeContext *anEc)
|
uint16_t
GetBDXAckFlag trả về cờ phù hợp cho trường RequestAck tùy thuộc vào kết nối của ngữ cảnh trao đổi (không có yêu cầu đối với TCP) và dựa trên hỗ trợ thời gian biên dịch cho WRMP.
|
Lớp |
|
---|---|
nl:: |
|
nl:: |
Thông báo BlockAck 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 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 đượ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 BlockBlock 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 Nhận chấp nhận dùng để chấp nhận đối tác trao đổi đề xuất khi người nhận là người khởi tạo. |
nl:: |
Thông báo RecipientInit được dùng để bắt đầu trao đổi khi người nhận là trình khởi tạo. |
nl:: |
Thông báo Nhận từ chối dùng để từ chối lần trao đổi đề xuất khi người gửi là người khởi tạo. |
nl:: |
Thông báo Gửi chấp nhận được dùng để chấp nhận đối tác trao đổi đề xuất khi người gửi là người khởi tạo. |
nl:: |
Thông báo GửiInit được dùng để bắt đầu trao đổi khi người gửi là người khởi tạo. |
nl:: |
Thông báo Gửi từ chối dùng để từ chối lần trao đổi đề xuất khi người gửi là người khởi tạo. |
nl:: |
Thông báo lỗi được dùng để báo cáo lỗi và hủy giao dịch trao đổi. |
Cấu trúc |
|
---|---|
nl:: |
|
nl:: |
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. |
Không gian tên |
|
---|---|
nl:: |
Bảng liệt kê
@80
@80
@18
@81
@82
@82
@38
@83
Typedef
Ứng dụng khách
BdxNode BdxClient
Máy chủ BdxServer
BdxNode BdxServer
Trình xử lý lỗi
void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
Trình xử lý này được gọi bất cứ khi nào gặp lỗi Weave mà không thể trả về trực tiếp qua mã lỗi vào luồng điều khiển do ứng dụng xác định bởi người dùng.
Tức là, nếu một lỗi xảy ra trong một trình xử lý khác có chữ ký có hiệu lực trả về (ví dụ: để phản hồi thư Weave đến hoặc thậm chí được gửi bởi giao thức), thì trình xử lý này sẽ được gọi để người dùng có thể xác định xem quá trình chuyển có thể khôi phục được và tiếp tục hay không, hoặc liệu họ có gọi hàm Shutdown() hay không (ví dụ: có thể có nhiều đối tượng được phân bổ). Trong trường hợp như vậy, Weave sẽ ghi lại lỗi và cho biết giao thức sẽ xử lý trạng thái cần thiết mà Weave đã phân bổ.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
Khối xử lý
void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
Get a block of data to be transmitted.
Người gọi cung cấp không gian lưu vào bộ đệm (vùng đệm và độ dài của bộ đệm, được chuyển vào bằng cách tham chiếu). Callee (ứng dụng người dùng) NÊN sử dụng bộ đệm cung cấp, nhưng vì lý do tương thích ngược, có thể trả về bộ đệm riêng. Lệnh 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 vào bộ đệm.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
Trình xử lý khối
void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
Xử lý khối dữ liệu do aDataBlock có độ dài a a trỏ đến.
Có thể vấn đề này sẽ bao gồm việc ghi tệp vào một tệp và đóng tệp đã nói nếu isLastBlock có đúng.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
Nhận chấp nhận
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
Lệnh gọi lại được gọi khi đích nhận bInInit đã gửi trước đó được chấp nhận.
Bạn có thể sử dụng cơ hội này để mở tệp hoặc phân bổ tài nguyên cho việc chuyển nếu bạn không làm như vậy khi bắt đầu quá trình này.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
Trình xử lý nhận
uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
Lệnh gọi lại được gọi khi nhận thông báo RecipientInit.
Công việc của nó là xác định xem bạn có muốn chấp nhận Nhận hay không và nếu có thì đặt aXfer->mIsChấp== sao để giao thức sẽ gửi thông báo chấp nhận đến bộ khởi tạo. Đối tượng BDXTransfer được khởi tạo thành chế độ cài đặt mặc định. Đây là lúc thích hợp để đính kèm mọi trạng thái dành riêng cho ứng dụng (trình xử lý tệp đang mở, v.v.) vào aXfer->mAppState. Bạn cũng nên đính kèm các trình xử lý cần thiết (ví dụ: chặn xử lý đối với đối tượng BDXTransfer tại thời điểm này). Nếu mã lỗi không phải kStatus_Success được trả về, yêu cầu chuyển sẽ đượ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 thông số |
|
Trình xử lý từ chối
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
Được gọi nếu một trong các thông báo Init trước đó đã bị từ chối.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
SendHandlerHandler
WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
Lệnh gọi lại được gọi khi đích SendInit đã gửi trước đó được chấp nhận.
Bạn có thể sử dụng cơ hội này để mở tệp hoặc phân bổ tài nguyên cho việc chuyển nếu bạn không làm như vậy khi bắt đầu quá trình này.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
Trình xử lý gửi đến
uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
Lệnh gọi lại được gọi khi nhận thông báo GửiInit.
Công việc của chúng tôi là xác định xem bạn có muốn chấp nhận GửiInit hay không và nếu có, hãy đặt aXfer->mIsIs=true để giao thức sẽ gửi thông báo chấp nhận đến bộ khởi tạo. Đối tượng BDXTransfer được khởi tạo thành chế độ cài đặt mặc định. Đây là lúc thích hợp để đính kèm mọi trạng thái dành riêng cho ứng dụng (trình xử lý tệp đang mở, v.v.) vào aXfer->mAppState. Bạn cũng nên đính kèm các trình xử lý cần thiết (ví dụ: chặn xử lý đối với đối tượng BDXTransfer tại thời điểm này). Nếu mã lỗi khác với WEAVE_NO_ERROR được trả về, yêu cầu chuyển sẽ đượ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 thông số |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Xử lý các trường hợp khi quá trình chuyển hoàn tất.
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
XferLỗiHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
Xử lý các thông báo TransferLỗi đã nhận được hoặc được gửi từ BDX.
Lưu ý: Quá trình chuyển BDX được cho là có thể khôi phục được (có thể là tạm thời, chẳng hạn như khỏi PacketBuffers tại thời điểm này) và do đó, tùy chọn gọi Shutdown() được để lại cho trình lập trình ứng dụng và các lệnh gọi lại mà chúng xác định. VIỆC CẦN LÀM: xác minh và đối chiếu thông tin này với ngôn ngữ trong tài liệu BDX có ghi: "[A TransferLỗi] Một trong hai bên sẽ có thể gửi sớm để kết thúc quá trình chuyển dữ liệu hàng loạt;"
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
Hàm
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag trả về cờ phù hợp cho trường RequestAck tùy thuộc vào kết nối của ngữ cảnh trao đổi (không có yêu cầu đối với TCP) và dựa trên hỗ trợ thời gian biên dịch cho WRMP.
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
||
Trả về |
0 hoặc kSendFlag_RequestAck
|