nl::Weave::Profiles::BDX_Development

Namespace ini mencakup semua antarmuka dalam profil Weave untuk Bulk Data Transfer (BDX) yang secara aktif dalam pengembangan dan tidak boleh digunakan untuk penggunaan produksi.

Ringkasan

Enumerasi

@80 enum
@81 enum
@82 enum
@83 enum

Typedef

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
Pengendali ini dipanggil setiap kali terjadi error Weave yang tidak bisa langsung dikembalikan melalui kode error ke alur kontrol yang ditentukan aplikasi pengguna.
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(*
Menangani blok data yang ditunjuk oleh aDataBlock dengan panjang aLength.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
Callback yang dipanggil saat ReceiveInit yang dikirim sebelumnya diterima oleh tujuan.
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef
uint16_t(*
Callback dipanggil saat menerima pesan ReceiveInit.
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
Dipanggil jika salah satu pesan Init sebelumnya ditolak oleh tujuan.
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) typedef
Callback yang dipanggil saat SendInit yang dikirim sebelumnya diterima oleh tujuan.
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef
uint16_t(*
Callback dipanggil saat menerima pesan SendInit.
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
Menangani kasus saat transfer selesai.
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
Menangani pesan TransferError yang diterima atau dikirim oleh BDX.

Fungsi

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag menampilkan flag yang sesuai untuk kolom RequestAck, bergantung pada koneksi konteks pertukaran (tidak ada ack permintaan untuk TCP), dan berdasarkan dukungan waktu kompilasi untuk WRMP.

Class

nl::Weave::Profiles::BDX_Development::BdxNode
nl::Weave::Profiles::BDX_Development::BlockAck

Pesan BlockAck digunakan untuk mengonfirmasi blok data.

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

Pesan BlockAckV1 digunakan untuk mengonfirmasi blok data.

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

Pesan BlockEOF digunakan untuk mentransfer blok data terakhir dari pengirim ke penerima.

nl::Weave::Profiles::BDX_Development::BlockEOFAck

Pesan BlockEOFAck digunakan untuk mengonfirmasi blok data terakhir.

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

Pesan BlockEOFAckV1 digunakan untuk mengonfirmasi blok data terakhir.

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

Pesan BlockEOFV1 digunakan untuk mentransfer blok data terakhir dari pengirim ke penerima.

nl::Weave::Profiles::BDX_Development::BlockQuery

Pesan BlockQuery digunakan untuk meminta agar blok data ditransfer dari pengirim ke penerima.

nl::Weave::Profiles::BDX_Development::BlockQueryV1

Pesan BlockQueryV1 digunakan untuk meminta agar blok data ditransfer dari pengirim ke penerima.

nl::Weave::Profiles::BDX_Development::BlockSend

Pesan BlockSend digunakan untuk mentransfer blok data dari pengirim ke penerima.

nl::Weave::Profiles::BDX_Development::BlockSendV1

Pesan BlockSendV1 digunakan untuk mentransfer blok data dari pengirim ke penerima.

nl::Weave::Profiles::BDX_Development::ReceiveAccept

Pesan ReceiveAccept digunakan untuk menerima pertukaran yang diusulkan saat penerima adalah inisiator.

nl::Weave::Profiles::BDX_Development::ReceiveInit

Pesan ReceiveInit digunakan untuk memulai pertukaran ketika penerima adalah inisiator.

nl::Weave::Profiles::BDX_Development::ReceiveReject

Pesan ReceiveReject digunakan untuk menolak pertukaran yang diusulkan jika pengirimnya adalah inisiator.

nl::Weave::Profiles::BDX_Development::SendAccept

Pesan SendAccept digunakan untuk menerima pertukaran yang diusulkan saat pengirim adalah inisiator.

nl::Weave::Profiles::BDX_Development::SendInit

Pesan SendInit digunakan untuk memulai pertukaran saat pengirim adalah inisiator.

nl::Weave::Profiles::BDX_Development::SendReject

Pesan SendReject digunakan untuk menolak pertukaran yang diusulkan jika pengirimnya adalah inisiator.

nl::Weave::Profiles::BDX_Development::TransferError

Pesan error digunakan untuk melaporkan error dan membatalkan pertukaran.

Struct

nl::Weave::Profiles::BDX_Development::BDXHandlers
nl::Weave::Profiles::BDX_Development::BDXTransfer

Struktur ini berisi anggota data yang mewakili transfer BDX aktif.

Namespace

nl::Weave::Profiles::BDX_Development::BdxProtocol

Enumerasi

@80

 @80

@81

 @81

@82

 @82

@83

 @83

Typedef

BdxClient

BdxNode BdxClient

BdxServer

BdxNode BdxServer

ErrorHandler

void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)

Pengendali ini dipanggil setiap kali terjadi error Weave yang tidak bisa langsung dikembalikan melalui kode error ke alur kontrol yang ditentukan aplikasi pengguna.

Artinya, jika terjadi error dalam pengendali lain yang tanda tangannya memiliki jenis pengembalian void (misalnya sebagai respons terhadap pesan Weave yang masuk atau bahkan dikirim oleh protokol), pengendali ini akan dipanggil sehingga pengguna dapat menentukan apakah transfer dapat dipulihkan dan dilanjutkan, atau apakah mereka harus memanggil Shutdown(). Perhatikan bahwa error mungkin terjadi sebelum BDXTransfer dilakukan sebelum transfer BDXTransfer sudah terlalu banyak diinisialisasi. Dalam kasus seperti itu, error tersebut akan dicatat oleh Weave dan protokol akan menangani pembersihan status penting yang dialokasikan.

Detail
Parameter
[in] aXfer
Pointer BDXTransfer yang terkait dengan transfer ini
[in] anErrorCode
Kode error yang perlu kita proses

GetBlockHandler

void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)

