Client BitTorrent La trasmissione passa da C a C++

La libreria libtransmission, che è la base del client Transmission BitTorrent, è stata tradotta in C++. La trasmissione ha ancora vincoli con l'implementazione delle interfacce utente (interfaccia GTK, demone, CLI), scritte in linguaggio C, ma l'assemblaggio ora richiede un compilatore C++. In precedenza, solo l'interfaccia basata su Qt era scritta in C++ (il client per macOS era in Objective-C, l'interfaccia web era in JavaScript e tutto il resto era in C).

Il porting è stato effettuato da Charles Kerr, il leader del progetto e autore dell'interfaccia Transmission basata su Qt. Il motivo principale per cui si è passati all'intero progetto in C++ è la sensazione che quando si apportano modifiche a libtransmission si debba costantemente reinventare la ruota, anche se nella libreria standard C++ esistono soluzioni già pronte per problemi simili (ad esempio era necessario per creare le proprie funzioni tr_quickfindFirstK() e tr_ptrArray() in presenza di std: :partial_sort() e std::vector()), oltre a fornire al C++ funzionalità di controllo del tipo più avanzate.

Va notato che gli sviluppatori non si prefiggono l'obiettivo di riscrivere immediatamente l'intera libtransmission in C++, ma intendono implementare gradualmente il passaggio al C++, iniziando con il passaggio alla compilazione del progetto utilizzando il compilatore C++. Nella sua forma attuale, il compilatore C non può più essere utilizzato per l'assemblaggio, poiché al codice sono stati aggiunti alcuni costrutti specifici del C++, come la parola chiave "auto" e le conversioni di tipo utilizzando l'operatore "static_cast". Si prevede che il supporto per le funzioni C precedenti rimanga per compatibilità, ma gli sviluppatori sono ora incoraggiati a utilizzare std::sort() invece di qsort() e std::vector invece di tr_ptrArray. constexpr invece di tr_strdup() e std::vettore invece di tr_ptrArray.

Fonte: opennet.ru

Aggiungi un commento