From 50f98c124fd7fbf186f2709994c03ff962af4cd2 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Tue, 27 Aug 2013 16:04:19 +0000 Subject: [PATCH] some python bindings fixes --- bindings/python/src/big_number.cpp | 17 +++++---- bindings/python/src/create_torrent.cpp | 8 ++-- bindings/python/src/magnet_uri.cpp | 8 +--- bindings/python/src/module.cpp | 4 +- bindings/python/src/session.cpp | 53 +++++++++----------------- bindings/python/src/torrent_handle.cpp | 4 +- 6 files changed, 38 insertions(+), 56 deletions(-) diff --git a/bindings/python/src/big_number.cpp b/bindings/python/src/big_number.cpp index b887bc7a3..38f1d5d0f 100644 --- a/bindings/python/src/big_number.cpp +++ b/bindings/python/src/big_number.cpp @@ -2,24 +2,27 @@ // subject to the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include -void bind_big_number() +void bind_sha1_hash() { using namespace boost::python; using namespace libtorrent; - class_("big_number") + class_("sha1_hash") .def(self == self) .def(self != self) .def(self < self) .def(self_ns::str(self)) .def(init()) - .def("clear", &big_number::clear) - .def("is_all_zeros", &big_number::is_all_zeros) - .def("to_string", &big_number::to_string) -// .def("__getitem__", &big_number::opreator[]) + .def("clear", &sha1_hash::clear) + .def("is_all_zeros", &sha1_hash::is_all_zeros) + .def("to_string", &sha1_hash::to_string) +// .def("__getitem__", &sha1_hash::opreator[]) ; + + scope().attr("big_number") = scope().attr("sha1_hash"); + scope().attr("peer_id") = scope().attr("peer_id"); } diff --git a/bindings/python/src/create_torrent.cpp b/bindings/python/src/create_torrent.cpp index 3b70d6bdf..d94923ca1 100644 --- a/bindings/python/src/create_torrent.cpp +++ b/bindings/python/src/create_torrent.cpp @@ -65,13 +65,13 @@ namespace void bind_create_torrent() { void (file_storage::*add_file0)(std::string const&, size_type, int, std::time_t, std::string const&) = &file_storage::add_file; -#if TORRENT_USE_WSTRING +#if TORRENT_USE_WSTRING && !defined TORRENT_NO_DEPRECATE void (file_storage::*add_file1)(std::wstring const&, size_type, int, std::time_t, std::string const&) = &file_storage::add_file; #endif void (file_storage::*set_name0)(std::string const&) = &file_storage::set_name; void (file_storage::*rename_file0)(int, std::string const&) = &file_storage::rename_file; -#if TORRENT_USE_WSTRING +#if TORRENT_USE_WSTRING && !defined TORRENT_NO_DEPRECATE void (file_storage::*set_name1)(std::wstring const&) = &file_storage::set_name; void (file_storage::*rename_file1)(int, std::wstring const&) = &file_storage::rename_file; #endif @@ -87,7 +87,7 @@ void bind_create_torrent() .def("is_valid", &file_storage::is_valid) .def("add_file", add_file, arg("entry")) .def("add_file", add_file0, (arg("path"), arg("size"), arg("flags") = 0, arg("mtime") = 0, arg("linkpath") = "")) -#if TORRENT_USE_WSTRING +#if TORRENT_USE_WSTRING && !defined TORRENT_NO_DEPRECATE .def("add_file", add_file1, (arg("path"), arg("size"), arg("flags") = 0, arg("mtime") = 0, arg("linkpath") = "")) #endif .def("num_files", &file_storage::num_files) @@ -106,7 +106,7 @@ void bind_create_torrent() .def("piece_size", &file_storage::piece_size) .def("set_name", set_name0) .def("rename_file", rename_file0) -#if TORRENT_USE_WSTRING +#if TORRENT_USE_WSTRING && !defined TORRENT_NO_DEPRECATE .def("set_name", set_name1) .def("rename_file", rename_file1) #endif diff --git a/bindings/python/src/magnet_uri.cpp b/bindings/python/src/magnet_uri.cpp index 410565a17..9c328c786 100644 --- a/bindings/python/src/magnet_uri.cpp +++ b/bindings/python/src/magnet_uri.cpp @@ -11,9 +11,7 @@ using namespace boost::python; using namespace libtorrent; -extern void dict_to_add_torrent_params(dict params - , add_torrent_params& p, std::vector& rd - , std::vector& fp); +extern void dict_to_add_torrent_params(dict params, add_torrent_params& p); namespace { @@ -22,9 +20,7 @@ namespace { { add_torrent_params p; - std::vector resume_buf; - std::vector files_buf; - dict_to_add_torrent_params(params, p, resume_buf, files_buf); + dict_to_add_torrent_params(params, p); allow_threading_guard guard; diff --git a/bindings/python/src/module.cpp b/bindings/python/src/module.cpp index 3168488e6..32e4cd898 100644 --- a/bindings/python/src/module.cpp +++ b/bindings/python/src/module.cpp @@ -11,7 +11,7 @@ void bind_utility(); void bind_fingerprint(); -void bind_big_number(); +void bind_sha1_hash(); void bind_session(); void bind_entry(); void bind_torrent_info(); @@ -38,7 +38,7 @@ BOOST_PYTHON_MODULE(libtorrent) bind_error_code(); bind_utility(); bind_fingerprint(); - bind_big_number(); + bind_sha1_hash(); bind_entry(); bind_session(); bind_torrent_info(); diff --git a/bindings/python/src/session.cpp b/bindings/python/src/session.cpp index 56814e008..c778b97f6 100644 --- a/bindings/python/src/session.cpp +++ b/bindings/python/src/session.cpp @@ -175,8 +175,7 @@ namespace #endif } - void dict_to_add_torrent_params(dict params, add_torrent_params& p - , std::vector& rd, std::vector& fp) + void dict_to_add_torrent_params(dict params, add_torrent_params& p) { // torrent_info objects are always held by an intrusive_ptr in the python binding if (params.has_key("ti") && params.get("ti") != boost::python::object()) @@ -191,9 +190,7 @@ namespace if (params.has_key("resume_data")) { std::string resume = extract(params["resume_data"]); - rd.resize(resume.size()); - std::memcpy(&rd[0], &resume[0], rd.size()); - p.resume_data = &rd; + p.resume_data.assign(resume.begin(), resume.end()); } if (params.has_key("storage_mode")) p.storage_mode = extract(params["storage_mode"]); @@ -248,14 +245,13 @@ namespace if (params.has_key("uuid")) p.uuid = extract(params["uuid"]); - fp.clear(); if (params.has_key("file_priorities")) { list l = extract(params["file_priorities"]); int n = boost::python::len(l); for(int i = 0; i < n; i++) - fp.push_back(extract(l[i])); - p.file_priorities = &fp; + p.file_priorities.push_back(extract(l[i])); + p.file_priorities.clear(); } } @@ -265,9 +261,7 @@ namespace torrent_handle add_torrent(session& s, dict params) { add_torrent_params p; - std::vector resume_buf; - std::vector files_buf; - dict_to_add_torrent_params(params, p, resume_buf, files_buf); + dict_to_add_torrent_params(params, p); allow_threading_guard guard; @@ -282,9 +276,7 @@ namespace void async_add_torrent(session& s, dict params) { add_torrent_params p; - std::vector resume_buf; - std::vector files_buf; - dict_to_add_torrent_params(params, p, resume_buf, files_buf); + dict_to_add_torrent_params(params, p); allow_threading_guard guard; @@ -296,9 +288,7 @@ namespace #endif } - void dict_to_feed_settings(dict params, feed_settings& feed - , std::vector& resume_buf - , std::vector files_buf) + void dict_to_feed_settings(dict params, feed_settings& feed) { if (params.has_key("auto_download")) feed.auto_download = extract(params["auto_download"]); @@ -307,8 +297,7 @@ namespace if (params.has_key("url")) feed.url = extract(params["url"]); if (params.has_key("add_args")) - dict_to_add_torrent_params(dict(params["add_args"]), feed.add_args - , resume_buf, files_buf); + dict_to_add_torrent_params(dict(params["add_args"]), feed.add_args); } feed_handle add_feed(session& s, dict params) @@ -316,9 +305,7 @@ namespace feed_settings feed; // this static here is a bit of a hack. It will // probably work for the most part - static std::vector resume_buf; - static std::vector files_buf; - dict_to_feed_settings(params, feed, resume_buf, files_buf); + dict_to_feed_settings(params, feed); allow_threading_guard guard; return s.add_feed(feed); @@ -364,9 +351,7 @@ namespace void set_feed_settings(feed_handle& h, dict sett) { feed_settings feed; - static std::vector resume_buf; - static std::vector files_buf; - dict_to_feed_settings(sett, feed, resume_buf, files_buf); + dict_to_feed_settings(sett, feed); h.set_settings(feed); } @@ -594,7 +579,6 @@ void bind_session() ; enum_("options_t") - .value("none", session::none) .value("delete_files", session::delete_files) ; @@ -688,8 +672,7 @@ void bind_session() #endif #endif .def("add_feed", &add_feed) - .def("remove_torrent", allow_threads(&session::remove_torrent), arg("option") = session::none -) + .def("remove_torrent", allow_threads(&session::remove_torrent), arg("option") = 0) #ifndef TORRENT_NO_DEPRECATE .def("set_local_download_rate_limit", allow_threads(&session::set_local_download_rate_limit)) .def("local_download_rate_limit", allow_threads(&session::local_download_rate_limit)) @@ -765,7 +748,7 @@ void bind_session() .def("is_paused", allow_threads(&session::is_paused)) .def("id", allow_threads(&session::id)) .def("get_cache_status", allow_threads(&session::get_cache_status)) - .def("get_cache_info", get_cache_info) + .def("get_cache_info", get_cache_info) .def("set_peer_id", allow_threads(&session::set_peer_id)) ; @@ -808,11 +791,11 @@ void bind_session() register_ptr_to_python >(); - def("high_performance_seed", high_performance_seed); - def("min_memory_usage", min_memory_usage); + def("high_performance_seed", high_performance_seed); + def("min_memory_usage", min_memory_usage); - scope().attr("create_metadata_plugin") = "metadata_transfer"; - scope().attr("create_ut_metadata_plugin") = "ut_metadata"; - scope().attr("create_ut_pex_plugin") = "ut_pex"; - scope().attr("create_smart_ban_plugin") = "smart_ban"; + scope().attr("create_metadata_plugin") = "metadata_transfer"; + scope().attr("create_ut_metadata_plugin") = "ut_metadata"; + scope().attr("create_ut_pex_plugin") = "ut_pex"; + scope().attr("create_smart_ban_plugin") = "smart_ban"; } diff --git a/bindings/python/src/torrent_handle.cpp b/bindings/python/src/torrent_handle.cpp index ce336d1c8..d1ad13fd7 100644 --- a/bindings/python/src/torrent_handle.cpp +++ b/bindings/python/src/torrent_handle.cpp @@ -347,7 +347,7 @@ void bind_torrent_handle() void (torrent_handle::*move_storage0)(std::string const&, int flags) const = &torrent_handle::move_storage; void (torrent_handle::*rename_file0)(int, std::string const&) const = &torrent_handle::rename_file; -#if TORRENT_USE_WSTRING +#if TORRENT_USE_WSTRING && !defined TORRENT_NO_DEPRECATE void (torrent_handle::*move_storage1)(std::wstring const&, int flags) const = &torrent_handle::move_storage; void (torrent_handle::*rename_file1)(int, std::wstring const&) const = &torrent_handle::rename_file; #endif @@ -459,7 +459,7 @@ void bind_torrent_handle() .def("force_recheck", _(&torrent_handle::force_recheck)) .def("rename_file", _(rename_file0)) .def("set_ssl_certificate", &torrent_handle::set_ssl_certificate, (arg("cert"), arg("private_key"), arg("dh_params"), arg("passphrase")="")) -#if TORRENT_USE_WSTRING +#if TORRENT_USE_WSTRING && !defined TORRENT_NO_DEPRECATE .def("move_storage", _(move_storage1), (arg("path"), arg("flags") = 0)) .def("rename_file", _(rename_file1)) #endif