Scheduler
rlDisciplineBuilder.cpp
Go to the documentation of this file.
1 
10 #include "rlDisciplineBuilder.h"
11 
12 #include <cassert>
13 #include <iostream>
14 #include <memory>
15 
16 #include <utils/math.h>
17 
18 #include <scheduler/process.h>
19 #include <scheduler/queue.h>
20 #include <scheduler/system.h>
21 
22 #include <mdp/mdpModel.h>
23 #include <mdp/mdpConfiguration.h>
24 #include <mdp/builder.h>
25 #include <mdp/actionDimension.h>
26 
27 #include "configuration.h"
28 #include "actions.h"
29 #include "domainModel.h"
33 
34 using namespace RlScheduler;
35 
37 {
38  disc->model = std::make_shared<DomainModel>(std::dynamic_pointer_cast<Configuration>(disc->conf));
39  disc->model->readyQueue = Scheduler::Queue::getReadyQueue();
40  disc->model->running = nullptr;
41 
42  Mdp::Builder builder(disc->model);
44  RlDisciplineBuilderHelper::addStates(&builder, std::dynamic_pointer_cast<Configuration>(disc->conf));
45  disc->mdpConf = std::make_shared<Mdp::MdpConfiguration>(disc->conf->getName());
46 
47  /*FIXME for conf param, why not use RlSchedulerConfiguration, and have that inherit from MdpConfig.
48  I tried to do that, but it becomes a big mess. See the git branch configurationMess*/
49  disc->mdpModel = new Mdp::MdpModel(builder.getStateSpace(),
50  builder.getActionSpace(),
51  disc->mdpConf);
52 }
53 
54 
55 
56 
57 
58 
59 
60 
std::shared_ptr< ActionSpace > getActionSpace()
Definition: builder.cpp:25
static void buildRlDisciplineModels(RlDiscipline *discipline)
static Queue * getReadyQueue()
get a pointer to the system&#39;s ready queue
Definition: queue.cpp:30
The main class of the MDP framework.
Definition: mdpModel.h:35
std::shared_ptr< SchedulerConfiguration > conf
static void addStates(Mdp::Builder *builder, std::shared_ptr< Configuration > conf)
static void addActions(Mdp::Builder *builder)
std::shared_ptr< StateSpace > getStateSpace()
Definition: builder.cpp:40