La transmissió del client BitTorrent es mou de C a C++

La biblioteca libtransmission, que és la base del client Transmission BitTorrent, s'ha traduït a C++. La transmissió encara té enllaços amb la implementació d'interfícies d'usuari (interfície GTK, dimoni, CLI), escrites en llenguatge C, però el muntatge ara requereix un compilador C++. Anteriorment, només la interfície basada en Qt estava escrita en C++ (el client per a macOS estava a Objective-C, la interfície web estava en JavaScript i tota la resta estava en C).

La portabilitat va ser realitzada per Charles Kerr, el líder del projecte i autor de la interfície Transmission basada en Qt. El motiu principal per canviar tot el projecte a C++ és la sensació que quan feu canvis a libtransmission heu de reinventar constantment la roda, tot i que hi ha solucions ja fetes per a problemes similars a la biblioteca estàndard de C++ (per exemple, era necessari per crear les vostres pròpies funcions tr_quickfindFirstK() i tr_ptrArray() en presència de std: :partial_sort() i std::vector()), a més de proporcionar a C++ instal·lacions de verificació de tipus més avançades.

Cal assenyalar que els desenvolupadors no es plantegen l'objectiu de reescriure immediatament tota la transmissió de lib en C++, sinó que pretenen implementar la transició a C++ gradualment, començant per la transició a la compilació del projecte mitjançant el compilador C++. En la seva forma actual, el compilador C ja no es pot utilitzar per a l'assemblatge, ja que s'han afegit algunes construccions específiques de C++ al codi, com ara la paraula clau "auto" i les conversions de tipus mitjançant l'operador "static_cast". Es preveu que el suport per a funcions C antigues es mantingui per compatibilitat, però ara es recomana als desenvolupadors que utilitzin std::sort() en lloc de qsort() i std::vector en comptes de tr_ptrArray. constexpr en lloc de tr_strdup() i std::vector en lloc de tr_ptrArray.

Font: opennet.ru

Afegeix comentari