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) typedef
void(*
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) typedef
void(*
Get a block of data to be transmitted.
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) typedef
void(*
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) typedef
uint16_t(*
Lệnh gọi lại được gọi khi nhận được thông báo ReceiveInit.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
Đượ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) typedef
uint16_t(*
Lệnh gọi lại được gọi khi nhận được thông báo SendInit.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Xử lý các trường hợp quá trình chuyển hoàn tất.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
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::Weave::Profiles::BDX_Development::BdxNode
nl::Weave::Profiles::BDX_Development::BlockAck

Thông báo BlockAck được dùng để xác nhận một khối dữ liệu.

nl::Weave::Profiles::BDX_Development::BlockAckV1

Thông báo BlockAckV1 dùng để xác nhận một khối dữ liệu.

nl::Weave::Profiles::BDX_Development::BlockEOF

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::Weave::Profiles::BDX_Development::BlockEOFAck

Thông báo BlockEOFAck được dùng để xác nhận khối dữ liệu gần đây nhất.

nl::Weave::Profiles::BDX_Development::BlockEOFAckV1

Thông báo BlockEOFAckV1 được dùng để xác nhận khối dữ liệu gần đây nhất.

nl::Weave::Profiles::BDX_Development::BlockEOFV1

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::Weave::Profiles::BDX_Development::BlockQuery

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::Weave::Profiles::BDX_Development::BlockQueryV1

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::Weave::Profiles::BDX_Development::BlockSend

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::Weave::Profiles::BDX_Development::BlockSendV1

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::Weave::Profiles::BDX_Development::ReceiveAccept

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::Weave::Profiles::BDX_Development::ReceiveInit

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::Weave::Profiles::BDX_Development::ReceiveReject

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::Weave::Profiles::BDX_Development::SendAccept

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::Weave::Profiles::BDX_Development::SendInit

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::Weave::Profiles::BDX_Development::SendReject

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::Weave::Profiles::BDX_Development::TransferError

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::Weave::Profiles::BDX_Development::BDXHandlers
nl::Weave::Profiles::BDX_Development::BDXTransfer

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::Weave::Profiles::BDX_Development::BdxProtocol

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ố
[in] aXfer
Con trỏ đến phương thức BDXTransfer được liên kết với quá trình chuyển này
[in] anErrorCode
Mã lỗi mà chúng tôi cần xử lý

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ố
[in] aXfer
Giao dịch BDXTransfer được liên kết với quá trình chuyển đang diễn ra này
[in,out] aLength
Độ dài dữ liệu được đọc và lưu trữ trong khối này. Khi gọi hàm, hàm chứa độ dài vùng đệm được truyền vào aDataBlock. Khi trả về, biến này chứa độ dài dữ liệu thực sự đọc.
[in,out] aDataBlock
Con trỏ trỏ đến khối dữ liệu. Trên đầu vào, tệp này chứa bộ đệm do khung cung cấp; hàm được gọi có thể sử dụng không gian đó để lấp đầy bộ đệm hoặc cung cấp không gian lưu vào bộ đệm riêng (dành cho các ứng dụng tương thích ngược). Các ứng dụng dùng vùng đệm đã cung cấp không được giả định bất kỳ kiểu căn chỉnh nào.
[out] aLastBlock
"True" nếu khối phải được gửi dưới dạng BlockEOF và quá trình chuyển đã hoàn tất, nếu không thì là false

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ố
[in] aXfer
Giao dịch BDXTransfer được liên kết với quá trình chuyển đang diễn ra này
[in] aLength
Độ dài dữ liệu được đọc và lưu trữ trong khối được chỉ định
[in] aDataBlock
Khối dữ liệu thực tế
[in] aLastBlock
"True" nếu nhận được lệnh chặn dưới dạng BlockEOF và quá trình chuyển đã hoàn tất, nếu không là giá trị false. Nếu giá trị là true, thì lập trình viên có thể sẽ hoàn tất mọi trình xử lý tệp, lưu ý rằng XferDoneHandler sẽ được gọi sau

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ố
[in] aXfer
Con trỏ đến phương thức BDXTransfer được liên kết với hoạt động chuyển dữ liệu này
[in] aReceiveAcceptMsg
Con trỏ đến thông báo ReceiveAccept mà chúng tôi đang xử lý

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ố
[in] aXfer
Con trỏ đến phương thức BDXTransfer được liên kết với quá trình chuyển này
[in] aReceiveInitMsg
Con trỏ đến thông báo ReceiveInit mà chúng tôi đang xử lý

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ố
[in] aXfer
Con trỏ đến phương thức BDXTransfer được liên kết với quá trình chuyển này
[in] aReport
Con trỏ đến thông báo từ chối thông báo StatusReport mà chúng tôi đang xử lý

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ố
[in] aXfer
Con trỏ đến phương thức BDXTransfer được liên kết với quá trình chuyển này
[in] aSendAcceptMsg
Con trỏ đến thông báo SendAccept mà chúng tôi đang xử lý

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ố
[in] aXfer
Con trỏ đến phương thức BDXTransfer được liên kết với quá trình chuyển này
[in] aSendInitMsg
Con trỏ đến thông báo SendInit mà chúng tôi đang xử lý

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ố
[in] aXfer
Con trỏ đến phương thức BDXTransfer được liên kết với quá trình chuyển này

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ố
[in] aXfer
Con trỏ đến phương thức BDXTransfer được liên kết với quá trình chuyển này
[in] aXferError
Con trỏ đến lỗi thông báo StatusReport mà chúng tôi đang xử lý

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ố
[in] anEc
Ngữ cảnh trao đổi mà chúng ta sẽ nhận được cờ dựa trên
Trả về
0 hoặc kSendflag_RequestAck