X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f3e4803befab19389587dd1d9af5ecdeffec551e..7ad85b03568dabade546f7948aaf7279059e9269:/src/surf/host_clm03.cpp diff --git a/src/surf/host_clm03.cpp b/src/surf/host_clm03.cpp index 5c98156ada..888956a396 100644 --- a/src/surf/host_clm03.cpp +++ b/src/surf/host_clm03.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2014. The SimGrid Team. +/* Copyright (c) 2013-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -8,7 +8,7 @@ #include "cpu_cas01.hpp" #include "simgrid/sg_config.h" -#include "vm_interface.hpp" +#include "virtual_machine.hpp" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_host); @@ -28,9 +28,7 @@ void surf_host_model_init_current_default(void) surf_network_model_init_LegrandVelho(); Model *model = surf_host_model; - xbt_dynar_push(model_list, &model); - xbt_dynar_push(model_list_invoke, &model); - sg_platf_host_add_cb(host_parse_init); + xbt_dynar_push(all_existing_models, &model); } void surf_host_model_init_compound() @@ -41,17 +39,14 @@ void surf_host_model_init_compound() surf_host_model = new HostCLM03Model(); Model *model = surf_host_model; - xbt_dynar_push(model_list, &model); - xbt_dynar_push(model_list_invoke, &model); - sg_platf_host_add_cb(host_parse_init); + xbt_dynar_push(all_existing_models, &model); } -Host *HostCLM03Model::createHost(const char *name){ - sg_host_t sg_host = sg_host_by_name(name); +Host *HostCLM03Model::createHost(const char *name,RoutingEdge *netElm, Cpu *cpu){ Host *host = new HostCLM03(surf_host_model, name, NULL, (xbt_dynar_t)xbt_lib_get_or_null(storage_lib, name, ROUTING_STORAGE_HOST_LEVEL), - sg_host_edge(sg_host), - sg_host_surfcpu(sg_host)); + netElm, cpu); + surf_callback_emit(hostCreatedCallbacks, host); XBT_DEBUG("Create host %s with %ld mounted disks", name, xbt_dynar_length(host->p_storage)); xbt_lib_set(host_lib, name, SURF_HOST_LEVEL, host); return host; @@ -84,7 +79,7 @@ void HostCLM03Model::updateActionsState(double /*now*/, double /*delta*/){ } Action *HostCLM03Model::executeParallelTask(int host_nb, - void **host_list, + sg_host_t *host_list, double *flops_amount, double *bytes_amount, double rate){ @@ -92,11 +87,12 @@ Action *HostCLM03Model::executeParallelTask(int host_nb, Action *action =NULL; if ((host_nb == 1) && (cost_or_zero(bytes_amount, 0) == 0.0)){ - action = static_cast(host_list[0])->execute(flops_amount[0]); + action = surf_host_execute(host_list[0],flops_amount[0]); } else if ((host_nb == 1) && (cost_or_zero(flops_amount, 0) == 0.0)) { - action = communicate(static_cast(host_list[0]), - static_cast(host_list[0]),bytes_amount[0], rate); + action = surf_network_model->communicate(sg_host_edge(host_list[0]), + sg_host_edge(host_list[0]), + bytes_amount[0], rate); } else if ((host_nb == 2) && (cost_or_zero(flops_amount, 0) == 0.0) && (cost_or_zero(flops_amount, 1) == 0.0)) { @@ -110,22 +106,17 @@ Action *HostCLM03Model::executeParallelTask(int host_nb, } } if (nb == 1){ - action = communicate(static_cast(host_list[0]), - static_cast(host_list[1]),value, rate); + action = surf_network_model->communicate(sg_host_edge(host_list[0]), + sg_host_edge(host_list[1]), + value, rate); } } else - THROW_UNIMPLEMENTED; /* This model does not implement parallel tasks */ + THROW_UNIMPLEMENTED; /* This model does not implement parallel tasks for more than 2 hosts */ #undef cost_or_zero xbt_free(host_list); return action; } -Action *HostCLM03Model::communicate(Host *src, Host *dst, double size, double rate){ - return surf_network_model->communicate(src->p_netElm, dst->p_netElm, size, rate); -} - - - /************ * Resource * ************/