nl:: Weave:: Profiles:: BDX_Development
Namespace ini mencakup semua antarmuka di dalam Weave untuk profil Bulk Data Transfer (BDX) yang secara aktif sedang dikembangkan 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 dapat 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 Length. |
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
|
typedef Callback dipanggil jika 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 dipanggil jika SendInit yang dikirim sebelumnya diterima oleh tujuan. |
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
|
typedefuint16_t(*
Callback dipanggil saat menerima pesan SendInit. |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
Tangani 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 tanda yang sesuai untuk kolom RequestAck, bergantung pada koneksi konteks pertukaran (tidak ada permintaan ack untuk TCP), dan berdasarkan dukungan waktu kompilasi untuk WRMP.
|
Class |
|
---|---|
nl:: |
|
nl:: |
Pesan BlockAck digunakan untuk mengonfirmasi pemblokiran data. |
nl:: |
Pesan BlockAckV1 digunakan untuk mengonfirmasi pemblokiran 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 ketika penerima merupakan inisiator. |
nl:: |
Pesan ReceiveInit digunakan untuk memulai pertukaran ketika penerima adalah inisiatornya. |
nl:: |
Pesan ReceiveReject digunakan untuk menolak pertukaran yang diusulkan saat pengirimnya adalah inisiator. |
nl:: |
Pesan SendAccept digunakan untuk menerima pertukaran yang diusulkan ketika pengirim adalah inisiator. |
nl:: |
Pesan SendInit digunakan untuk memulai pertukaran ketika pengirim adalah inisiator. |
nl:: |
Pesan SendReject digunakan untuk menolak pertukaran yang diusulkan saat pengirim adalah inisiatornya. |
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 dapat langsung dikembalikan melalui kode error ke alur kontrol yang ditentukan aplikasi pengguna.
Artinya, jika terjadi kesalahan dalam pengendali lain yang tanda tangannya memiliki jenis nilai yang ditampilkan 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 jika mereka harus memanggil Shutdown(). Perhatikan bahwa error mungkin saja terjadi sebelum BDXTransfer diinisialisasi (misalnya sudah terlalu banyak objek transfer yang dialokasikan). Dalam kasus seperti itu, error tersebut akan dicatat dalam log oleh Weave dan protokol akan menangani pembersihan status yang diperlukan 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) HARUS menggunakan buffer yang disediakan, tetapi untuk alasan kompatibilitas mundur, dapat menampilkan buffer-nya sendiri. Tujuan panggilan tidak boleh memberikan lebih dari aLength
byte. Saat ditampilkan, aLength
berisi jumlah byte sebenarnya yang dibaca ke 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 Length.
Kemungkinan besar ini akan melibatkan penulisannya ke file dan menutup file tersebut jika isLastBlock adalah benar.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
ReceiveAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
Callback dipanggil jika ReceiveInit yang dikirim sebelumnya diterima oleh tujuan.
Anda dapat menggunakan kesempatan ini untuk membuka file atau mengalokasikan sumber daya untuk transfer jika Anda belum melakukannya saat memulai transfer.
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 ya, setel aXfer->mIsAccepted=true sehingga protokol akan mengirim pesan terima ke inisiator. Objek BDXTransfer dimulai ke setelan default. Ini adalah tempat yang baik untuk melampirkan status khusus aplikasi (membuka handle file, dll.) ke aXfer->mAppState. Anda juga harus menambahkan pengendali yang diperlukan, misalnya, penanganan blok ke objek BDXTransfer pada tahap ini. Jika kode error selain kStatus_Success dihasilkan, 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 dipanggil jika SendInit yang dikirim sebelumnya diterima oleh tujuan.
Anda dapat menggunakan kesempatan ini untuk membuka file atau mengalokasikan sumber daya untuk transfer jika Anda belum melakukannya saat memulai transfer.
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, setel 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 (membuka handle file, dll.) ke aXfer->mAppState. Anda juga harus menambahkan pengendali yang diperlukan, misalnya, penanganan blok ke objek BDXTransfer pada tahap ini. Jika kode error selain WEAVE_NO_ERROR yang ditampilkan, transfer dianggap ditolak dan protokol akan menangani pengiriman pesan penolakan dengan kode tersebut.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
Tangani 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 bersifat sementara misalnya dari PacketBuffers saat ini), sehingga opsi untuk memanggil Shutdown() diserahkan kepada programmer aplikasi dan callback yang ditentukan. TODO: verifikasi ini dan rekonsiliasi dengan bahasa dalam dokumen BDX, yang menyatakan: "[A TransferError] Dapat dikirim kapan saja oleh salah satu pihak untuk sebelum waktunya mengakhiri transfer data massal."
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Fungsi
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag menampilkan tanda yang sesuai untuk kolom RequestAck, bergantung pada koneksi konteks pertukaran (tidak ada permintaan ack untuk TCP), dan berdasarkan dukungan waktu kompilasi untuk WRMP.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
0 atau kSendFlag_RequestAck
|