Get a block of data to be transmitted.

Pemanggil menyediakan ruang buffering (buffer dan panjang buffer, yang diteruskan melalui referensi). Callee (aplikasi pengguna) SEHARUS menggunakan buffer yang disediakan, tetapi untuk alasan kompatibilitas mundur, dapat mengembalikan buffer-nya sendiri. Penerima panggilan tidak boleh menyediakan lebih dari aLength byte. Saat ditampilkan, aLength berisi jumlah byte sebenarnya yang dibaca ke dalam buffer.

Detail
Parameter
[in] aXfer
BDXTransfer yang terkait dengan transfer yang sedang berlangsung ini
[in,out] aLength
Panjang data yang dibaca dan disimpan dalam blok ini. Panggilan ke fungsi akan berisi panjang buffer yang diteruskan dalam aDataBlock. Saat dikembalikan, variabel tersebut berisi panjang data yang sebenarnya dibaca.
[in,out] aDataBlock
Pointer ke blok data. Pada input, class ini berisi buffer yang disediakan framework; tujuan panggilan dapat menggunakan ruang tersebut untuk mengisi buffer, atau menyediakan ruang buffering-nya sendiri (untuk aplikasi kompatibilitas mundur). Aplikasi yang menggunakan buffer yang disediakan tidak boleh mengasumsikan perataan apa pun.
[out] aLastBlock
Benar jika blok harus dikirim sebagai BlockEOF dan transfer selesai, salah jika tidak

PutBlockHandler

void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)

Menangani blok data yang ditunjuk oleh aDataBlock dengan panjang aLength.

Kemungkinan tindakan ini akan melibatkan penulisan ke file dan menutup file tersebut jika isLastBlock bernilai true.

Detail
Parameter
[in] aXfer
BDXTransfer yang terkait dengan transfer yang sedang berlangsung ini
[in] aLength
Panjang data yang dibaca dan disimpan dalam blok yang ditentukan
[in] aDataBlock
Blok data yang sebenarnya
[in] aLastBlock
Benar jika blok diterima sebagai BlockEOF dan transfer selesai, salah jika jika tidak. Jika benar, {i>programmer<i} mungkin harus menyelesaikan setiap handle file, ingatlah bahwa XferDoneHandler akan dipanggil setelah ini

ReceiveAcceptHandler

WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)

Callback yang dipanggil saat ReceiveInit yang dikirim sebelumnya diterima oleh tujuan.

Anda dapat menggunakan kesempatan ini untuk membuka file atau mengalokasikan sumber daya untuk transfer jika Anda tidak melakukannya saat memulainya.

Detail
Parameter
[in] aXfer
Pointer BDXTransfer yang terkait dengan transfer ini
[in] aReceiveAcceptMsg
Pointer ke pesan ReceiveAccept yang sedang kami proses

