X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f3e4803befab19389587dd1d9af5ecdeffec551e..b85de8f1e83118f564f9ee5af0c4d90049147739:/src/surf/host_ptask_L07.cpp diff --git a/src/surf/host_ptask_L07.cpp b/src/surf/host_ptask_L07.cpp index 1203758c64..5dca16698b 100644 --- a/src/surf/host_ptask_L07.cpp +++ b/src/surf/host_ptask_L07.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2010, 2013-2014. The SimGrid Team. +/* Copyright (c) 2007-2010, 2013-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -8,6 +8,7 @@ #include "cpu_interface.hpp" #include "surf_routing.hpp" +#include "xbt/lib.h" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_host); @@ -49,8 +50,8 @@ HostL07Model::HostL07Model() : HostModel() { if (!ptask_maxmin_system) ptask_maxmin_system = lmm_system_new(1); surf_host_model = NULL; - surf_network_model = new NetworkL07Model(); - surf_cpu_model_pm = new CpuL07Model(); + surf_network_model = new NetworkL07Model(this); + surf_cpu_model_pm = new CpuL07Model(this); routing_model_create(surf_network_model->createLink("__loopback__", 498000000, NULL, @@ -167,7 +168,7 @@ void HostL07Model::updateActionsState(double /*now*/, double delta) { } Action *HostL07Model::executeParallelTask(int host_nb, - void **host_list, + sg_host_t*host_list, double *flops_amount, double *bytes_amount, double rate) @@ -180,7 +181,7 @@ Action *HostL07Model::executeParallelTask(int host_nb, action->p_edgeList->reserve(host_nb); for (int i = 0; ip_edgeList->push_back(static_cast(host_list[i])->p_netElm); + action->p_edgeList->push_back(sg_host_edge(host_list[i])); if (ptask_parallel_task_link_set == NULL) ptask_parallel_task_link_set = xbt_dict_new_homogeneous(NULL); @@ -234,7 +235,7 @@ Action *HostL07Model::executeParallelTask(int host_nb, for (int i = 0; i < host_nb; i++) lmm_expand(ptask_maxmin_system, - static_cast(host_list[i])->p_cpu->getConstraint(), + sg_host_surfcpu(host_list[i])->getConstraint(), action->getVariable(), flops_amount[i]); for (int i = 0; i < host_nb; i++) { @@ -283,19 +284,19 @@ Host *HostL07Model::createHost(const char *name) return wk; } -Action *HostL07Model::communicate(Host *src, Host *dst, +Action *NetworkL07Model::communicate(RoutingEdge *src, RoutingEdge *dst, double size, double rate) { - void **host_list = xbt_new0(void *, 2); + sg_host_t*host_list = xbt_new0(sg_host_t, 2); double *flops_amount = xbt_new0(double, 2); double *bytes_amount = xbt_new0(double, 4); Action *res = NULL; - host_list[0] = src; - host_list[1] = dst; + host_list[0] = sg_host_by_name(src->getName()); + host_list[1] = sg_host_by_name(dst->getName()); bytes_amount[1] = size; - res = executeParallelTask(2, host_list, + res = p_hostModel->executeParallelTask(2, host_list, flops_amount, bytes_amount, rate); @@ -549,12 +550,11 @@ e_surf_resource_state_t HostL07::getState() { Action *HostL07::execute(double size) { - void **host_list = xbt_new0(void *, 1); + sg_host_t*host_list = xbt_new0(sg_host_t, 1); double *flops_amount = xbt_new0(double, 1); double *bytes_amount = xbt_new0(double, 1); - host_list[0] = this; - bytes_amount[0] = 0.0; + host_list[0] = sg_host_by_name(getName()); flops_amount[0] = size; return static_cast(getModel())->executeParallelTask(1, host_list, @@ -656,7 +656,7 @@ int L07Action::unref() { m_refcount--; if (!m_refcount) { - if (actionHook::is_linked()) + if (action_hook.is_linked()) p_stateSet->erase(p_stateSet->iterator_to(*this)); if (getVariable()) lmm_variable_free(ptask_maxmin_system, getVariable());