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) typedef
void(*
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) 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 Length.
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
Callback dipanggil jika 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 dipanggil jika 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(*
Tangani 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 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::Weave::Profiles::BDX_Development::BdxNode
nl::Weave::Profiles::BDX_Development::BlockAck

Pesan BlockAck digunakan untuk mengonfirmasi pemblokiran data.

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

Pesan BlockAckV1 digunakan untuk mengonfirmasi pemblokiran 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 ketika penerima merupakan inisiator.

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

Pesan ReceiveInit digunakan untuk memulai pertukaran ketika penerima adalah inisiatornya.

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

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

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

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

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

Pesan SendInit digunakan untuk memulai pertukaran ketika pengirim adalah inisiator.

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

Pesan SendReject digunakan untuk menolak pertukaran yang diusulkan saat pengirim adalah inisiatornya.

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 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
[in] aXfer
Pointer ke BDXTransfer yang terkait dengan transfer ini
[in] anErrorCode
Kode error yang harus kami 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) 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
[in] aXfer
BDXTransfer yang terkait dengan transfer yang sedang berlangsung ini
[in,out] aLength
Panjang data yang dibaca dan disimpan dalam blok ini. Saat panggilan ke fungsi berisi panjang buffer yang diteruskan dalam aDataBlock. Saat ditampilkan, variabel berisi panjang data yang benar-benar dibaca.
[in,out] aDataBlock
Pointer ke blok data. Saat input, buffer ini berisi buffer yang disediakan oleh framework; penerima panggilan dapat menggunakan ruang tersebut untuk mengisi buffer, atau menyediakan ruang buffering sendiri (untuk aplikasi kompatibilitas mundur). Aplikasi yang menggunakan buffer yang disediakan tidak boleh memiliki penyelarasan apa pun.
[out] aLastBlock
True jika blok harus dikirim sebagai BlockEOF dan transfer selesai, false jika tidak

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
[in] aXfer
BDXTransfer yang terkait dengan transfer yang sedang berlangsung ini
[in] aLength
Panjang data yang dibaca dan disimpan di blok yang ditentukan
[in] aDataBlock
Blok data yang sebenarnya
[in] aLastBlock
True jika pemblokiran diterima sebagai BlockEOF dan transfer selesai, salah (false) jika tidak. Jika benar, programmer mungkin harus memfinalisasikan handle file apa pun, dengan mengingat bahwa XferDoneHandler akan dipanggil setelah ini

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
[in] aXfer
Pointer ke BDXTransfer yang terkait dengan transfer ini
[in] aReceiveAcceptMsg
Pointer ke pesan ReceiveAccept yang sedang kita 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 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
[in] aXfer
Pointer ke BDXTransfer yang terkait dengan transfer ini
[in] aReceiveInitMsg
Pointer ke pesan ReceiveInit yang sedang kita proses

RejectHandler

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

Dipanggil jika salah satu pesan Init sebelumnya ditolak oleh tujuan.

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

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
[in] aXfer
Pointer ke BDXTransfer yang terkait dengan transfer ini
[in] aSendAcceptMsg
Pointer ke pesan SendAccept yang sedang kita 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, 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
[in] aXfer
Pointer ke BDXTransfer yang terkait dengan transfer ini
[in] aSendInitMsg
Pointer ke pesan SendInit yang sedang kita proses

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

Tangani kasus saat transfer selesai.

Detail
Parameter
[in] aXfer
Pointer ke 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 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
[in] aXfer
Pointer ke 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 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
[in] anEc
Dalam konteks pertukaran, kita harus mendapatkan tanda berdasarkan
Hasil
0 atau kSendFlag_RequestAck