mammut.hpp
1 #ifndef MAMMUT_MAMMUT_HPP_
2 #define MAMMUT_MAMMUT_HPP_
3 
4 #include "./cpufreq/cpufreq.hpp"
5 #include "./energy/energy.hpp"
6 #include "./task/task.hpp"
7 #include "./topology/topology.hpp"
8 
9 namespace mammut{
10 
11 class Mammut{
12 private:
13  mutable cpufreq::CpuFreq* _cpufreq;
14  mutable energy::Energy* _energy;
15  mutable topology::Topology* _topology;
16  mutable task::TasksManager* _task;
17 
18  Communicator* _communicator;
19 
23  void releaseModules();
24 public:
25  //TODO: Rule of the three
26 
32  Mammut(Communicator* const communicator = NULL);
33 
38  Mammut(const Mammut& other);
39 
43  ~Mammut();
44 
49  Mammut& operator=(const Mammut& other);
50 
56 
62 
68 
74 
75 
76 };
77 
78 }
79 
80 
81 
82 #endif /* MAMMUT_MAMMUT_HPP_ */
Definition: task.hpp:156
Definition: cpufreq.hpp:235
Mammut(Communicator *const communicator=NULL)
Definition: topology.hpp:56
Mammut & operator=(const Mammut &other)
Definition: mammut.hpp:11
energy::Energy * getInstanceEnergy() const
topology::Topology * getInstanceTopology() const
Definition: energy.hpp:234
cpufreq::CpuFreq * getInstanceCpuFreq() const
task::TasksManager * getInstanceTask() const