Transmisi klien BitTorrent beralih dari C ke C++

Pustaka libtransmission, yang merupakan dasar dari klien Transmisi BitTorrent, telah diterjemahkan ke dalam C++. Transmisi masih terikat dengan implementasi antarmuka pengguna (antarmuka GTK, daemon, CLI), yang ditulis dalam bahasa C, tetapi perakitan sekarang memerlukan kompiler C++. Sebelumnya, hanya antarmuka berbasis Qt yang ditulis dalam C++ (klien untuk macOS menggunakan Objective-C, antarmuka web menggunakan JavaScript, dan yang lainnya menggunakan C).

Porting dilakukan oleh Charles Kerr, pemimpin proyek dan penulis antarmuka Transmisi berdasarkan Qt. Alasan utama untuk mengalihkan seluruh proyek ke C++ adalah perasaan bahwa ketika membuat perubahan pada transmisi lib Anda harus terus-menerus menemukan kembali roda, meskipun ada solusi siap pakai untuk masalah serupa di pustaka C++ standar (misalnya, diperlukan untuk membuat fungsi Anda sendiri tr_quickfindFirstK() dan tr_ptrArray() dengan adanya std: :partial_sort() dan std::vector()), serta menyediakan fasilitas pemeriksaan tipe yang lebih canggih pada C++.

Perlu dicatat bahwa pengembang tidak menetapkan tujuan untuk segera menulis ulang seluruh transmisi lib dalam C++, tetapi bermaksud untuk mengimplementasikan transisi ke C++ secara bertahap, dimulai dengan transisi untuk mengkompilasi proyek menggunakan kompiler C++. Dalam bentuknya yang sekarang, kompiler C tidak lagi dapat digunakan untuk perakitan, karena beberapa konstruksi khusus C++ telah ditambahkan ke kode, seperti kata kunci “auto” dan konversi tipe menggunakan operator “static_cast”. Dukungan untuk fungsi C lama direncanakan tetap ada demi kompatibilitas, namun pengembang kini dianjurkan untuk menggunakan std::sort() alih-alih qsort() dan std::vector alih-alih tr_ptrArray. constexpr bukannya tr_strdup() dan std::vector bukannya tr_ptrArray.

Sumber: opennet.ru

Tambah komentar