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) 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 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) 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 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) typedef
uint16_t(*
Lệnh gọi lại được gọi khi nhận thông báo RecipientInit.
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ị 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) typedef
uint16_t(*
Lệnh gọi lại được gọi khi nhận thông báo GửiInit.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Xử lý các trường hợp khi quá trình chuyển hoàn tất.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
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::Weave::Hồ sơ::BDX_Growthment::BdxNode
nl::Weave::Hồ sơ::BDX_Growthment::BlockAck

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

nl::Weave::Hồ sơ::BDX_Growthment::BlockAckV1

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

nl::Weave::Hồ sơ::BDX_Growthment::BlockEOF

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::Weave::Hồ sơ::BDX_Growthment::BlockEOFAck

Thông báo BlockEOFAck dùng để xác nhận khối dữ liệu cuối cùng.

nl::Weave::Hồ sơ::BDX_ Developmentment::BlockEOFAckV1

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

nl::Weave::Hồ sơ::BDX_Growthment::BlockEOFV1

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::Weave::Hồ sơ::BDX_ Developmentment::BlockQuery

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::Weave::Hồ sơ::BDX_Growthment::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::Hồ sơ::BDX_Growthment::BlockSend

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::Weave::Hồ sơ::BDX_Growthment::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::Hồ sơ::BDX_Discoverment::Chấp nhận

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::Weave::Hồ sơ::BDX_Growthment::RecipientInit

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::Weave::Hồ sơ::BDX_Phát triển::Nhận từ chối

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::Weave::Hồ sơ::BDX_Phát triển::Gửi chấp nhận

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::Weave::Hồ sơ::BDX_Growthment::SendInit

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::Weave::Hồ sơ::BDX_Phát triển::Gửi từ chối

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::Weave::Profiles::BDX_Growthment::TransferLỗi

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::Weave::Hồ sơ::BDX_Growthment::BDXHandlers
nl::Weave::Hồ sơ::BDX_Growthment::BDXTransfer

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::Weave::Hồ sơ::BDX_Growthment::BdxMeasurement

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ố
[in] aXfer
Trỏ tới BDXTransfer 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ý

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

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

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ố
[in] aXfer
Trỏ tới BDXTransfer liên kết với quá trình chuyển này
[in] aReceiveAcceptMsg
Trỏ vào thông báo Nhận chấp nhận mà chúng tôi đang xử lý

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

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

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ố
[in] aXfer
Trỏ tới BDXTransfer liên kết với quá trình chuyển này
[in] aSendAcceptMsg
Trỏ vào thông báo Gửi chấp nhận mà chúng tôi đang xử lý

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ố
[in] aXfer
Trỏ tới BDXTransfer liên kết với quá trình chuyển này
[in] aSendInitMsg
Trỏ vào 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 khi quá trình chuyển hoàn tất.

Thông tin chi tiết
Các thông số
[in] aXfer
Trỏ tới BDXTransfer liên kết với quá trình chuyển này

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

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