- if ((performer != -1 && order != -1) && performer < static_cast<int>(sg_host_count())) {
- /* required parameters are given and less performers than hosts are required */
- XBT_DEBUG ("Task '%s' is scheduled on workstation '%d' in position '%d'", task->name, performer, order);
- auto comp = computers.find(char_performer);
- if (comp != computers.end()) {
- computer = comp->second;
- } else {
- computer = new std::vector<SD_task_t>;
- computers.insert({char_performer, computer});
- }
- if (static_cast<unsigned int>(order) < computer->size()) {
- SD_task_t task_test = computer->at(order);
- if (task_test && task_test != task) {
- /* the user gave the same order to several tasks */
- schedule_success = false;
- XBT_VERB("Task '%s' wants to start on performer '%s' at the same position '%s' as task '%s'",
- task_test->name, char_performer, char_order, task->name);
- continue;
- }
- } else
- computer->resize(order);
-
- computer->insert(computer->begin() + order, task);
- } else {
- /* one of required parameters is not given */
- schedule_success = false;
- XBT_VERB("The schedule is ignored, task '%s' can not be scheduled on %d hosts", task->name, performer);
- }
- }
+ if (activities.find(name) == activities.end()) {
+ XBT_DEBUG("See <Exec id = %s amount = %.0f>", name, amount);
+ act = Exec::init()->set_name(name)->set_flops_amount(amount)->vetoable_start();
+ activities.insert({std::string(name), act});
+ if (strcmp(name, "root") && strcmp(name, "end"))
+ dag.push_back(act);