EnergyMeter.h
1 
11 #ifndef WRENCH_ENERGYMETER_H
12 #define WRENCH_ENERGYMETER_H
13 
14 #include "wrench/services/Service.h"
15 
16 namespace wrench {
17 
18  class WMS;
19 
23  class EnergyMeter : public Service {
24 
25  public:
26 
27  void stop() override;
28  void kill();
29 
30  protected:
31 
32  friend class WMS;
33 
34  EnergyMeter(std::shared_ptr<WMS> wms, const std::map<std::string, double> &measurement_periods);
35  EnergyMeter(std::shared_ptr<WMS> wms, const std::vector<std::string> &hostnames, double period);
36 
37 
38  private:
39  int main() override;
40  bool processNextMessage(double timeout);
41 
42 
43  // Relevant WMS
44  std::shared_ptr<WMS> wms;
45 
46  std::map<std::string, double> measurement_periods;
47  std::map<std::string, double> time_to_next_measurement;
48 
49  };
50 
51 };
52 
53 
54 #endif //WRENCH_ENERGYMETER_H
A service that can be added to the simulation and that can be used by a WMS when executing a workflow...
Definition: Service.h:26
void stop() override
Stop the energy meter.
Definition: EnergyMeter.cpp:92
EnergyMeter(std::shared_ptr< WMS > wms, const std::map< std::string, double > &measurement_periods)
Constructor.
Definition: EnergyMeter.cpp:27
void kill()
Kill the energy meter (brutally terminate the daemon)
Definition: EnergyMeter.cpp:82
A service that measures and records energy consumption on a set of hosts at regular time intervals...
Definition: EnergyMeter.h:23
A workflow management system (WMS)
Definition: WMS.h:35
Definition: Alarm.cpp:19