// (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> >(); }