Alarm.h
1 
10 #ifndef WRENCH_ALARM_H
11 #define WRENCH_ALARM_H
12 
13 #include <string>
14 #include <memory>
15 #include <wrench/services/Service.h>
16 #include "wrench/simulation/SimulationMessage.h"
17 
18 namespace wrench {
19 
20  /***********************/
22  /***********************/
23 
24 
25  class Simulation;
26 
30  class Alarm : public Service {
31 
32  friend class S4U_Daemon;
33 
34  public:
35 
36  static std::shared_ptr<Alarm> createAndStartAlarm(Simulation *simulation, double date, std::string hostname, std::string &reply_mailbox_name,
37  SimulationMessage *msg, std::string suffix);
38 
39  void kill();
40 
41  private:
42  Alarm(double date, std::string hostname, std::string &reply_mailbox_name,
43  SimulationMessage *msg, std::string suffix);
44 
45  double date;
46  std::string reply_mailbox_name;
47  SimulationMessage *msg;
48 
49  int main() override;
50 
51  };
52 
53  /***********************/
55  /***********************/
56 
57 }
58 
59 #endif //WRENCH_ALARM_H
Top-level class to describe a message communicated by processes in the simulation.
Definition: SimulationMessage.h:27
void kill()
Immediately (i.e., brutally) terminate the alarm service.
Definition: Alarm.cpp:103
Definition: Alarm.cpp:20
static std::shared_ptr< Alarm > createAndStartAlarm(Simulation *simulation, double date, std::string hostname, std::string &reply_mailbox_name, SimulationMessage *msg, std::string suffix)
Create and start an alarm service.
Definition: Alarm.cpp:86
A generic "running daemon" abstraction that serves as a basis for all simulated processes.
Definition: S4U_Daemon.h:32
std::string hostname
The name of the host on which the daemon is running.
Definition: S4U_Daemon.h:51
A class that provides basic simulation methods. Once the simulation object has been explicitly or imp...
Definition: Simulation.h:46
A one-shot service that sends a message to a mailbox after some specified amount of time and terminat...
Definition: Alarm.h:30
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
Simulation * simulation
a pointer to the simulation object
Definition: S4U_Daemon.h:105