Gbigbe ibara BitTorrent yipada lati C si C ++

Ile-ikawe libtransmission, eyiti o jẹ ipilẹ ti alabara Gbigbe BitTorrent, ti tumọ si C ++. Gbigbe si tun ni awọn asopọ pẹlu imuse ti awọn atọkun olumulo (GTK ni wiwo, daemon, CLI), ti a kọ sinu ede C, ṣugbọn apejọ bayi nilo alakojo C ++ kan. Ni iṣaaju, nikan ni wiwo orisun Qt ni a kọ sinu C ++ (onibara fun macOS wa ni Objective-C, wiwo wẹẹbu wa ni JavaScript, ati pe ohun gbogbo wa ni C).

Awọn porting ti a ti gbe jade nipa Charles Kerr, ise agbese olori ati onkowe ti wiwo Gbigbe da lori Qt. Idi akọkọ fun yiyipada gbogbo iṣẹ akanṣe si C ++ ni rilara pe nigba ṣiṣe awọn ayipada si libtransmission o ni lati tun ṣe kẹkẹ nigbagbogbo, botilẹjẹpe awọn solusan ti a ti ṣetan fun awọn iṣoro ti o jọra ni ile-ikawe C ++ boṣewa (fun apẹẹrẹ, o jẹ dandan. lati ṣẹda awọn iṣẹ tirẹ tr_quickfindFirstK () ati tr_ptrArray () niwaju std: partial_sort () ati std :: fekito ()), ati pese C ++ pẹlu awọn ohun elo iṣayẹwo iru ilọsiwaju diẹ sii.

O ṣe akiyesi pe awọn olupilẹṣẹ ko ṣeto ara wọn ni ibi-afẹde ti atunkọ gbogbo libtransmission lẹsẹkẹsẹ ni C ++, ṣugbọn pinnu lati ṣe iyipada si C ++ ni diėdiė, bẹrẹ pẹlu iyipada si iṣakojọpọ iṣẹ akanṣe nipa lilo olupilẹṣẹ C ++. Ni fọọmu lọwọlọwọ rẹ, olupilẹṣẹ C ko le ṣee lo fun apejọ mọ, nitori diẹ ninu awọn itumọ C ++ kan ti a ti ṣafikun si koodu naa, gẹgẹbi “afọwọyi” Koko ati iru awọn iyipada nipa lilo oniṣẹ “static_cast”. Atilẹyin fun awọn iṣẹ C agbalagba ti gbero lati wa fun ibaramu, ṣugbọn awọn olupilẹṣẹ ni iwuri lati lo std :: too () dipo qsort () ati std :: vector dipo tr_ptrArray. constexpr dipo tr_strdup () ati STD :: fekito dipo tr_ptrArray.

orisun: opennet.ru

Fi ọrọìwòye kun