const char *name;/**< Name of this model */
s_surf_action_state_t states; /**< Any living action on this model */
- e_surf_action_state_t(*action_get_state) (surf_action_t action);/**< Return the state of an action */
+ e_surf_action_state_t(*action_state_get) (surf_action_t action);/**< Return the state of an action */
+ void (*action_state_set) (surf_action_t action,
+ e_surf_action_state_t state); /**< Change an action state*/
+
double (*action_get_start_time) (surf_action_t action);/**< Return the start time of an action */
double (*action_get_finish_time) (surf_action_t action);/**< Return the finish time of an action */
void (*action_use) (surf_action_t action);/**< Set an action used */
int (*action_free) (surf_action_t action);/**< Free an action */
void (*action_cancel) (surf_action_t action);/**< Cancel a running action */
void (*action_recycle) (surf_action_t action);/**< Recycle an action */
- void (*action_change_state) (surf_action_t action,
- e_surf_action_state_t state);
- /**< Change an action state*/
- void (*action_set_data) (surf_action_t action, void *data);/**< Set the user data of an action */
+ void (*action_data_set) (surf_action_t action, void *data);/**< Set the user data of an action */
void (*suspend) (surf_action_t action);/**< Suspend an action */
void (*resume) (surf_action_t action);/**< Resume a suspended action */
int (*is_suspended) (surf_action_t action);/**< Return whether an action is suspended */
void (*set_max_duration) (surf_action_t action, double duration);/**< Set the max duration of an action*/
void (*set_priority) (surf_action_t action, double priority);/**< Set the priority of an action */
+
xbt_dict_t(*get_properties) (void *resource_id);/**< Return the properties dictionary */
xbt_dict_t resource_set;
xbt_free(surf_workstations);
}
- surf_workstation_model->action_set_data(task->surf_action, task);
+ surf_workstation_model->action_data_set(task->surf_action, task);
DEBUG1("surf_action = %p", task->surf_action);
simdata->surf_action =
surf_workstation_model->extension.workstation.
communicate(sender->simdata->host, receiver->simdata->host, size, rate);
- surf_workstation_model->action_set_data(simdata->surf_action, act);
+ surf_workstation_model->action_data_set(simdata->surf_action, act);
DEBUG1("Create communicate action %p", act);
return act;
surf_workstation_model->extension.workstation.execute(host->simdata->host,
amount);
- surf_workstation_model->action_set_data(simdata->surf_action, act);
+ surf_workstation_model->action_data_set(simdata->surf_action, act);
DEBUG1("Create execute action %p", act);
return act;
surf_workstation_model->extension.workstation.sleep(host->simdata->host,
duration);
- surf_workstation_model->action_set_data(simdata->surf_action, act);
+ surf_workstation_model->action_data_set(simdata->surf_action, act);
DEBUG1("Create sleep action %p", act);
return act;
computation_amount,
communication_amount, amount, rate);
- surf_workstation_model->action_set_data(simdata->surf_action, act);
+ surf_workstation_model->action_data_set(simdata->surf_action, act);
return act;
}
e_surf_action_state_t SIMIX_action_get_state(smx_action_t action)
{
xbt_assert0((action != NULL), "Invalid parameter");
- return surf_workstation_model->action_get_state(action->simdata->
+ return surf_workstation_model->action_state_get(action->simdata->
surf_action);
}
static void action_cancel(surf_action_t action)
{
- surf_action_change_state(action, SURF_ACTION_FAILED);
+ surf_action_state_set(action, SURF_ACTION_FAILED);
return;
}
-static void action_change_state(surf_action_t action,
+static void cpu_action_state_set(surf_action_t action,
e_surf_action_state_t state)
{
/* if((state==SURF_ACTION_DONE) || (state==SURF_ACTION_FAILED)) */
/* ((surf_action_cpu_Cas01_t)action)->variable = NULL; */
/* } */
- surf_action_change_state(action, state);
+ surf_action_state_set(action, state);
return;
}
if ((action->generic_action.remains <= 0) &&
(lmm_get_variable_weight(action->variable) > 0)) {
action->generic_action.finish = surf_get_clock();
- action_change_state((surf_action_t) action, SURF_ACTION_DONE);
+ cpu_action_state_set((surf_action_t) action, SURF_ACTION_DONE);
} else if ((action->generic_action.max_duration != NO_MAX_DURATION) &&
(action->generic_action.max_duration <= 0)) {
action->generic_action.finish = surf_get_clock();
- action_change_state((surf_action_t) action, SURF_ACTION_DONE);
+ cpu_action_state_set((surf_action_t) action, SURF_ACTION_DONE);
}
}
while ((var = lmm_get_var_from_cnst(cpu_maxmin_system, cnst, &elem))) {
surf_action_t action = lmm_variable_id(var);
- if (surf_action_get_state(action) == SURF_ACTION_RUNNING ||
- surf_action_get_state(action) == SURF_ACTION_READY ||
- surf_action_get_state(action) == SURF_ACTION_NOT_IN_THE_SYSTEM) {
+ if (surf_action_state_get(action) == SURF_ACTION_RUNNING ||
+ surf_action_state_get(action) == SURF_ACTION_READY ||
+ surf_action_state_get(action) == SURF_ACTION_NOT_IN_THE_SYSTEM) {
action->finish = date;
- action_change_state(action, SURF_ACTION_FAILED);
+ cpu_action_state_set(action, SURF_ACTION_FAILED);
}
}
}
running_action_set_that_does_not_need_being_checked =
xbt_swag_new(xbt_swag_offset(action, state_hookup));
+ surf_cpu_model->name = "CPU";
+
surf_cpu_model->action_free = action_free;
surf_cpu_model->action_use = action_use;
surf_cpu_model->action_cancel = action_cancel;
- surf_cpu_model->action_change_state = action_change_state;
- surf_cpu_model->action_set_data = surf_action_set_data;
- surf_cpu_model->name = "CPU";
+ surf_cpu_model->action_state_set = cpu_action_state_set;
surf_cpu_model->model_private->resource_used = resource_used;
surf_cpu_model->model_private->share_resources = share_resources;
return;
}
-static void action_change_state(surf_action_t action,
+static void network_action_state_set(surf_action_t action,
e_surf_action_state_t state)
{
/* if((state==SURF_ACTION_DONE) || (state==SURF_ACTION_FAILED)) */
/* ((surf_action_network_CM02_t)action)->variable = NULL; */
/* } */
- surf_action_change_state(action, state);
+ surf_action_state_set(action, state);
return;
}
if ((action->generic_action.remains <= 0) &&
(lmm_get_variable_weight(action->variable) > 0)) {
action->generic_action.finish = surf_get_clock();
- action_change_state((surf_action_t) action, SURF_ACTION_DONE);
+ network_action_state_set((surf_action_t) action, SURF_ACTION_DONE);
} else if ((action->generic_action.max_duration != NO_MAX_DURATION) &&
(action->generic_action.max_duration <= 0)) {
action->generic_action.finish = surf_get_clock();
- action_change_state((surf_action_t) action, SURF_ACTION_DONE);
+ network_action_state_set((surf_action_t) action, SURF_ACTION_DONE);
}
}
(network_maxmin_system, cnst, &elem))) {
surf_action_t action = lmm_variable_id(var);
- if (surf_action_get_state(action) == SURF_ACTION_RUNNING ||
- surf_action_get_state(action) == SURF_ACTION_READY) {
+ if (surf_action_state_get(action) == SURF_ACTION_RUNNING ||
+ surf_action_state_get(action) == SURF_ACTION_READY) {
action->finish = date;
- action_change_state(action, SURF_ACTION_FAILED);
+ network_action_state_set(action, SURF_ACTION_FAILED);
}
}
}
{
surf_network_model = surf_model_init();
+ surf_network_model->name = "network";
surf_network_model->action_free = action_free;
surf_network_model->action_use = action_use;
surf_network_model->action_cancel = action_cancel;
surf_network_model->action_recycle = action_recycle;
- surf_network_model->action_change_state = action_change_state;
- surf_network_model->action_set_data = surf_action_set_data;
- surf_network_model->name = "network";
+ surf_network_model->action_state_set = network_action_state_set;
surf_network_model->model_private->resource_used = resource_used;
surf_network_model->model_private->share_resources = share_resources;
return;
}
-static void action_change_state(surf_action_t action,
+static void netcst_action_state_set(surf_action_t action,
e_surf_action_state_t state)
{
- surf_action_change_state(action, state);
+ surf_action_state_set(action, state);
return;
}
if (action->generic_action.remains <= 0) {
action->generic_action.finish = surf_get_clock();
- action_change_state((surf_action_t) action, SURF_ACTION_DONE);
+ netcst_action_state_set((surf_action_t) action, SURF_ACTION_DONE);
} else if ((action->generic_action.max_duration != NO_MAX_DURATION) &&
(action->generic_action.max_duration <= 0)) {
action->generic_action.finish = surf_get_clock();
- action_change_state((surf_action_t) action, SURF_ACTION_DONE);
+ netcst_action_state_set((surf_action_t) action, SURF_ACTION_DONE);
}
}
{
surf_network_model = surf_model_init();
+ surf_network_model->name = "network constant";
surf_network_model->action_free = action_free;
surf_network_model->action_use = action_use;
surf_network_model->action_cancel = action_cancel;
surf_network_model->action_recycle = action_recycle;
- surf_network_model->action_change_state = action_change_state;
- surf_network_model->action_set_data = surf_action_set_data;
- surf_network_model->name = "network";
+ surf_network_model->action_state_set = netcst_action_state_set;
surf_network_model->model_private->resource_used = resource_used;
surf_network_model->model_private->share_resources = share_resources;
/* ((surf_action_network_GTNETS_t)action)->variable = NULL; */
/* } */
- surf_action_change_state(action, state);
+ surf_action_state_set(action, state);
return;
}
{
s_surf_action_t action;
- surf_network_model = xbt_new0(s_surf_network_model_t, 1);
+ surf_network_model = surf_model_init();
- surf_model_init(surf_network_model);
-
- surf_network_model->common_public.action_use = action_use;
- surf_network_model->common_public.action_free = action_free;
- surf_network_model->common_public.action_cancel = action_cancel;
- surf_network_model->common_public.action_recycle = action_recycle;
- surf_network_model->common_public.action_change_state = action_change_state;
- surf_network_model->common_public.action_set_data = surf_action_set_data;
- surf_network_model->common_public.name = "network";
+ surf_network_model->name = "network GTNetS";
+ surf_network_model->action_use = action_use;
+ surf_network_model->action_free = action_free;
+ surf_network_model->action_cancel = action_cancel;
+ surf_network_model->action_recycle = action_recycle;
+ surf_network_model->action_change_state = action_change_state;
surf_network_model->model_private->resource_used = resource_used;
surf_network_model->model_private->share_resources = share_resources;
update_resource_state;
surf_network_model->model_private->finalize = finalize;
- surf_network_model->common_public.suspend = action_suspend;
- surf_network_model->common_public.resume = action_resume;
- surf_network_model->common_public.is_suspended = action_is_suspended;
+ surf_network_model->suspend = action_suspend;
+ surf_network_model->resume = action_resume;
+ surf_network_model->is_suspended = action_is_suspended;
surf_network_model->extension.network.communicate = communicate;
/*for the props of the link */
- surf_network_model->common_public.get_properties = get_properties;
+ surf_network_model->get_properties = get_properties;
link_set = xbt_dict_new();
"SURF_ACTION_NOT_IN_THE_SYSTEM"
};
-e_surf_action_state_t surf_action_get_state(surf_action_t action)
+e_surf_action_state_t surf_action_state_get(surf_action_t action)
{
surf_action_state_t action_state = &(action->model_type->states);
*action = NULL;
}
-void surf_action_change_state(surf_action_t action,
+void surf_action_state_set(surf_action_t action,
e_surf_action_state_t state)
{
surf_action_state_t action_state = &(action->model_type->states);
XBT_OUT;
}
-void surf_action_set_data(surf_action_t action, void *data)
+void surf_action_data_set(surf_action_t action, void *data)
{
action->data = data;
}
model->action_cancel = void_die_impossible_paction;
model->action_recycle = void_die_impossible_paction;
- model->action_get_state = surf_action_get_state;
+ model->action_state_get = surf_action_state_get;
model->action_get_start_time = surf_action_get_start_time;
model->action_get_finish_time = surf_action_get_finish_time;
+ model->action_data_set = surf_action_data_set;
+
return model;
}
return 1;
}
-static void action_change_state(surf_action_t action,
+static void timer_action_state_set(surf_action_t action,
e_surf_action_state_t state)
{
DIE_IMPOSSIBLE;
{
surf_timer_model = surf_model_init();
- surf_timer_model->action_change_state = action_change_state;
- surf_timer_model->action_set_data = surf_action_set_data;
surf_timer_model->name = "TIMER";
+ surf_timer_model->action_state_set = timer_action_state_set;
surf_timer_model->model_private->resource_used = resource_used;
surf_timer_model->model_private->share_resources = share_resources;
void (*solve) (lmm_system_t));
/* Generic functions common to all models */
-e_surf_action_state_t surf_action_get_state(surf_action_t action);
+e_surf_action_state_t surf_action_state_get(surf_action_t action);
double surf_action_get_start_time(surf_action_t action);
double surf_action_get_finish_time(surf_action_t action);
void surf_action_free(surf_action_t * action);
-void surf_action_change_state(surf_action_t action,
+void surf_action_state_set(surf_action_t action,
e_surf_action_state_t state);
-void surf_action_set_data(surf_action_t action, void *data);
+void surf_action_data_set(surf_action_t action, void *data);
FILE *surf_fopen(const char *name, const char *mode);
extern tmgr_history_t history;
return;
}
-static void action_change_state(surf_action_t action,
+static void ws_action_state_set(surf_action_t action,
e_surf_action_state_t state)
{
if (action->model_type == surf_network_model)
- surf_network_model->action_change_state(action, state);
+ surf_network_model->action_state_set(action, state);
else if (action->model_type == surf_cpu_model)
- surf_cpu_model->action_change_state(action, state);
+ surf_cpu_model->action_state_set(action, state);
else if (action->model_type == surf_workstation_model)
- surf_action_change_state(action, state);
+ surf_action_state_set(action, state);
else
DIE_IMPOSSIBLE;
return;
static void surf_workstation_model_init_internal(void)
{
surf_workstation_model = surf_model_init();
-/* surf_workstation_model->extension_private = xbt_new0(s_surf_workstation_model_extension_private_t,1); */
+ surf_workstation_model->name = "Workstation";
surf_workstation_model->action_free = action_free;
surf_workstation_model->action_use = action_use;
surf_workstation_model->action_cancel = action_cancel;
- surf_workstation_model->action_change_state = action_change_state;
- surf_workstation_model->action_set_data = surf_action_set_data;
- surf_workstation_model->name = "Workstation";
+ surf_workstation_model->action_state_set = ws_action_state_set;
surf_workstation_model->model_private->resource_used = resource_used;
surf_workstation_model->model_private->share_resources = share_resources;
static void action_cancel(surf_action_t action)
{
- surf_action_change_state(action, SURF_ACTION_FAILED);
+ surf_action_state_set(action, SURF_ACTION_FAILED);
return;
}
if ((action->generic_action.remains <= 0) &&
(lmm_get_variable_weight(action->variable) > 0)) {
action->generic_action.finish = surf_get_clock();
- surf_action_change_state((surf_action_t) action, SURF_ACTION_DONE);
+ surf_action_state_set((surf_action_t) action, SURF_ACTION_DONE);
} else if ((action->generic_action.max_duration != NO_MAX_DURATION) &&
(action->generic_action.max_duration <= 0)) {
action->generic_action.finish = surf_get_clock();
- surf_action_change_state((surf_action_t) action, SURF_ACTION_DONE);
+ surf_action_state_set((surf_action_t) action, SURF_ACTION_DONE);
} else {
/* Need to check that none of the model has failed */
lmm_constraint_t cnst = NULL;
(((cpu_L07_t) constraint_id)->state_current == SURF_CPU_OFF))) {
DEBUG1("Action (%p) Failed!!", action);
action->generic_action.finish = surf_get_clock();
- surf_action_change_state((surf_action_t) action,
+ surf_action_state_set((surf_action_t) action,
SURF_ACTION_FAILED);
break;
}
surf_workstation_model->action_use = action_use;
surf_workstation_model->action_free = action_free;
surf_workstation_model->action_cancel = action_cancel;
- surf_workstation_model->action_change_state = surf_action_change_state;
- surf_workstation_model->action_set_data = surf_action_set_data;
+ surf_workstation_model->action_state_set = surf_action_state_set;
surf_workstation_model->suspend = action_suspend;
surf_workstation_model->resume = action_resume;
surf_workstation_model->is_suspended = action_is_suspended;