12345678910111213141516171819202122232425262728293031323334353637 |
- // (C) Copyright 2006 Douglas Gregor <doug.gregor -at- gmail.com>
- // 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)
- // Authors: Douglas Gregor
- #include <boost/parallel/mpi/python.hpp>
- #include <boost/python.hpp>
- #include <boost/serialization/list.hpp>
- using namespace boost::python;
- template<typename T>
- boost::python::list list_to_python(const std::list<T>& value) {
- boost::python::list result;
- for (typename std::list<T>::const_iterator i = value.begin();
- i != value.end(); ++i)
- result.append(*i);
- return result;
- }
- BOOST_PYTHON_MODULE(skeleton_content)
- {
- using boost::python::arg;
- class_<std::list<int> >("list_int")
- .def("push_back", &std::list<int>::push_back, arg("value"))
- .def("pop_back", &std::list<int>::pop_back)
- .def("reverse", &std::list<int>::reverse)
- .def(boost::python::self == boost::python::self)
- .def(boost::python::self != boost::python::self)
- .add_property("size", &std::list<int>::size)
- .def("to_python", &list_to_python<int>);
- boost::parallel::mpi::python::register_skeleton_and_content<std::list<int> >();
- }
|