// (C) Copyright 2006 Douglas Gregor // 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 #ifndef BOOST_MPI_PYTHON_UTILITY_HPP #define BOOST_MPI_PYTHON_UTILITY_HPP /** @file utility.hpp * * This file is a utility header for the Boost.MPI Python bindings. */ #include namespace boost { namespace mpi { namespace python { template class translate_exception { explicit translate_exception(boost::python::object type) : type(type) { } public: static void declare(boost::python::object type) { using boost::python::register_exception_translator; register_exception_translator(translate_exception(type)); } void operator()(const E& e) const { using boost::python::object; PyErr_SetObject(type.ptr(), object(e).ptr()); } private: boost::python::object type; }; } } } // end namespace boost::mpi::python #endif // BOOST_MPI_PYTHON_UTILITY_HPP