Add a std::pair to tuple converter
Add 'outgoing_ports' to session_settings
This commit is contained in:
parent
76cea23b4c
commit
11c21f2abe
|
@ -1,5 +1,51 @@
|
|||
// Copyright Daniel Wallin 2007. Use, modification and distribution is
|
||||
// Copyright Andrew Resch 2009. Use, modification and distribution is
|
||||
// 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 <boost/python.hpp>
|
||||
|
||||
using namespace boost::python;
|
||||
|
||||
template<class T1, class T2>
|
||||
struct pair_to_tuple
|
||||
{
|
||||
static PyObject* convert(const std::pair<T1, T2>& p)
|
||||
{
|
||||
return incref(make_tuple(p.first, p.second).ptr());
|
||||
}
|
||||
};
|
||||
|
||||
template<class T1, class T2>
|
||||
struct tuple_to_pair
|
||||
{
|
||||
tuple_to_pair()
|
||||
{
|
||||
converter::registry::push_back(
|
||||
&convertible, &construct, type_id<std::pair<T1, T2> >()
|
||||
);
|
||||
}
|
||||
|
||||
static void* convertible(PyObject* x)
|
||||
{
|
||||
return PyTuple_Check(x) ? x: 0;
|
||||
}
|
||||
|
||||
static void construct(PyObject* x, converter::rvalue_from_python_stage1_data* data)
|
||||
{
|
||||
void* storage = ((converter::rvalue_from_python_storage<
|
||||
std::pair<T1, T2> >*)data)->storage.bytes;
|
||||
|
||||
object o(borrowed(x));
|
||||
std::pair<T1, T2> p;
|
||||
p.first = extract<T1>(o[0]);
|
||||
p.second = extract<T2>(o[1]);
|
||||
new (storage) std::pair<T1, T2>(p);
|
||||
data->convertible = storage;
|
||||
}
|
||||
};
|
||||
|
||||
void bind_converters()
|
||||
{
|
||||
to_python_converter<std::pair<int, int>, pair_to_tuple<int, int> >();
|
||||
tuple_to_pair<int, int>();
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ void bind_torrent();
|
|||
void bind_peer_info();
|
||||
void bind_ip_filter();
|
||||
void bind_magnet_uri();
|
||||
void bind_converters();
|
||||
|
||||
BOOST_PYTHON_MODULE(libtorrent)
|
||||
{
|
||||
|
@ -50,5 +51,5 @@ BOOST_PYTHON_MODULE(libtorrent)
|
|||
bind_peer_info();
|
||||
bind_ip_filter();
|
||||
bind_magnet_uri();
|
||||
bind_converters();
|
||||
}
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@ void bind_session_settings()
|
|||
.def_readwrite("auto_scraped_interval", &session_settings::auto_scrape_interval)
|
||||
.def_readwrite("peer_tos", &session_settings::peer_tos)
|
||||
.def_readwrite("rate_limit_ip_overhead", &session_settings::rate_limit_ip_overhead)
|
||||
.def_readwrite("outgoing_ports", &session_settings::outgoing_ports)
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
.def_readwrite("use_dht_as_fallback", &session_settings::use_dht_as_fallback)
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue