X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c39f643b5bfb0e99887c209a94e49f841a2daae4..5e3e50f757f70251b3fdf0b6610fe65071dd0d5b:/src/surf/workstation_ptask_L07.cpp diff --git a/src/surf/workstation_ptask_L07.cpp b/src/surf/workstation_ptask_L07.cpp index 54d3dbe9d2..f44c1a1834 100644 --- a/src/surf/workstation_ptask_L07.cpp +++ b/src/surf/workstation_ptask_L07.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2010, 2013. The SimGrid Team. +/* Copyright (c) 2007-2010, 2013-2014. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -52,7 +52,7 @@ double WorkstationL07Model::shareResources(double /*now*/) for(ActionList::iterator it(running_actions->begin()), itend(running_actions->end()) ; it != itend ; ++it) { - action = dynamic_cast(&*it); + action = static_cast(&*it); if (action->m_latency > 0) { if (min < 0) { min = action->m_latency; @@ -81,7 +81,7 @@ void WorkstationL07Model::updateActionsState(double /*now*/, double delta) for(ActionList::iterator it(actionSet->begin()), itNext = it, itend(actionSet->end()) ; it != itend ; it=itNext) { ++itNext; - action = dynamic_cast(&*it); + action = static_cast(&*it); deltap = delta; if (action->m_latency > 0) { if (action->m_latency > deltap) { @@ -165,18 +165,14 @@ ActionPtr WorkstationL07Model::executeParallelTask(int workstation_nb, void *_link; LinkL07Ptr link; - routing_platf->getRouteAndLatency(dynamic_cast( - static_cast( - workstation_list[i]))->p_netElm, - dynamic_cast( - static_cast( - workstation_list[j]))->p_netElm, + routing_platf->getRouteAndLatency(static_cast(workstation_list[i])->p_netElm, + static_cast(workstation_list[j])->p_netElm, &route, &lat); latency = MAX(latency, lat); xbt_dynar_foreach(route, cpt, _link) { - link = dynamic_cast(static_cast(_link)); + link = static_cast(_link); xbt_dict_set(ptask_parallel_task_link_set, link->getName(), link, NULL); } } @@ -211,8 +207,7 @@ ActionPtr WorkstationL07Model::executeParallelTask(int workstation_nb, for (i = 0; i < workstation_nb; i++) lmm_expand(ptask_maxmin_system, - static_cast(dynamic_cast( - static_cast(workstation_list[i]))->p_cpu)->getConstraint(), + static_cast(static_cast(workstation_list[i])->p_cpu)->getConstraint(), action->getVariable(), computation_amount[i]); for (i = 0; i < workstation_nb; i++) { @@ -224,14 +219,12 @@ ActionPtr WorkstationL07Model::executeParallelTask(int workstation_nb, if (communication_amount[i * workstation_nb + j] == 0.0) continue; - routing_platf->getRouteAndLatency(dynamic_cast( - static_cast(workstation_list[i]))->p_netElm, - dynamic_cast( - static_cast(workstation_list[j]))->p_netElm, + routing_platf->getRouteAndLatency(static_cast(workstation_list[i])->p_netElm, + static_cast(workstation_list[j])->p_netElm, &route, NULL); xbt_dynar_foreach(route, cpt, _link) { - link = dynamic_cast(static_cast(_link)); + link = static_cast(_link); lmm_expand_add(ptask_maxmin_system, link->getConstraint(), action->getVariable(), communication_amount[i * workstation_nb + j]); @@ -261,7 +254,7 @@ ResourcePtr WorkstationL07Model::createResource(const char *name, double /*power wk = new WorkstationL07(this, name, NULL, static_cast(xbt_lib_get_or_null(host_lib, name, ROUTING_HOST_LEVEL)), - dynamic_cast(static_cast(xbt_lib_get_or_null(host_lib, name, SURF_CPU_LEVEL)))); + static_cast(xbt_lib_get_or_null(host_lib, name, SURF_CPU_LEVEL))); xbt_lib_set(host_lib, name, SURF_WKS_LEVEL, static_cast(wk)); @@ -349,10 +342,7 @@ void WorkstationL07Model::addTraces() /* Connect traces relative to cpu */ xbt_dict_foreach(trace_connect_list_host_avail, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - CpuL07Ptr host = dynamic_cast( - static_cast( - surf_cpu_resource_priv( - surf_cpu_resource_by_name(elm)))); + CpuL07Ptr host = static_cast(surf_cpu_resource_priv(surf_cpu_resource_by_name(elm))); xbt_assert(host, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); @@ -362,10 +352,7 @@ void WorkstationL07Model::addTraces() xbt_dict_foreach(trace_connect_list_power, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - CpuL07Ptr host = dynamic_cast( - static_cast( - surf_cpu_resource_priv( - surf_cpu_resource_by_name(elm)))); + CpuL07Ptr host = static_cast(surf_cpu_resource_priv(surf_cpu_resource_by_name(elm))); xbt_assert(host, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); @@ -376,7 +363,7 @@ void WorkstationL07Model::addTraces() /* Connect traces relative to network */ xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - LinkL07Ptr link = dynamic_cast(static_cast(xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL))); + LinkL07Ptr link = static_cast(xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL)); xbt_assert(link, "Link %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); @@ -386,7 +373,7 @@ void WorkstationL07Model::addTraces() xbt_dict_foreach(trace_connect_list_bandwidth, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - LinkL07Ptr link = dynamic_cast(static_cast(xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL))); + LinkL07Ptr link = static_cast(xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL)); xbt_assert(link, "Link %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); @@ -396,7 +383,7 @@ void WorkstationL07Model::addTraces() xbt_dict_foreach(trace_connect_list_latency, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - LinkL07Ptr link = dynamic_cast(static_cast(xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL))); + LinkL07Ptr link = static_cast(xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL)); xbt_assert(link, "Link %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); @@ -449,9 +436,12 @@ CpuL07::CpuL07(CpuL07ModelPtr model, const char* name, xbt_dict_t props, m_powerCurrent = power_initial; if (power_trace) - p_power.event = tmgr_history_add_trace(history, power_trace, 0.0, 0, static_cast(this)); + p_power.event = tmgr_history_add_trace(history, power_trace, 0.0, 0, + static_cast(this)); + else + p_power.event = NULL; - m_stateCurrent = state_initial; + setState(state_initial); if (state_trace) p_stateEvent = tmgr_history_add_trace(history, state_trace, 0.0, 0, static_cast(this)); } @@ -470,7 +460,7 @@ LinkL07::LinkL07(NetworkL07ModelPtr model, const char* name, xbt_dict_t props, if (bw_trace) p_bwEvent = tmgr_history_add_trace(history, bw_trace, 0.0, 0, static_cast(this)); - m_stateCurrent = state_initial; + setState(state_initial); m_latCurrent = lat_initial; if (lat_trace) @@ -497,9 +487,9 @@ void CpuL07::updateState(tmgr_trace_event_t event_type, double value, double /*d p_power.event = NULL; } else if (event_type == p_stateEvent) { if (value > 0) - m_stateCurrent = SURF_RESOURCE_ON; + setState(SURF_RESOURCE_ON); else - m_stateCurrent = SURF_RESOURCE_OFF; + setState(SURF_RESOURCE_OFF); if (tmgr_trace_event_free(event_type)) p_stateEvent = NULL; } else { @@ -530,9 +520,9 @@ void LinkL07::updateState(tmgr_trace_event_t event_type, double value, double da p_latEvent = NULL; } else if (event_type == p_stateEvent) { if (value > 0) - m_stateCurrent = SURF_RESOURCE_ON; + setState(SURF_RESOURCE_ON); else - m_stateCurrent = SURF_RESOURCE_OFF; + setState(SURF_RESOURCE_OFF); if (tmgr_trace_event_free(event_type)) p_stateEvent = NULL; } else { @@ -547,11 +537,6 @@ e_surf_resource_state_t WorkstationL07::getState() return p_cpu->getState(); } -e_surf_resource_state_t CpuL07::getState() -{ - return m_stateCurrent; -} - double CpuL07::getSpeed(double load) { return load * p_power.scale; @@ -583,7 +568,7 @@ ActionPtr WorkstationL07::sleep(double duration) XBT_IN("(%s,%g)", getName(), duration); - action = dynamic_cast(execute(1.0)); + action = static_cast(execute(1.0)); action->m_maxDuration = duration; action->m_suspended = 2; lmm_update_variable_weight(ptask_maxmin_system, action->getVariable(), 0.0); @@ -629,10 +614,8 @@ void WorkstationL07Action::updateBound() if (p_communicationAmount[i * m_workstationNb + j] > 0) { double lat = 0.0; - routing_platf->getRouteAndLatency(dynamic_cast( - static_cast(((void**)p_workstationList)[i]))->p_netElm, - dynamic_cast( - static_cast(((void**)p_workstationList)[j]))->p_netElm, + routing_platf->getRouteAndLatency(static_cast(((void**)p_workstationList)[i])->p_netElm, + static_cast(((void**)p_workstationList)[j])->p_netElm, &route, &lat); lat_current = MAX(lat_current, lat * p_communicationAmount[i * m_workstationNb + j]);