Canja wurin abokin ciniki na BitTorrent yana canzawa daga C zuwa C ++

Laburaren libtransmission, wanda shine tushen abokin ciniki na Transmission BitTorrent, an fassara shi zuwa C++. Watsawa har yanzu yana da alaƙa tare da aiwatar da mu'amalar masu amfani (GTK interface, daemon, CLI), da aka rubuta cikin yaren C, amma taro yanzu yana buƙatar mai haɗa C++. A baya can, kawai ƙirar tushen Qt an rubuta a cikin C ++ (abokin ciniki na macOS yana cikin Manufar-C, haɗin yanar gizon yana cikin JavaScript, kuma komai yana cikin C).

Charles Kerr, jagoran aikin kuma marubucin hanyar sadarwa ta hanyar watsawa ta hanyar Qt. Babban dalilin canza duk aikin zuwa C ++ shine jin cewa lokacin yin canje-canje ga libtransmission dole ne ku sake haɓaka dabaran, kodayake akwai shirye-shiryen da aka yi don magance matsaloli iri ɗaya a cikin ɗakin karatu na C ++ (misali, ya zama dole. don ƙirƙirar ayyukanku tr_quickfindFirstK () da tr_ptrArray () a gaban std: : partial_sort () da std :: vector ()), da kuma samar da C ++ tare da ƙarin kayan aikin duba nau'in ci gaba.

An lura cewa masu haɓakawa ba su sanya kansu manufar nan da nan ta sake rubuta duk libtransmission a cikin C ++ ba, amma suna da niyyar aiwatar da sauyi zuwa C ++ a hankali, farawa tare da sauye-sauye don haɗa aikin ta amfani da na'urar ta C ++. A cikin sigar da ta ke yanzu, ba za a iya amfani da na'ura mai haɗawa da C don haɗawa ba, tunda an ƙara wasu ƙayyadaddun abubuwan ginawa na C++ zuwa lambar, kamar kalmar "auto" da kuma rubuta juzu'i ta amfani da ma'aikacin "static_cast". Ana shirin tallafawa ayyukan tsofaffin C don kasancewa don dacewa, amma yanzu ana ƙarfafa masu haɓakawa don amfani da std :: nau'in () maimakon qsort () da std :: vector maimakon tr_ptrArray. constexpr maimakon tr_strdup () da std :: vector maimakon tr_ptrArray.

source: budenet.ru

Add a comment