Scheduler
stateSpaceBuilder.h
Go to the documentation of this file.
1 
10 #ifndef STATESPACEBUILDER_H
11 #define STATESPACEBUILDER_H
12 
13 #include <memory>
14 #include <vector>
15 
16 namespace Mdp
17 {
18 class DomainModel;
19 class PriorityState;
20 class StateSpace;
21 class StateSpaceDimension;
22 
26 {
27 public:
31  void setDomainModel(std::shared_ptr<DomainModel> model);
39  void addDimension(StateSpaceDimension *dimension);
44  std::shared_ptr<StateSpace> getStateSpace();
45 private:
46  void throwIfNoModel();
47  void throwIfInconsistentNumberOfStates();
48  std::vector<StateSpaceDimension *> dimensions;
49  std::vector<PriorityState *> priorityStates;
50  std::shared_ptr<DomainModel> domainModel;
51  int nbOfStates{1};
52  int nbOfPriorityStates{0};
53  int nbOfDimensions{0};
54 };
55 
56 
57 
58 
59 
60 
61 
62 
63 }
64 
65 
66 #endif
void setDomainModel(std::shared_ptr< DomainModel > model)
sets the domain model used by the state space to determine current state
std::shared_ptr< StateSpace > getStateSpace()
call this function last!
void addDimension(StateSpaceDimension *dimension)
adds a dimension to the state space
Definition: action.h:18
void addPriorityState(PriorityState *)
adds single states to the state space
a single state of the state space
Definition: priorityState.h:31
this models a dimension in the state space.
builds a domain specific state space