You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.6 KiB
40 lines
1.6 KiB
#ifndef STORM_STORAGE_SCHEDULER_H_
|
|
#define STORM_STORAGE_SCHEDULER_H_
|
|
|
|
#include <cstdint>
|
|
|
|
namespace storm {
|
|
namespace storage {
|
|
|
|
/*
|
|
* This class is the abstract base class of all scheduler classes. Scheduler classes define which action is
|
|
* chosen in a particular state of a non-deterministic model. More concretely, a scheduler maps a state s to i
|
|
* if the scheduler takes the i-th action available in s (i.e. the choices are relative to the states).
|
|
*/
|
|
class Scheduler {
|
|
public:
|
|
/*
|
|
* Sets the choice defined by the scheduler for the given state.
|
|
*
|
|
* @param state The state for which to set the choice.
|
|
* @param choice The choice to set for the given state.
|
|
*/
|
|
virtual void setChoice(uint_fast64_t state, uint_fast64_t choice) = 0;
|
|
|
|
/*
|
|
* Retrieves whether this scheduler defines a choice for the given state.
|
|
*
|
|
* @param state The state for which to check whether the scheduler defines a choice.
|
|
* @return True if the scheduler defines a choice for the given state.
|
|
*/
|
|
virtual bool isChoiceDefined(uint_fast64_t state) const = 0;
|
|
|
|
/*!
|
|
* Retrieves the choice for the given state under the assumption that the scheduler defines a proper choice for the state.
|
|
*/
|
|
virtual uint_fast64_t getChoice(uint_fast64_t state) const = 0;
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif /* STORM_STORAGE_SCHEDULER_H_ */
|