nl:: Weave:: Profiles:: BDX_Development
Không gian tên này bao gồm tất cả giao diện trong cấu hình Weave dành cho Chuyển dữ liệu hàng loạt (BDX) đang trong quá trình phát triển và sẽ không dùng để phát hành công khai.
Tóm tắt
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 thông qua mã lỗi gửi đến luồng điều khiển do ứng dụng 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ằng 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 một 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 một 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 quá trình chuyển hoàn tất. |
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 có xác nhận yêu cầu cho TCP) và dựa trên khả năng hỗ trợ thời gian biên dịch cho 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 dùng để xác nhận một khối dữ liệu. |
nl:: |
Thông báo BlockEOF dùng để chuyển khối dữ liệu gần đây nhất 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 gần đây nhất. |
nl:: |
Thông báo BlockEOFAckV1 được dùng để xác nhận khối dữ liệu gần đây nhất. |
nl:: |
Thông báo BlockEOFV1 được dùng để chuyển khối dữ liệu gần đây nhất từ người gửi sang người nhận. |
nl:: |
Thông báo BlockQuery 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 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 được dùng để chấp nhận một giao dịch trao đổi đề xuất khi người nhận là người khởi tạo. |
nl:: |
Thông báo ReceiveInit được dùng để bắt đầu một lượt trao đổi khi trình nhận là đối tượng khởi tạo. |
nl:: |
Thông báo ReceiveReject được dùng để từ chối giao dịch trao đổi đề xuất khi người gửi là người khởi tạo. |
nl:: |
Thông báo SendAccept được dùng để chấp nhận một đề xuất trao đổi khi người gửi là người khởi tạo. |
nl:: |
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. |
nl:: |
Thông báo SendReject được dùng để từ chối đề xuất trao đổi 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à 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 hoạt động chuyển BDX đang hoạt động. |
Không gian tên |
|
---|---|
nl:: |
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 bất cứ khi nào gặp lỗi Weave mà không thể trả về trực tiếp thông qua mã lỗi gửi đến luồng điều khiển do ứng dụng 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 thuộc loại trả về (ví dụ: để phản hồi một thông báo Weave gửi đến hoặc thậm chí được gử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 có thể khôi phục và tiếp tục quá trình chuyển hay không hoặc liệu họ nên gọi Shutdown(). Xin lưu ý rằng có thể xảy ra lỗi trước khi khởi chạy BDXTransfer (ví dụ: đã có quá nhiều đối tượng chuyển được phân bổ). Trong trường hợp như vậy, Weave sẽ ghi lại lỗi nêu trên và giao thức này sẽ xử lý việc dọn dẹp mọi trạng thái cần thiết đã phân bổ.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
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à thời lượng vùng đệm, được truyền vào bằng tham chiếu). Callee (ứng dụng của người dùng) NÊN sử dụng bộ đệm được cung cấp, nhưng vì lý do tương thích ngược, có thể trả về bộ đệm riêng. 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 | |||||||||
---|---|---|---|---|---|---|---|---|---|
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ằng aDataBlock có độ dài aLength.
Có thể trường hợp này sẽ liên quan đến việc ghi dữ liệu vào một tệp và đóng tệp đã nói nếu isLastBlock là true.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
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 một 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 bạn chưa làm vậy khi bắt đầu quá trình chuyển.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
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 nó là xác định xem bạn có muốn chấp nhận Nhận hay không và nếu có, hãy đặt aXfer->mIsAccept=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ở tay cầm tệp, 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ụ: xử lý khối sang đối tượng BDXTransfer tại thời điểm này. Nếu hệ thống trả về một mã lỗi không phải kStatus_Success, thì 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 một thông báo từ chối có chứa mã đó.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
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 | |||||
---|---|---|---|---|---|
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 một 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 bạn chưa làm vậy khi bắt đầu quá trình chuyển.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
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 nó 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->mIsAllow=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ở tay cầm tệp, 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ụ: xử lý khối sang đối tượng BDXTransfer tại thời điểm này. Nếu một mã lỗi không phải WEAVE_NO_ERROR được trả về, thì yêu cầu 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 có chứa mã này.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Xử lý các trường hợp quá trình chuyển hoàn tất.
Thông tin chi tiết | |||
---|---|---|---|
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ó thể khôi phục được (có thể là tạm thời, ví dụ: thoát khỏi PacketBuffers tại thời điểm này) và do đó tuỳ chọn gọi Shutdown() sẽ thuộc về 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 và đối chiếu nội dung với ngôn ngữ trong tài liệu BDX, trong đó có nêu: "[Lỗi chuyển] Có thể được một trong hai bên gửi bất cứ lúc nào đến sớm kết thúc chuyển dữ liệu hàng loạt".
Thông tin chi tiết | |||||
---|---|---|---|---|---|
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 có xác nhận yêu cầu cho TCP) và dựa trên khả năng hỗ trợ thời gian biên dịch cho WRMP.
Thông tin chi tiết | |||
---|---|---|---|
Tham số |
|
||
Trả về |
0 hoặc kSendflag_RequestAck
|