10 #ifndef WRENCH_NETWORKDAEMONS_H
11 #define WRENCH_NETWORKDAEMONS_H
14 #include "wrench/services/Service.h"
15 #include "wrench/services/network_proximity/NetworkProximityServiceProperty.h"
16 #include "wrench/services/network_proximity/NetworkProximityServiceMessagePayload.h"
29 class NetworkProximityDaemon:
public Service {
32 NetworkProximityDaemon(Simulation *simulation, std::string hostname,
33 std::string network_proximity_service_mailbox,
34 double message_size,
double measurement_period,
35 double noise, std::map<std::string, double> messagepayload_list);
39 friend class Simulation;
41 NetworkProximityDaemon(Simulation *simulation, std::string hostname,
42 std::string network_proximity_service_mailbox,
43 double message_size,
double measurement_period,
44 double noise, std::map<std::string, double> messagepayload_list, std::string suffix);
48 double measurement_period;
52 std::string next_mailbox_to_send;
53 std::shared_ptr<NetworkProximityDaemon> next_daemon_to_send;
54 std::string next_host_to_send;
55 std::string network_proximity_service_mailbox;
58 void cleanup(
bool has_returned_from_main,
int return_value)
override;
61 double getTimeUntilNextMeasurement();
63 bool processNextMessage(
double timeout);
72 #endif //WRENCH_NETWORKDAEMONS_H