mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-10 20:22:31 +00:00
* Fixed dummy choke groups default heuristics and other minor issues.
* Added 'd.group.name'. git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1267 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
+23
-6
@@ -88,6 +88,11 @@ cg_d_group(core::Download* download) {
|
||||
return torrent::resource_manager()->entry_at(download->main()).group();
|
||||
}
|
||||
|
||||
const std::string&
|
||||
cg_d_group_name(core::Download* download) {
|
||||
return torrent::resource_manager()->group_at(torrent::resource_manager()->entry_at(download->main()).group()).name();
|
||||
}
|
||||
|
||||
void
|
||||
cg_d_group_set(core::Download* download, const torrent::Object& arg) {
|
||||
torrent::resource_manager()->set_group(torrent::resource_manager()->find_throw(download->main()), cg_get_index(arg));
|
||||
@@ -192,6 +197,9 @@ apply_cg_insert(const std::string& arg) {
|
||||
cg_list_hack.push_back(new torrent::choke_group());
|
||||
cg_list_hack.back()->set_name(arg);
|
||||
|
||||
cg_list_hack.back()->up_queue()->set_heuristics(torrent::choke_queue::HEURISTICS_UPLOAD_LEECH);
|
||||
cg_list_hack.back()->down_queue()->set_heuristics(torrent::choke_queue::HEURISTICS_DOWNLOAD_LEECH);
|
||||
|
||||
return torrent::Object();
|
||||
}
|
||||
|
||||
@@ -233,7 +241,8 @@ apply_cg_heuristics_set(const torrent::Object::list_type& args, bool is_up) {
|
||||
if (args.size() != 2)
|
||||
throw torrent::input_error("Incorrect number of arguments.");
|
||||
|
||||
int t = torrent::option_find_string(torrent::OPTION_CHOKE_HEURISTICS, args.back().as_string().c_str());
|
||||
int t = torrent::option_find_string(is_up ? torrent::OPTION_CHOKE_HEURISTICS_UPLOAD : torrent::OPTION_CHOKE_HEURISTICS_DOWNLOAD,
|
||||
args.back().as_string().c_str());
|
||||
|
||||
if (is_up)
|
||||
cg_get_group(args.front())->up_queue()->set_heuristics((torrent::choke_queue::heuristics_enum)t);
|
||||
@@ -293,8 +302,10 @@ Upload / download rate for the aggregate of all torrents in this
|
||||
particular group.
|
||||
|
||||
(choke_group.up.max,<cg_index>) -> <max_upload_slots>
|
||||
(choke_group.up.max.unlimited,<cg_index>) -> <max_upload_slots>
|
||||
(choke_group.up.max.set,<cg_index>, <max_upload_slots>)
|
||||
(choke_group.down.max,<cg_index>) -> <max_download_slots>
|
||||
(choke_group.down.max.unlimited,<cg_index>) -> <max_download_slots>
|
||||
(choke_group.down.max.set,<cg_index>, <max_download_slots)
|
||||
|
||||
Number of unchoked upload / download peers regulated on a group basis.
|
||||
@@ -311,10 +322,14 @@ Number of unchoked upload / download peers regulated on a group basis.
|
||||
(choke_group.down.heuristics,<cg_index>) -> "heuristics"
|
||||
(choke_group.down.heuristics.set,<cg_index>,"heuristics")
|
||||
|
||||
Heuristics used for deciding what peers to choke and unchoke, see
|
||||
Heuristics are used for deciding what peers to choke and unchoke, see
|
||||
'strings.choke_heuristics{,_download,_upload}' for a list of available
|
||||
options.
|
||||
|
||||
(d.group) -> <choke_group_index>
|
||||
(d.group.name) -> "choke_group_name"
|
||||
(d.group.set,<cg_index>)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@@ -333,8 +348,7 @@ initialize_command_groups() {
|
||||
CMD2_ANY ("choke_group.size", std::bind(&torrent::ResourceManager::group_size, torrent::resource_manager()));
|
||||
CMD2_ANY_STRING ("choke_group.index_of", std::bind(&torrent::ResourceManager::group_index_of, torrent::resource_manager(), std::placeholders::_2));
|
||||
#else
|
||||
cg_list_hack.push_back(new torrent::choke_group());
|
||||
cg_list_hack.back()->set_name("default");
|
||||
apply_cg_insert("default");
|
||||
|
||||
CMD2_ANY ("choke_group.size", std::bind(&std::vector<torrent::choke_group*>::size, cg_list_hack));
|
||||
CMD2_ANY_STRING ("choke_group.index_of", std::bind(&apply_cg_index_of, std::placeholders::_2));
|
||||
@@ -351,7 +365,8 @@ initialize_command_groups() {
|
||||
CMD2_ANY ("choke_group.up.rate", std::bind(&torrent::choke_group::up_rate, CG_GROUP_AT()));
|
||||
CMD2_ANY ("choke_group.down.rate", std::bind(&torrent::choke_group::down_rate, CG_GROUP_AT()));
|
||||
|
||||
CMD2_ANY ("choke_group.up.max", std::bind(&torrent::choke_queue::max_unchoked, CHOKE_GROUP(&torrent::choke_group::up_queue)));
|
||||
CMD2_ANY ("choke_group.up.max.unlimited", std::bind(&torrent::choke_queue::is_unlimited, CHOKE_GROUP(&torrent::choke_group::up_queue)));
|
||||
CMD2_ANY ("choke_group.up.max", std::bind(&torrent::choke_queue::max_unchoked_signed, CHOKE_GROUP(&torrent::choke_group::up_queue)));
|
||||
CMD2_ANY_LIST ("choke_group.up.max.set", std::bind(&apply_cg_max_set, std::placeholders::_2, true));
|
||||
|
||||
CMD2_ANY ("choke_group.up.total", std::bind(&torrent::choke_queue::size_total, CHOKE_GROUP(&torrent::choke_group::up_queue)));
|
||||
@@ -361,8 +376,10 @@ initialize_command_groups() {
|
||||
std::bind(&torrent::choke_queue::heuristics, CHOKE_GROUP(&torrent::choke_group::up_queue))));
|
||||
CMD2_ANY_LIST ("choke_group.up.heuristics.set", std::bind(&apply_cg_heuristics_set, std::placeholders::_2, true));
|
||||
|
||||
CMD2_ANY ("choke_group.down.max", std::bind(&torrent::choke_queue::max_unchoked, CHOKE_GROUP(&torrent::choke_group::down_queue)));
|
||||
CMD2_ANY ("choke_group.down.max.unlimited", std::bind(&torrent::choke_queue::is_unlimited, CHOKE_GROUP(&torrent::choke_group::down_queue)));
|
||||
CMD2_ANY ("choke_group.down.max", std::bind(&torrent::choke_queue::max_unchoked_signed, CHOKE_GROUP(&torrent::choke_group::down_queue)));
|
||||
CMD2_ANY_LIST ("choke_group.down.max.set", std::bind(&apply_cg_max_set, std::placeholders::_2, false));
|
||||
|
||||
CMD2_ANY ("choke_group.down.total", std::bind(&torrent::choke_queue::size_total, CHOKE_GROUP(&torrent::choke_group::down_queue)));
|
||||
CMD2_ANY ("choke_group.down.queued", std::bind(&torrent::choke_queue::size_queued, CHOKE_GROUP(&torrent::choke_group::down_queue)));
|
||||
CMD2_ANY ("choke_group.down.unchoked", std::bind(&torrent::choke_queue::size_unchoked, CHOKE_GROUP(&torrent::choke_group::down_queue)));
|
||||
|
||||
Reference in New Issue
Block a user