Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
logical_blocks_scheduler.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../common/histogram.hh"
4 #include "../messages/filedescription.hh"
5 #include "stats_listener.hh"
6 
7 #include <vector>
8 #include <string>
9 #include <memory>
10 #include <map>
11 
12 namespace eclipse {
13 namespace logical_blocks_schedulers {
14 typedef std::map<std::string, std::string> SCHEDULER_OPTS;
15 
16 class scheduler;
17 
18 class scheduler {
19  public:
20  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) = 0;
21 
22  std::shared_ptr<stats_listener> listener;
23  std::map<std::string, std::string> options;
25 };
26 
27 std::shared_ptr<eclipse::logical_blocks_schedulers::scheduler>
29 
31  public:
32  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
33 };
34 
36  public:
37  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
38 };
39 
41  public:
42  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
43 };
44 
45 class scheduler_vlmb: public scheduler{
46  public:
47  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
48 };
49 
51  public:
52  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
53 };
54 
55 class scheduler_lean: public scheduler{
56  public:
57  virtual void generate(messages::FileDescription& file_desc, std::vector<std::string> nodes) override;
58 };
59 
60 }
61 }
Definition: logical_blocks_scheduler.hh:30
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_vlmb.cc:64
Definition: logical_blocks_scheduler.hh:50
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_python.cc:41
Definition: logical_blocks_scheduler.hh:55
Definition: filedescription.hh:10
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_score_based.cc:12
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_lean.cc:32
Definition: logical_blocks_scheduler.hh:40
Definition: histogram.hh:20
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_multiwave.cc:147
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes) override
Definition: scheduler_simple.cc:12
Definition: logical_blocks_scheduler.hh:35
Definition: logical_blocks_scheduler.hh:45
std::map< std::string, std::string > options
Definition: logical_blocks_scheduler.hh:23
std::shared_ptr< eclipse::logical_blocks_schedulers::scheduler > scheduler_factory(std::string, Histogram *, SCHEDULER_OPTS=SCHEDULER_OPTS())
std::map< std::string, std::string > SCHEDULER_OPTS
Definition: logical_blocks_scheduler.hh:14
std::shared_ptr< stats_listener > listener
Definition: logical_blocks_scheduler.hh:22
Definition: logical_blocks_scheduler.hh:18
Histogram * boundaries
Definition: logical_blocks_scheduler.hh:24
virtual void generate(messages::FileDescription &file_desc, std::vector< std::string > nodes)=0