BitTorrent рдХреНрд▓рд╛рдпрдВрдЯ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди C рд╡рд░реВрди C++ рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ

рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдмрд┐рдЯрдЯреЛрд░реЗрдВрдЯ рдХреНрд▓рд╛рдпрдВрдЯрдЪрд╛ рдЖрдзрд╛рд░ рдЕрд╕рд▓реЗрд▓реА libtransmission рд▓рд╛рдпрдмреНрд░рд░реА, C++ рдордзреНрдпреЗ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ. рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рдирд▓рд╛ рдЕрдЬреВрдирд╣реА рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ (рдЬреАрдЯреАрдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕, рдбрд┐рдорди, рд╕реАрдПрд▓рдЖрдп) рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рдмрдВрдзрдиреЗ рдЖрд╣реЗрдд, рд╕реА рднрд╛рд╖реЗрдд рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЕрд╕реЗрдВрдмрд▓реАрд╕рд╛рдареА рдЖрддрд╛ C++ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкреВрд░реНрд╡реА, рдлрдХреНрдд Qt-рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЯрд░рдлреЗрд╕ C++ рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рд╣реЛрддрд╛ (macOS рд╕рд╛рдареА рдХреНрд▓рд╛рдпрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡реНрд╣-C рдордзреНрдпреЗ рд╣реЛрддрд╛, рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ JavaScript рдордзреНрдпреЗ рд╣реЛрддрд╛ рдЖрдгрд┐ рдмрд╛рдХреА рд╕рд░реНрд╡ C рдордзреНрдпреЗ рд╣реЛрддрд╛).

рдкреЛрд░реНрдЯрд┐рдВрдЧ рдЪрд╛рд░реНрд▓реНрд╕ рдХреЗрд░, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реАрдбрд░ рдЖрдгрд┐ Qt рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдЗрдВрдЯрд░рдлреЗрд╕рдЪреЗ рд▓реЗрдЦрдХ рдпрд╛рдВрдиреА рдХреЗрд▓реЗ. рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдХрд▓реНрдк C++ рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдгреНрдпрд╛рдЪреЗ рдореБрдЦреНрдп рдХрд╛рд░рдг рдореНрд╣рдгрдЬреЗ libtransmission рдордзреНрдпреЗ рдмрджрд▓ рдХрд░рддрд╛рдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рддрдд рдЪрд╛рдХ рдкреБрдиреНрд╣рд╛ рд╢реЛрдзреВрди рдХрд╛рдврд╛рд╡реЗ рд▓рд╛рдЧрддреЗ, рдЬрд░реА рдорд╛рдирдХ C++ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рддрддреНрд╕рдо рд╕рдорд╕реНрдпрд╛рдВрд╕рд╛рдареА рддрдпрд╛рд░ рдЙрдкрд╛рдп рдЖрд╣реЗрдд (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ. рддреБрдордЪреА рд╕реНрд╡рддрдГрдЪреА рдлрдВрдХреНрд╢рдиреНрд╕ tr_quickfindFirstK() рдЖрдгрд┐ tr_ptrArray() std: :partial_sort() рдЖрдгрд┐ std::vector() рдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдд рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддрд╕реЗрдЪ C++ рдЕрдзрд┐рдХ рдкреНрд░рдЧрдд рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рддрдкрд╛рд╕рдгреА рд╕реБрд╡рд┐рдзреЗрд╕рд╣ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ.

рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдЬрд╛рддреЗ рдХреА рд╡рд┐рдХрд╛рд╕рдХ C++ рдордзреНрдпреЗ рд╕рдВрдкреВрд░реНрдг libtransmission рддрд╛рдмрдбрддреЛрдм рдкреБрдирд░реНрд▓реЗрдЦрди рдХрд░рдгреНрдпрд╛рдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рдареЗрд╡рдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ C++ рд╕рдВрдХрд▓рдХ рд╡рд╛рдкрд░реВрди рдкреНрд░рдХрд▓реНрдк рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдВрдХреНрд░рдордгрд╛рдкрд╛рд╕реВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрди C++ рдордзреНрдпреЗ рд╕рдВрдХреНрд░рдордг рд╣рд│реВрд╣рд│реВ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рддреНрдпрд╛рдВрдЪрд╛ рд╣реЗрддреВ рдЖрд╣реЗ. рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд, C рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛рдкреБрдвреЗ рдЕрд╕реЗрдВрдмреНрд▓реАрд╕рд╛рдареА рд╡рд╛рдкрд░рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реА, рдХрд╛рд░рдг рдХреЛрдбрдордзреНрдпреЗ рдХрд╛рд╣реА C++-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдЪрдирд╛ рдЬреЛрдбрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд, рдЬрд╕реЗ рдХреА тАЬрд╕реНрд╡рдпрдВтАЭ рдХреАрд╡рд░реНрдб рдЖрдгрд┐ тАЬstatic_castтАЭ рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдкрд░реВрди рд░реВрдкрд╛рдВрддрд░рдгреЗ рдЯрд╛рдЗрдк рдХрд░рдгреЗ. рдЬреБрдиреНрдпрд╛ C рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рд╕реБрд╕рдВрдЧрддрддреЗрд╕рд╛рдареА рд░рд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдпреЛрдЬрд┐рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╡рд┐рдХрд╕рдХрд╛рдВрдирд╛ рдЖрддрд╛ qsort() рдРрд╡рдЬреА std::sort() рдЖрдгрд┐ tr_ptrArray рдРрд╡рдЬреА std::vector рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. tr_strdup() рдРрд╡рдЬреА constexpr рдЖрдгрд┐ tr_ptrArray рдРрд╡рдЬреА std::vector.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