From da7462b92215c16a83932b0bc6c67ab85f98aa2d Mon Sep 17 00:00:00 2001 From: sjunges Date: Tue, 19 Jan 2016 18:52:11 +0100 Subject: [PATCH] Added helper for shared_pointer conversion, refactored a bit. Still some open questions though Former-commit-id: 5148fe17e11a43d2cd401e6827d54cd16ab7eb54 --- src/python/storm-core.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/python/storm-core.cpp b/src/python/storm-core.cpp index 03dfcc4db..5742db436 100644 --- a/src/python/storm-core.cpp +++ b/src/python/storm-core.cpp @@ -4,9 +4,9 @@ #include "../logic/Formulas.h" -//namespace boost { -// template T* get_pointer(std::shared_ptr p) { return p.get(); } -//} +namespace boost { + template T* get_pointer(std::shared_ptr p) { return p.get(); } +} namespace boost { namespace python { namespace converter { @@ -49,6 +49,10 @@ namespace boost { namespace python { namespace converter { }}} // namespace boost::python::converter +template +void shared_ptr_implicitely_convertible() { + boost::python::implicitly_convertible, std::shared_ptr>(); +}; std::shared_ptr buildModel(storm::prism::Program const& program, std::shared_ptr const& formula) { @@ -114,15 +118,18 @@ BOOST_PYTHON_MODULE(_core) .add_property("model_type", &storm::models::ModelBase::getType) .def("asPdtmc", &storm::models::ModelBase::as>) ; + register_ptr_to_python>(); class_, std::shared_ptr >, boost::noncopyable, bases>("SparseParametricModel", no_init); + register_ptr_to_python>>(); class_, std::shared_ptr>, boost::noncopyable, bases>("SparseModel", no_init); + register_ptr_to_python>>(); class_, std::shared_ptr>, boost::noncopyable, bases>>("SparseParametricMc", no_init); - - register_ptr_to_python>(); - register_ptr_to_python>>(); - implicitly_convertible>, std::shared_ptr>>(); register_ptr_to_python>>(); +// implicitly_convertible>, std::shared_ptr>>(); + shared_ptr_implicitely_convertible, storm::models::sparse::Model>(); + + def("parseFormulae", storm::parseFormulasForProgram); def("parseProgram", storm::parseProgram);