ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libtransmission, ΠΊΠΎΡΡΠΎ Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Transmission BitTorrent, Π΅ ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½Π° C++. ΠΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ Ρ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ (GTK ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΄Π΅ΠΌΠΎΠ½, CLI), Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° C, Π½ΠΎ Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π²Π΅ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° C++ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΠ°ΠΌΠΎ Π±Π°Π·ΠΈΡΠ°Π½ΠΈΡΡ Π½Π° Qt ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±Π΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C++ (ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π·Π° macOS Π±Π΅ΡΠ΅ Π² Objective-C, ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ Π±Π΅ΡΠ΅ Π² JavaScript ΠΈ Π²ΡΠΈΡΠΊΠΎ ΠΎΡΡΠ°Π½Π°Π»ΠΎ Π±Π΅ΡΠ΅ Π² C).
ΠΡΠ΅Π½Π°ΡΡΠ½Π΅ΡΠΎ Π±Π΅ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½ΠΎ ΠΎΡ Charles Kerr, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π» Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π°Π²ΡΠΎΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Transmission, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Qt. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π·Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π»ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΡΠΌ C++ Π΅ ΡΡΠ΅ΡΠ°Π½Π΅ΡΠΎ, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² libtransmission, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ»Π΅Π»ΠΎΡΠΎ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠΌΠ° Π³ΠΎΡΠΎΠ²ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° C++ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²Π°ΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ tr_quickfindFirstK() ΠΈ tr_ptrArray() Π² ΠΏΡΠΈΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° std: :partial_sort() ΠΈ std::vector()), ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° C++ Ρ ΠΏΠΎ-ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠ°.
ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π΅ ΡΠΈ ΠΏΠΎΡΡΠ°Π²ΡΡ Π·Π° ΡΠ΅Π» Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Ρ ΡΡΠ»Π°ΡΠ° libtransmission Π² C++, Π½ΠΎ Π²ΡΠ·Π½Π°ΠΌΠ΅ΡΡΠ²Π°Ρ Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²ΡΡ ΠΏΡΠ΅Ρ
ΠΎΠ΄Π° ΠΊΡΠΌ C++ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ, ΠΊΠ°ΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ Ρ ΠΏΡΠ΅Ρ
ΠΎΠ΄Π° ΠΊΡΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° C++ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°. Π ΡΠ΅Π³Π°ΡΠ½Π°ΡΠ° ΡΠΈ ΡΠΎΡΠΌΠ° C ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΡΡ Π²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΊΡΠΌ ΠΊΠΎΠ΄Π° ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π½ΡΠΊΠΎΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° C++ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° βautoβ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° βstatic_castβ. ΠΠ»Π°Π½ΠΈΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΠΏΠΎ-ΡΡΠ°ΡΠΈ C ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π·Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ, Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ΅Π³Π° ΡΠ΅ Π½Π°ΡΡΡΡΠ°Π²Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ std::sort() Π²ΠΌΠ΅ΡΡΠΎ qsort() ΠΈ std::vector Π²ΠΌΠ΅ΡΡΠΎ tr_ptrArray. constexpr Π²ΠΌΠ΅ΡΡΠΎ tr_strdup() ΠΈ std::vector Π²ΠΌΠ΅ΡΡΠΎ tr_ptrArray.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru