#include #include "storm/utility/builder.h" #include "storm/models/sparse/Dtmc.h" #include "storm/models/sparse/Ctmc.h" #include "storm/models/sparse/Mdp.h" #include "storm/models/sparse/MarkovAutomaton.h" namespace storm { namespace utility { namespace builder { template std::shared_ptr> buildModelFromComponents(storm::models::ModelType modelType, storm::storage::sparse::ModelComponents&& components) { switch (modelType) { case storm::models::ModelType::Dtmc: return std::make_shared>(std::move(components)); case storm::models::ModelType::Ctmc: return std::make_shared>(std::move(components)); case storm::models::ModelType::Mdp: return std::make_shared>(std::move(components)); case storm::models::ModelType::MarkovAutomaton: return std::make_shared>(std::move(components)); case storm::models::ModelType::S2pg: return std::make_shared>(std::move(components)); } } template std::shared_ptr> buildModelFromComponents(storm::models::ModelType modelType, storm::storage::sparse::ModelComponents&& components); template std::shared_ptr>> buildModelFromComponents(storm::models::ModelType modelType, storm::storage::sparse::ModelComponents>&& components); template std::shared_ptr> buildModelFromComponents(storm::models::ModelType modelType, storm::storage::sparse::ModelComponents&& components); template std::shared_ptr> buildModelFromComponents(storm::models::ModelType modelType, storm::storage::sparse::ModelComponents&& components); } } }