class ActorImpl;
using ActorImplPtr = boost::intrusive_ptr<ActorImpl>;
class Host;
-
}
+
namespace surf {
class Resource;
class Cpu;
SURF_LINK_FATPIPE = 0
} e_surf_link_sharing_policy_t;
-typedef enum { // FIXME: move this away; make it an enum class
- SURF_TRACE_CONNECT_KIND_HOST_AVAIL = 4,
- SURF_TRACE_CONNECT_KIND_SPEED = 3,
- SURF_TRACE_CONNECT_KIND_LINK_AVAIL = 2,
- SURF_TRACE_CONNECT_KIND_BANDWIDTH = 1,
- SURF_TRACE_CONNECT_KIND_LATENCY = 0
-} e_surf_trace_connect_kind_t;
-
typedef enum { // FIXME: move this to s4u::Actor; make it an enum class
SURF_ACTOR_ON_FAILURE_DIE = 1,
SURF_ACTOR_ON_FAILURE_RESTART = 0
std::string pc_data;
};
+enum class TraceConnectKind { HOST_AVAIL, SPEED, LINK_AVAIL, BANDWIDTH, LATENCY };
+
class TraceConnectCreationArgs {
public:
- e_surf_trace_connect_kind_t kind;
+ TraceConnectKind kind;
std::string trace;
std::string element;
};
trace_connect->element.c_str());
switch (trace_connect->kind) {
- case SURF_TRACE_CONNECT_KIND_HOST_AVAIL:
- trace_connect_list_host_avail.insert({trace_connect->trace, trace_connect->element});
- break;
- case SURF_TRACE_CONNECT_KIND_SPEED:
- trace_connect_list_host_speed.insert({trace_connect->trace, trace_connect->element});
- break;
- case SURF_TRACE_CONNECT_KIND_LINK_AVAIL:
- trace_connect_list_link_avail.insert({trace_connect->trace, trace_connect->element});
- break;
- case SURF_TRACE_CONNECT_KIND_BANDWIDTH:
- trace_connect_list_link_bw.insert({trace_connect->trace, trace_connect->element});
- break;
- case SURF_TRACE_CONNECT_KIND_LATENCY:
- trace_connect_list_link_lat.insert({trace_connect->trace, trace_connect->element});
- break;
- default:
- surf_parse_error(std::string("Cannot connect trace ") + trace_connect->trace + " to " + trace_connect->element +
- ": unknown kind of trace");
- break;
+ case TraceConnectKind::HOST_AVAIL:
+ trace_connect_list_host_avail.insert({trace_connect->trace, trace_connect->element});
+ break;
+ case TraceConnectKind::SPEED:
+ trace_connect_list_host_speed.insert({trace_connect->trace, trace_connect->element});
+ break;
+ case TraceConnectKind::LINK_AVAIL:
+ trace_connect_list_link_avail.insert({trace_connect->trace, trace_connect->element});
+ break;
+ case TraceConnectKind::BANDWIDTH:
+ trace_connect_list_link_bw.insert({trace_connect->trace, trace_connect->element});
+ break;
+ case TraceConnectKind::LATENCY:
+ trace_connect_list_link_lat.insert({trace_connect->trace, trace_connect->element});
+ break;
+ default:
+ surf_parse_error(std::string("Cannot connect trace ") + trace_connect->trace + " to " + trace_connect->element +
+ ": unknown kind of trace");
+ break;
}
}
switch (A_surfxml_trace___connect_kind) {
case AU_surfxml_trace___connect_kind:
case A_surfxml_trace___connect_kind_SPEED:
- trace_connect.kind = SURF_TRACE_CONNECT_KIND_SPEED;
+ trace_connect.kind = TraceConnectKind::SPEED;
break;
case A_surfxml_trace___connect_kind_BANDWIDTH:
- trace_connect.kind = SURF_TRACE_CONNECT_KIND_BANDWIDTH;
+ trace_connect.kind = TraceConnectKind::BANDWIDTH;
break;
case A_surfxml_trace___connect_kind_HOST___AVAIL:
- trace_connect.kind = SURF_TRACE_CONNECT_KIND_HOST_AVAIL;
+ trace_connect.kind = TraceConnectKind::HOST_AVAIL;
break;
case A_surfxml_trace___connect_kind_LATENCY:
- trace_connect.kind = SURF_TRACE_CONNECT_KIND_LATENCY;
+ trace_connect.kind = TraceConnectKind::LATENCY;
break;
case A_surfxml_trace___connect_kind_LINK___AVAIL:
- trace_connect.kind = SURF_TRACE_CONNECT_KIND_LINK_AVAIL;
+ trace_connect.kind = TraceConnectKind::LINK_AVAIL;
break;
default:
surf_parse_error("Invalid trace kind");