Hoʻololi ka mea hoʻohana BitTorrent Transmission mai C a i C++

ʻO ka waihona libtransmission, ʻo ia ke kumu o ka mea kūʻai aku ʻo Transmission BitTorrent, ua unuhi ʻia i C++. Loaʻa ka hoʻopaʻa ʻana me ka hoʻokō ʻana i nā mea hoʻohana (GTK interface, daemon, CLI), i kākau ʻia ma ka ʻōlelo C, akā pono ka hui ʻana i kahi C++ compiler. Ma mua, ua kākau ʻia ka interface Qt-based ma C ++ (ʻo ka mea kūʻai aku no macOS ma Objective-C, aia ka interface pūnaewele ma JavaScript, a aia nā mea āpau ma C).

Ua lawe ʻia ka porting e Charles Kerr, ke alakaʻi o ka papahana a me ka mea kākau o ka interface Transmission e pili ana iā Qt. ʻO ke kumu nui o ka hoʻololi ʻana i ka papahana holoʻokoʻa iā C ++ ʻo ia ka manaʻo i ka wā e hana ai i nā loli i ka libtransmission pono ʻoe e hana hou i ka huila, ʻoiai aia nā hoʻonā i mākaukau no nā pilikia like i ka waihona C++ maʻamau (no ka laʻana, pono ia. e hana i kāu mau hana pono'ī tr_quickfindFirstK() a me tr_ptrArray() i mua o std: :partial_sort() a me std::vector()), a me ka hoʻolako ʻana iā C++ me nā mea ʻoi aku ka maikaʻi o ka nānā ʻana.

Hoʻomaopopo ʻia ʻaʻole hoʻonohonoho nā mea hoʻomohala iā lākou iho i ka pahuhopu e kākau hou i ka libtransmission holoʻokoʻa ma C ++, akā manaʻo e hoʻokō i ka hoʻololi ʻana i C ++ me ka mālie, e hoʻomaka me ka hoʻololi ʻana i ka hoʻopili ʻana i ka papahana me ka hoʻohana ʻana i ka C++ compiler. I kona ʻano i kēia manawa, ʻaʻole hiki ke hoʻohana hou ʻia ka C compiler no ka hui ʻana, no ka mea, ua hoʻohui ʻia kekahi mau C++-specific constructs i ke code, e like me ka huaʻōlelo "auto" a me nā hoʻololi ʻano me ka hoʻohana ʻana i ka mea hoʻohana "static_cast". Hoʻolālā ʻia ke kākoʻo no nā hana C kahiko no ka hoʻohālikelike ʻana, akā ua paipai ʻia nā mea hoʻomohala e hoʻohana i ka std::sort() ma kahi o qsort() a me std::vector ma kahi o tr_ptrArray. constexpr ma kahi o tr_strdup() a std::vector ma kahi o tr_ptrArray.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka