*/
struct s_sg_platf_host_cbarg_t {
- const char* id;
+ const char* id = nullptr;
std::vector<double> speed_per_pstate;
- int pstate;
- int core_amount;
- tmgr_trace_t speed_trace;
- tmgr_trace_t state_trace;
- const char* coord;
- std::map<std::string, std::string>* properties;
+ int pstate = 0;
+ int core_amount = 0;
+ tmgr_trace_t speed_trace = nullptr;
+ tmgr_trace_t state_trace = nullptr;
+ const char* coord = nullptr;
+ std::map<std::string, std::string>* properties = nullptr;
};
typedef s_sg_platf_host_cbarg_t* sg_platf_host_cbarg_t;
};
struct s_sg_platf_route_cbarg_t {
- bool symmetrical = false;
- sg_netpoint_t src = nullptr;
- sg_netpoint_t dst = nullptr;
- sg_netpoint_t gw_src = nullptr;
- sg_netpoint_t gw_dst = nullptr;
- std::vector<simgrid::surf::LinkImpl*>* link_list = nullptr;
+ bool symmetrical = false;
+ sg_netpoint_t src = nullptr;
+ sg_netpoint_t dst = nullptr;
+ sg_netpoint_t gw_src = nullptr;
+ sg_netpoint_t gw_dst = nullptr;
+ std::vector<simgrid::surf::LinkImpl*> link_list;
};
typedef s_sg_platf_route_cbarg_t* sg_platf_route_cbarg_t;
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;
};
-struct s_sg_platf_process_cbarg_t {
- const char **argv;
- int argc;
- std::map<std::string, std::string>* properties;
- const char *host;
- const char *function;
- double start_time;
- double kill_time;
- e_surf_process_on_failure_t on_failure;
+enum class ActorOnFailure { DIE, RESTART };
+
+class ActorCreationArgs {
+public:
+ std::vector<std::string> args;
+ std::map<std::string, std::string>* properties = nullptr;
+ const char* host = nullptr;
+ const char* function = nullptr;
+ double start_time = 0.0;
+ double kill_time = 0.0;
+ ActorOnFailure on_failure;
};
-typedef s_sg_platf_process_cbarg_t* sg_platf_process_cbarg_t;
class ZoneCreationArgs {
public:
XBT_PUBLIC(void) sg_platf_new_storage_type(StorageTypeCreationArgs* storage_type);
XBT_PUBLIC(void) sg_platf_new_mount(MountCreationArgs* mount);
-XBT_PUBLIC(void) sg_platf_new_process(sg_platf_process_cbarg_t process);
+XBT_PUBLIC(void) sg_platf_new_process(ActorCreationArgs* actor);
XBT_PRIVATE void sg_platf_trace_connect(TraceConnectCreationArgs* trace_connect);
/* Prototypes of the functions offered by flex */
XBT_PUBLIC(int) surf_parse_get_debug();
XBT_PUBLIC(void) surf_parse_set_debug(int bdebug);
XBT_PUBLIC(int) surf_parse_lex_destroy();
-
-XBT_PUBLIC(void) routing_route_free(sg_platf_route_cbarg_t route);
}
namespace simgrid {