-/* Copyright (c) 2006-2020. The SimGrid Team.
+/* Copyright (c) 2006-2021. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
return task;
}
-/** @brief create a end-to-end communication task that can then be auto-scheduled
+/** @brief create an end-to-end communication task that can then be auto-scheduled
*
* Auto-scheduling mean that the task can be used with SD_task_schedulev(). This allows one to specify the task costs at
* creation, and decouple them from the scheduling process where you just specify which resource should deliver the
*/
int SD_task_get_workstation_count(const_SD_task_t task)
{
- return task->allocation->size();
+ return static_cast<int>(task->allocation->size());
}
/**
/** @brief Dumps the task in dotty formalism into the FILE* passed as second argument */
void SD_task_dotty(const_SD_task_t task, void* out)
{
- FILE *fout = static_cast<FILE*>(out);
+ auto* fout = static_cast<FILE*>(out);
fprintf(fout, " T%p [label=\"%.20s\"", task, task->name);
switch (task->kind) {
case SD_TASK_COMM_E2E:
if (dst) {
return (src->successors->find(dst) != src->successors->end() || src->outputs->find(dst) != src->outputs->end());
} else {
- return src->successors->size() + src->outputs->size();
+ return static_cast<int>(src->successors->size() + src->outputs->size());
}
} else {
- return dst->predecessors->size() + dst->inputs->size();
+ return static_cast<int>(dst->predecessors->size() + dst->inputs->size());
}
}
if (bytes_amount != nullptr)
for (int j = 0; j < host_count; j++)
if (bytes_amount[i * host_count + j] != 0)
- time += (sg_host_route_latency(host_list[i], host_list[j]) +
- bytes_amount[i * host_count + j] / sg_host_route_bandwidth(host_list[i], host_list[j]));
+ time += (sg_host_get_route_latency(host_list[i], host_list[j]) +
+ bytes_amount[i * host_count + j] / sg_host_get_route_bandwidth(host_list[i], host_list[j]));
if (time > max_time)
max_time = time;
/* Iterate over all inputs and outputs to say where I am located (and start them if runnable) */
for (auto const& input : *task->inputs) {
- int src_nb = input->allocation->size();
+ int src_nb = static_cast<int>(input->allocation->size());
int dst_nb = count;
if (input->allocation->empty())
XBT_VERB("Sender side of '%s' not scheduled. Set receiver side to '%s''s allocation", input->name, task->name);
for (auto const& output : *task->outputs) {
int src_nb = count;
- int dst_nb = output->allocation->size();
+ int dst_nb = static_cast<int>(output->allocation->size());
if (output->allocation->empty())
XBT_VERB("Receiver side of '%s' not scheduled. Set sender side to '%s''s allocation", output->name, task->name);
void SD_task_schedulel(SD_task_t task, int count, ...)
{
va_list ap;
- sg_host_t* list = new sg_host_t[count];
+ std::vector<sg_host_t> list(count);
va_start(ap, count);
for (int i=0; i<count; i++)
list[i] = va_arg(ap, sg_host_t);
va_end(ap);
- SD_task_schedulev(task, count, list);
- delete[] list;
+ SD_task_schedulev(task, count, list.data());
}