ReceiveInitHandler

uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)

Callback dipanggil saat menerima pesan ReceiveInit.

Tugasnya adalah menentukan apakah Anda ingin menerima Accept dan, jika demikian, menyetel aXfer->mIsAccepted=true sehingga protokol akan mengirimkan pesan terima ke inisiator. Objek BDXTransfer dimulai ke setelan default. Ini adalah tempat yang baik untuk melampirkan status khusus aplikasi (handle file terbuka, dll.) ke aXfer->mAppState. Anda juga harus menambahkan pengendali yang diperlukan untuk, misalnya, penanganan blok ke objek BDXTransfer pada tahap ini. Jika kode error selain kStatus_Success ditampilkan, transfer dianggap ditolak dan protokol akan menangani pengiriman pesan penolakan dengan kode tersebut.

Detail
Parameter
[in] aXfer
Pointer BDXTransfer yang terkait dengan transfer ini
[in] aReceiveInitMsg
Pointer ke pesan ReceiveInit yang sedang kami proses

RejectHandler

void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)

Dipanggil jika salah satu pesan Init sebelumnya ditolak oleh tujuan.

Detail
Parameter
[in] aXfer
Pointer BDXTransfer yang terkait dengan transfer ini
[in] aReport
Penunjuk ke penolakan pesan StatusReport yang sedang kami proses

SendAcceptHandler

WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)

Callback yang dipanggil saat SendInit yang dikirim sebelumnya diterima oleh tujuan.

Anda dapat menggunakan kesempatan ini untuk membuka file atau mengalokasikan sumber daya untuk transfer jika Anda tidak melakukannya saat memulainya.

Detail
Parameter
[in] aXfer
Pointer BDXTransfer yang terkait dengan transfer ini
[in] aSendAcceptMsg
Pointer ke pesan SendAccept yang sedang kami proses

SendInitHandler

uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)

Callback dipanggil saat menerima pesan SendInit.

Tugasnya adalah menentukan apakah Anda ingin menerima SendInit dan, jika ya, menyetel aXfer->mIsAccepted=true sehingga protokol akan mengirimkan pesan terima ke inisiator. Objek BDXTransfer dimulai ke setelan default. Ini adalah tempat yang baik untuk melampirkan status khusus aplikasi (handle file terbuka, dll.) ke aXfer->mAppState. Anda juga harus menambahkan pengendali yang diperlukan untuk, misalnya, penanganan blok ke objek BDXTransfer pada tahap ini. Jika kode error selain WEAVE_NO_ERROR ditampilkan, transfer dianggap ditolak dan protokol akan menangani pengiriman pesan penolakan dengan kode tersebut.

Detail
Parameter
[in] aXfer
Pointer BDXTransfer yang terkait dengan transfer ini
[in] aSendInitMsg
Pointer ke pesan SendInit yang sedang kami proses

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Menangani kasus saat transfer selesai.

Detail
Parameter
[in] aXfer
Pointer BDXTransfer yang terkait dengan transfer ini

XferErrorHandler

void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)

Menangani pesan TransferError yang diterima atau dikirim oleh BDX.

Catatan:Transfer BDX dianggap berpotensi dapat dipulihkan (mungkin untuk sementara, misalnya di luar PacketBuffers saat ini) sehingga opsi untuk memanggil Shutdown() diserahkan kepada programmer aplikasi dan callback yang ditentukan. TODO: verifikasi dan rekonsiliasi dengan bahasa dalam dokumen BDX, yang menyatakan: "[A TransferError] Dapat dikirim kapan saja oleh salah satu pihak untuk mengakhiri transfer data massal sebelum waktunya."

Detail
Parameter
[in] aXfer
Pointer BDXTransfer yang terkait dengan transfer ini
[in] aXferError
Penunjuk ke error pesan StatusReport yang sedang kami proses

Fungsi

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag menampilkan flag yang sesuai untuk kolom RequestAck, bergantung pada koneksi konteks pertukaran (tidak ada ack permintaan untuk TCP), dan berdasarkan dukungan waktu kompilasi untuk WRMP.

Detail
Parameter
[in] anEc
Konteks pertukaran yang harus kita dapatkan penandanya berdasarkan
Hasil
0 atau kSendFlag_RequestAck