#ifndef STORM_MODELCHECKER_HINTS_EXPLICITMODELCHECKERHINT_H #define STORM_MODELCHECKER_HINTS_EXPLICITMODELCHECKERHINT_H #include #include #include "storm/modelchecker/hints/ModelCheckerHint.h" #include "storm/storage/TotalScheduler.h" namespace storm { namespace modelchecker { template class ExplicitModelCheckerHint : public ModelCheckerHint { public: ExplicitModelCheckerHint(ExplicitModelCheckerHint const& other) = default; ExplicitModelCheckerHint(ExplicitModelCheckerHint&& other) = default; ExplicitModelCheckerHint(boost::optional> const& resultHint = boost::none, boost::optional const& schedulerHint = boost::none); ExplicitModelCheckerHint(boost::optional>&& resultHint, boost::optional&& schedulerHint = boost::none); // Returns true iff this hint does not contain any information virtual bool isEmpty() const override; // Returns true iff this is an explicit model checker hint virtual bool isExplicitModelCheckerHint() const override; bool hasResultHint() const; std::vector const& getResultHint() const; std::vector& getResultHint(); void setResultHint(boost::optional> const& resultHint); void setResultHint(boost::optional>&& resultHint); bool hasSchedulerHint() const; storm::storage::TotalScheduler const& getSchedulerHint() const; storm::storage::TotalScheduler& getSchedulerHint(); void setSchedulerHint(boost::optional const& schedulerHint); void setSchedulerHint(boost::optional&& schedulerHint); private: boost::optional> resultHint; boost::optional schedulerHint; }; } } #endif /* STORM_MODELCHECKER_HINTS_EXPLICITMODELCHECKERHINT_H */