Transmetimi i klientit BitTorrent kalon nga C në C++

Biblioteka libtransmission, e cila është baza e klientit Transmission BitTorrent, është përkthyer në C++. Transmetimi ka ende lidhje me zbatimin e ndërfaqeve të përdoruesit (ndërfaqja GTK, daemon, CLI), të shkruara në gjuhën C, por montimi tani kërkon një përpilues C++. Më parë, vetëm ndërfaqja e bazuar në Qt ishte shkruar në C++ (klienti për macOS ishte në Objective-C, ndërfaqja e uebit ishte në JavaScript dhe gjithçka tjetër ishte në C).

Transportimi u krye nga Charles Kerr, drejtuesi i projektit dhe autori i ndërfaqes së Transmisionit bazuar në Qt. Arsyeja kryesore për kalimin e të gjithë projektit në C++ është ndjenja se kur bëni ndryshime në transmetimin lib, vazhdimisht duhet të rishpikni timonin, edhe pse ka zgjidhje të gatshme për probleme të ngjashme në bibliotekën standarde C++ (për shembull, ishte e nevojshme për të krijuar funksionet tuaja tr_quickfindFirstK() dhe tr_ptrArray() në prani të std: :partial_sort() dhe std::vector()), si dhe sigurimin e C++ me pajisje më të avancuara të kontrollit të tipit.

Vihet re se zhvilluesit nuk i vendosin vetes qëllimin që të rishkruajnë menjëherë të gjithë libtransmetimin në C++, por synojnë të zbatojnë kalimin në C++ gradualisht, duke filluar me kalimin në përpilimin e projektit duke përdorur përpiluesin C++. Në formën e tij aktuale, përpiluesi C nuk mund të përdoret më për montim, pasi kodit i janë shtuar disa konstruksione specifike të C++, si fjala kyçe "auto" dhe konvertimet e tipit duke përdorur operatorin "static_cast". Mbështetja për funksionet më të vjetra C është planifikuar të mbetet për pajtueshmëri, por zhvilluesit tani inkurajohen të përdorin std::sort() në vend të qsort() dhe std::vector në vend të tr_ptrArray. constexpr në vend të tr_strdup() dhe std::vector në vend të tr_ptrArray.

Burimi: opennet.ru

Shto një koment