add missing min_memory_usage() and high_performance_seed() settings presets to python

This commit is contained in:
arvidn 2017-01-23 20:33:52 -05:00 committed by Arvid Norberg
parent 605227d9da
commit 62db98ca09
3 changed files with 53 additions and 22 deletions

View File

@ -1,3 +1,4 @@
* add missing min_memory_usage() and high_performance_seed() settings presets to python
* fix stat cache issue that sometimes would produce incorrect resume data
* storage optimization to peer classes
* fix torrent name in alerts of builds with deprecated functions

View File

@ -140,6 +140,29 @@ namespace
}
}
dict make_dict(lt::settings_pack const& sett)
{
dict ret;
for (int i = settings_pack::string_type_base;
i < settings_pack::max_string_setting_internal; ++i)
{
ret[name_for_setting(i)] = sett.get_str(i);
}
for (int i = settings_pack::int_type_base;
i < settings_pack::max_int_setting_internal; ++i)
{
ret[name_for_setting(i)] = sett.get_int(i);
}
for (int i = settings_pack::bool_type_base;
i < settings_pack::max_bool_setting_internal; ++i)
{
ret[name_for_setting(i)] = sett.get_bool(i);
}
return ret;
}
boost::shared_ptr<lt::session> make_session(boost::python::dict sett, int flags)
{
settings_pack p;
@ -181,25 +204,21 @@ namespace
allow_threading_guard guard;
sett = ses.get_settings();
}
dict ret;
for (int i = settings_pack::string_type_base;
i < settings_pack::max_string_setting_internal; ++i)
{
ret[name_for_setting(i)] = sett.get_str(i);
}
return make_dict(sett);
}
for (int i = settings_pack::int_type_base;
i < settings_pack::max_int_setting_internal; ++i)
{
ret[name_for_setting(i)] = sett.get_int(i);
}
dict min_memory_usage_wrapper()
{
settings_pack ret;
min_memory_usage(ret);
return make_dict(ret);
}
for (int i = settings_pack::bool_type_base;
i < settings_pack::max_bool_setting_internal; ++i)
{
ret[name_for_setting(i)] = sett.get_bool(i);
}
return ret;
dict high_performance_seed_wrapper()
{
settings_pack ret;
high_performance_seed(ret);
return make_dict(ret);
}
#ifndef BOOST_NO_EXCEPTIONS
@ -962,11 +981,8 @@ void bind_session()
scope().attr("create_metadata_plugin") = "metadata_transfer";
#endif
typedef void (*mem_preset2)(settings_pack& s);
typedef void (*perf_preset2)(settings_pack& s);
def("high_performance_seed", (perf_preset2)high_performance_seed);
def("min_memory_usage", (mem_preset2)min_memory_usage);
def("high_performance_seed", high_performance_seed_wrapper);
def("min_memory_usage", min_memory_usage_wrapper);
class_<stats_metric>("stats_metric")
.def_readonly("name", &stats_metric::name)

View File

@ -252,6 +252,20 @@ class test_session(unittest.TestCase):
self.assertEqual(s.get_settings()['num_want'], 66)
self.assertEqual(s.get_settings()['user_agent'], 'test123')
def test_min_memory_preset(self):
min_mem = lt.min_memory_usage()
print(min_mem)
self.assertTrue('connection_speed' in min_mem)
self.assertTrue('file_pool_size' in min_mem)
def test_seed_mode_preset(self):
seed_mode = lt.high_performance_seed()
print(seed_mode)
self.assertTrue('alert_queue_size' in seed_mode)
self.assertTrue('connection_speed' in seed_mode)
self.assertTrue('file_pool_size' in seed_mode)
if __name__ == '__main__':
print(lt.__version__)