BitTorrent klientas Perdavimas persijungia iš C į C++

Libtransmission biblioteka, kuri yra Transmission BitTorrent kliento pagrindas, buvo išversta į C++. Perdavimas vis dar turi sąsajų su vartotojo sąsajų diegimu (GTK sąsaja, demonas, CLI), parašytas C kalba, tačiau dabar surinkimui reikalingas C++ kompiliatorius. Anksčiau tik Qt pagrindu sukurta sąsaja buvo parašyta C++ (klientas MacOS buvo Objective-C, žiniatinklio sąsaja buvo JavaScript, o visa kita buvo C).

Perkėlimą atliko Charlesas Kerras, projekto vadovas ir perdavimo sąsajos, pagrįstos Qt, autorius. Pagrindinė viso projekto perjungimo į C++ priežastis yra jausmas, kad atliekant libtransmission pakeitimus nuolat tenka išradinėti dviratį, nors standartinėje C++ bibliotekoje panašioms problemoms yra paruoštų sprendimų (pavyzdžiui, reikėjo sukurti savo funkcijas tr_quickfindFirstK() ir tr_ptrArray() esant std: :partial_sort() ir std::vector()), taip pat suteikti C++ pažangesnes tipo tikrinimo priemones.

Pažymima, kad kūrėjai nekelia sau tikslo iš karto perrašyti visą libtransmisiją C++ kalba, o perėjimą prie C++ ketina įgyvendinti palaipsniui, pradedant nuo perėjimo prie projekto kompiliavimo naudojant C++ kompiliatorių. Dabartinės formos C kompiliatorius nebegali būti naudojamas surinkimui, nes prie kodo buvo pridėtos kai kurios C++ specifinės konstrukcijos, pvz., „auto“ raktinis žodis ir tipo konvertavimas naudojant operatorių „static_cast“. Planuojama, kad senesnių C funkcijų palaikymas išliks dėl suderinamumo, tačiau dabar kūrėjai raginami naudoti std::sort() vietoj qsort() ir std::vector vietoj tr_ptrArray. constexpr vietoj tr_strdup() ir std::vector vietoj tr_ptrArray.

Šaltinis: opennet.ru

Добавить комментарий