BitTorrent ڪلائنٽ ٽرانسميشن C کان C++ تائين تبديل ڪري ٿي

libtransmission لائبريري، جيڪو ٽرانسميشن BitTorrent ڪلائنٽ جو بنياد آهي، C++ ۾ ترجمو ڪيو ويو آهي. ٽرانسميشن کي اڃا تائين يوزر انٽرفيس (GTK انٽرفيس، ڊيمون، CLI) جي لاڳو ڪرڻ سان پابند آهي، سي ٻولي ۾ لکيل آهي، پر اسيمبلي کي هاڻي C++ ڪمپيلر جي ضرورت آهي. اڳي، صرف Qt-based انٽرفيس C++ ۾ لکيل هو (macOS لاءِ ڪلائنٽ Objective-C ۾ هو، ويب انٽرفيس JavaScript ۾ هو، ۽ باقي سڀ ڪجهه C ۾ هو).

پورٽنگ چارلس ڪير پاران ڪئي وئي، پروجيڪٽ ليڊر ۽ ليکڪ جي ٽرانسميشن انٽرفيس جي بنياد تي Qt. پوري پروجيڪٽ کي C++ ۾ تبديل ڪرڻ جو بنيادي سبب اهو احساس آهي ته جڏهن libtransmission ۾ تبديليون ڪيون وينديون آهن ته توهان کي مسلسل وهيل کي ٻيهر ايجاد ڪرڻو پوندو آهي، جيتوڻيڪ معياري C++ لائبريري ۾ ساڳي مسئلن لاءِ تيار ٿيل حل موجود آهن (مثال طور، اهو ضروري هو. std: :partial_sort() ۽ std::vector()) جي موجودگيءَ ۾ پنهنجا پنهنجا افعال tr_quickfindFirstK() ۽ tr_ptrArray() ٺاهڻ لاءِ، انهي سان گڏ وڌيڪ جديد قسم جي چڪاس جي سهولتن سان C++ مهيا ڪرڻ.

اهو نوٽ ڪيو وڃي ٿو ته ڊولپرز پاڻ کي فوري طور تي مڪمل ليب ٽرانسميشن کي C++ ۾ ٻيهر لکڻ جو مقصد مقرر نه ڪندا آهن، پر C++ کي تدريجي طور تي منتقلي کي لاڳو ڪرڻ جو ارادو ڪيو آهي، سي ++ ڪمپلر استعمال ڪندي منصوبي کي گڏ ڪرڻ جي منتقلي سان شروع ڪندي. ان جي موجوده شڪل ۾، C مرتب ڪندڙ هاڻي اسيمبليءَ لاءِ استعمال نه ٿو ڪري سگهجي، ڇاڪاڻ ته ڪوڊ ۾ ڪجهه C++-مخصوص تعميرات شامل ڪيا ويا آهن، جيئن ته ”آٽو“ ڪي ورڊ ۽ ٽائپ ڪنورشنز ”static_cast“ آپريٽر استعمال ڪندي. پراڻن سي ڪمن لاءِ سپورٽ مطابقت لاءِ برقرار رکڻ جي منصوبابندي ڪئي وئي آهي، پر ڊولپرز کي ھاڻي استعمال ڪرڻ جي ترغيب ڏني وئي آھي std::sort() بدران qsort() ۽ std::vector بدران tr_ptrArray. constexpr بدران tr_strdup() ۽ std::vector بدران tr_ptrArray.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو