+/* Copyright (c) 2007-2009 Da SimGrid Team. All rights reserved. */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
#include "private.h"
#include "simdag/simdag.h"
#include "xbt/sysdep.h"
xbt_assert0(task != NULL, "Invalid parameter");
if (task->surf_action)
- return task->surf_action->remains;
+ return surf_workstation_model->get_remains(task->surf_action);
else
return task->remains;
}
task->surf_action = NULL;
if ((task->workstation_nb == 1) && (task->communication_amount[0] == 0.0)) {
task->surf_action =
- surf_workstation_model->extension.workstation.
- execute(surf_workstations[0], task->computation_amount[0]);
+ surf_workstation_model->extension.
+ workstation.execute(surf_workstations[0], task->computation_amount[0]);
} else if ((task->workstation_nb == 1)
&& (task->computation_amount[0] == 0.0)) {
task->surf_action =
- surf_workstation_model->extension.workstation.
- communicate(surf_workstations[0], surf_workstations[0],
- task->communication_amount[0], task->rate);
+ surf_workstation_model->extension.
+ workstation.communicate(surf_workstations[0], surf_workstations[0],
+ task->communication_amount[0], task->rate);
} else if ((task->workstation_nb == 2)
&& (task->computation_amount[0] == 0.0)
&& (task->computation_amount[1] == 0.0)) {
}
if (nb == 1) {
task->surf_action =
- surf_workstation_model->extension.workstation.
- communicate(surf_workstations[0], surf_workstations[1], value,
- task->rate);
+ surf_workstation_model->extension.
+ workstation.communicate(surf_workstations[0], surf_workstations[1],
+ value, task->rate);
}
}
if (!task->surf_action) {
sizeof(double) * task->workstation_nb * task->workstation_nb);
task->surf_action =
- surf_workstation_model->extension.workstation.
- execute_parallel_task(task->workstation_nb, surf_workstations,
- computation_amount, communication_amount,
- task->amount, task->rate);
+ surf_workstation_model->extension.
+ workstation.execute_parallel_task(task->workstation_nb,
+ surf_workstations, computation_amount,
+ communication_amount, task->amount,
+ task->rate);
} else {
xbt_free(surf_workstations);
}