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)
|
typedefvoid(*
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)
|
typedefvoid(*
Get a block of data to be transmitted. |
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
|
typedefvoid(*
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)
|
typedefuint16_t(*
Callback dipanggil saat menerima pesan ReceiveInit. |
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
|
typedefvoid(*
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)
|
typedefuint16_t(*
Callback dipanggil saat menerima pesan SendInit. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
Menangani kasus saat transfer selesai. |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
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:: |
|
nl:: |
Pesan BlockAck digunakan untuk mengonfirmasi blok data. |
nl:: |
Pesan BlockAckV1 digunakan untuk mengonfirmasi blok data. |
nl:: |
Pesan BlockEOF digunakan untuk mentransfer blok data terakhir dari pengirim ke penerima. |
nl:: |
Pesan BlockEOFAck digunakan untuk mengonfirmasi blok data terakhir. |
nl:: |
Pesan BlockEOFAckV1 digunakan untuk mengonfirmasi blok data terakhir. |
nl:: |
Pesan BlockEOFV1 digunakan untuk mentransfer blok data terakhir dari pengirim ke penerima. |
nl:: |
Pesan BlockQuery digunakan untuk meminta agar blok data ditransfer dari pengirim ke penerima. |
nl:: |
Pesan BlockQueryV1 digunakan untuk meminta agar blok data ditransfer dari pengirim ke penerima. |
nl:: |
Pesan BlockSend digunakan untuk mentransfer blok data dari pengirim ke penerima. |
nl:: |
Pesan BlockSendV1 digunakan untuk mentransfer blok data dari pengirim ke penerima. |
nl:: |
Pesan ReceiveAccept digunakan untuk menerima pertukaran yang diusulkan saat penerima adalah inisiator. |
nl:: |
Pesan ReceiveInit digunakan untuk memulai pertukaran ketika penerima adalah inisiator. |
nl:: |
Pesan ReceiveReject digunakan untuk menolak pertukaran yang diusulkan jika pengirimnya adalah inisiator. |
nl:: |
Pesan SendAccept digunakan untuk menerima pertukaran yang diusulkan saat pengirim adalah inisiator. |
nl:: |
Pesan SendInit digunakan untuk memulai pertukaran saat pengirim adalah inisiator. |
nl:: |
Pesan SendReject digunakan untuk menolak pertukaran yang diusulkan jika pengirimnya adalah inisiator. |
nl:: |
Pesan error digunakan untuk melaporkan error dan membatalkan pertukaran. |
Struct |
|
---|---|
nl:: |
|
nl:: |
Struktur ini berisi anggota data yang mewakili transfer BDX aktif. |
Namespace |
|
---|---|
nl:: |
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
RejectHandler
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
Dipanggil jika salah satu pesan Init sebelumnya ditolak oleh tujuan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
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 |
|
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 |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Menangani kasus saat transfer selesai.
Detail | |||
---|---|---|---|
Parameter |
|
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 |
|
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 |
|
||
Hasil |
0 atau kSendFlag_RequestAck
|