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