BitTorrent klient Prenos sa prepne z C do C++

Knižnica libtransmission, ktorá je základom klienta Transmission BitTorrent, bola preložená do C++. Prenos má stále väzby s implementáciou používateľských rozhraní (rozhranie GTK, démon, CLI), napísaných v jazyku C, ale zostavenie teraz vyžaduje kompilátor C++. Predtým bolo v C++ napísané iba rozhranie založené na Qt (klient pre macOS bol v Objective-C, webové rozhranie bolo v JavaScripte a všetko ostatné bolo v C).

Prenos vykonal Charles Kerr, vedúci projektu a autor rozhrania Transmission založeného na Qt. Hlavným dôvodom prechodu celého projektu na C++ je pocit, že pri zmenách v libtransmission musíte neustále vymýšľať koleso, aj keď v štandardnej knižnici C++ existujú hotové riešenia na podobné problémy (napr. vytvoriť svoje vlastné funkcie tr_quickfindFirstK() a tr_ptrArray() za prítomnosti std::partial_sort() a std::vector() a tiež poskytnúť C++ pokročilejšie zariadenia na kontrolu typu.

Je potrebné poznamenať, že vývojári si nekladú za cieľ okamžite prepísať celý libtransmission v C++, ale majú v úmysle implementovať prechod na C++ postupne, počnúc prechodom na kompiláciu projektu pomocou kompilátora C++. V súčasnej podobe už kompilátor C nemožno použiť na zostavenie, pretože do kódu boli pridané niektoré konštrukty špecifické pre C++, ako napríklad kľúčové slovo „auto“ a konverzie typov pomocou operátora „static_cast“. Plánuje sa, že podpora starších funkcií C zostane zachovaná kvôli kompatibilite, ale vývojárom sa teraz odporúča používať std::sort() namiesto qsort() a std::vector namiesto tr_ptrArray. constexpr namiesto tr_strdup() a std::vector namiesto tr_ptrArray.

Zdroj: opennet.ru

Pridať komentár