Usambazaji wa mteja wa BitTorrent hubadilisha kutoka C hadi C++

Maktaba ya libtransmission, ambayo ni msingi wa mteja wa Transmission BitTorrent, imetafsiriwa katika C++. Usambazaji bado una vifungo na utekelezaji wa violesura vya mtumiaji (kiolesura cha GTK, daemon, CLI), kilichoandikwa katika lugha ya C, lakini kusanyiko sasa linahitaji mkusanyaji wa C++. Hapo awali, kiolesura cha msingi cha Qt pekee kiliandikwa katika C++ (mteja wa macOS alikuwa katika Lengo-C, kiolesura cha wavuti kilikuwa kwenye JavaScript, na kila kitu kingine kilikuwa katika C).

Uhamishaji ulifanywa na Charles Kerr, kiongozi wa mradi na mwandishi wa kiolesura cha Usambazaji kulingana na Qt. Sababu kuu ya kubadili mradi mzima hadi C++ ni hisia kwamba wakati wa kufanya mabadiliko kwa libtransmission lazima ubadilishe gurudumu kila wakati, ingawa kuna suluhisho zilizotengenezwa tayari za shida kama hizo kwenye maktaba ya kawaida ya C++ (kwa mfano, ilikuwa ni lazima. kuunda vitendaji vyako mwenyewe tr_quickfindFirstK() na tr_ptrArray() mbele ya std: :partial_sort() na std::vector()), pamoja na kutoa C++ na vifaa vya juu zaidi vya kukagua aina.

Ikumbukwe kwamba watengenezaji hawajiwekei lengo la kuandika upya mara moja uhamishaji wote wa lib katika C++, lakini wanakusudia kutekeleza mpito kwa C++ hatua kwa hatua, kuanzia na mpito wa kuandaa mradi kwa kutumia mkusanyaji wa C++. Katika hali yake ya sasa, kikusanya C hakiwezi kutumika tena kwa kuunganisha, kwa kuwa baadhi ya miundo maalum ya C++ imeongezwa kwenye msimbo, kama vile neno kuu la "otomatiki" na ubadilishaji wa aina kwa kutumia opereta "static_cast". Usaidizi wa vitendaji vya zamani vya C umepangwa kubaki kwa uoanifu, lakini wasanidi programu sasa wanahimizwa kutumia std::sort() badala ya qsort() na std::vector badala ya tr_ptrArray. constexpr badala ya tr_strdup() na std::vector badala ya tr_ptrArray.

Chanzo: opennet.ru

Kuongeza maoni