From: Paul Bédaride Date: Thu, 19 Dec 2013 10:39:09 +0000 (+0100) Subject: Remove all dynamic casts X-Git-Tag: v3_11_beta~164 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/edab1d82e659722994c64246d5858eca2ff6703d Remove all dynamic casts --- diff --git a/src/surf/cpu_cas01.cpp b/src/surf/cpu_cas01.cpp index a55976bcb2..93078ea888 100644 --- a/src/surf/cpu_cas01.cpp +++ b/src/surf/cpu_cas01.cpp @@ -175,7 +175,7 @@ void CpuCas01Model::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); - CpuCas01Ptr host = dynamic_cast(static_cast(surf_cpu_resource_priv(surf_cpu_resource_by_name(elm)))); + CpuCas01Ptr 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); diff --git a/src/surf/cpu_ti.cpp b/src/surf/cpu_ti.cpp index df04e5c544..1b3cec3127 100644 --- a/src/surf/cpu_ti.cpp +++ b/src/surf/cpu_ti.cpp @@ -530,7 +530,7 @@ void CpuTiModel::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); - CpuTiPtr cpu = dynamic_cast(static_cast(surf_cpu_resource_priv(surf_cpu_resource_by_name(elm)))); + CpuTiPtr cpu = static_cast(surf_cpu_resource_priv(surf_cpu_resource_by_name(elm))); xbt_assert(cpu, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index d4c1ab67fc..9479fd39ff 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -60,9 +60,8 @@ static void net_add_traces(void){ /* connect all 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); - NetworkCm02LinkPtr link = dynamic_cast( - static_cast( - xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL))); + NetworkCm02LinkPtr link = static_cast( + xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL)); xbt_assert(link, "Cannot connect trace %s to link %s: link undefined", trace_name, elm); @@ -75,9 +74,8 @@ static void net_add_traces(void){ 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); - NetworkCm02LinkPtr link = dynamic_cast( - static_cast( - xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL))); + NetworkCm02LinkPtr link = static_cast( + xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL)); xbt_assert(link, "Cannot connect trace %s to link %s: link undefined", trace_name, elm); @@ -90,9 +88,8 @@ static void net_add_traces(void){ 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); - NetworkCm02LinkPtr link = dynamic_cast( - static_cast( - xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL))); + NetworkCm02LinkPtr link = static_cast( + xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL)); xbt_assert(link, "Cannot connect trace %s to link %s: link undefined", trace_name, elm); @@ -383,7 +380,7 @@ ActionPtr NetworkCm02Model::communicate(RoutingEdgePtr src, RoutingEdgePtr dst, src->p_name, dst->p_name); xbt_dynar_foreach(route, i, _link) { - link = dynamic_cast(static_cast(_link)); + link = static_cast(_link); if (link->getState() == SURF_RESOURCE_OFF) { failed = 1; break; @@ -392,7 +389,7 @@ ActionPtr NetworkCm02Model::communicate(RoutingEdgePtr src, RoutingEdgePtr dst, if (sg_network_crosstraffic == 1) { routing_platf->getRouteAndLatency(dst, src, &back_route, NULL); xbt_dynar_foreach(back_route, i, _link) { - link = dynamic_cast(static_cast(_link)); + link = static_cast(_link); if (link->getState() == SURF_RESOURCE_OFF) { failed = 1; break; @@ -416,12 +413,12 @@ ActionPtr NetworkCm02Model::communicate(RoutingEdgePtr src, RoutingEdgePtr dst, bandwidth_bound = -1.0; if (sg_weight_S_parameter > 0) { xbt_dynar_foreach(route, i, _link) { - link = dynamic_cast(static_cast(_link)); + link = static_cast(_link); action->m_weight += sg_weight_S_parameter / link->getBandwidth(); } } xbt_dynar_foreach(route, i, _link) { - link = dynamic_cast(static_cast(_link)); + link = static_cast(_link); double bb = bandwidthFactor(size) * link->getBandwidth(); //(link->p_power.peak * link->p_power.scale); bandwidth_bound = (bandwidth_bound < 0.0) ? bb : min(bandwidth_bound, bb); @@ -434,8 +431,7 @@ ActionPtr NetworkCm02Model::communicate(RoutingEdgePtr src, RoutingEdgePtr dst, xbt_assert(!xbt_dynar_is_empty(route), "Using a model with a gap (e.g., SMPI) with a platform without links (e.g. vivaldi)!!!"); - //link = *(NetworkCm02LinkPtr *) xbt_dynar_get_ptr(route, 0); - link = dynamic_cast(*static_cast(xbt_dynar_get_ptr(route, 0))); + link = *static_cast(xbt_dynar_get_ptr(route, 0)); gapAppend(size, link, action); XBT_DEBUG("Comm %p: %s -> %s gap=%f (lat=%f)", action, src->p_name, dst->p_name, action->m_senderGap, @@ -465,14 +461,14 @@ ActionPtr NetworkCm02Model::communicate(RoutingEdgePtr src, RoutingEdgePtr dst, } xbt_dynar_foreach(route, i, _link) { - link = dynamic_cast(static_cast(_link)); + link = static_cast(_link); lmm_expand(p_maxminSystem, link->getConstraint(), action->getVariable(), 1.0); } if (sg_network_crosstraffic == 1) { XBT_DEBUG("Fullduplex active adding backward flow using 5%%"); xbt_dynar_foreach(back_route, i, _link) { - link = dynamic_cast(static_cast(_link)); + link = static_cast(_link); lmm_expand(p_maxminSystem, link->getConstraint(), action->getVariable(), .05); } } diff --git a/src/surf/network_constant.cpp b/src/surf/network_constant.cpp index af81e494ba..60ca4cd378 100644 --- a/src/surf/network_constant.cpp +++ b/src/surf/network_constant.cpp @@ -30,7 +30,7 @@ double NetworkConstantModel::shareResources(double /*now*/) ActionListPtr actionSet = getRunningActionSet(); for(ActionList::iterator it(actionSet->begin()), itend(actionSet->end()) ; it != itend ; ++it) { - action = dynamic_cast(&*it); + action = static_cast(&*it); if (action->m_latency > 0) { if (min < 0) min = action->m_latency; @@ -49,7 +49,7 @@ void NetworkConstantModel::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); if (action->m_latency > 0) { if (action->m_latency > delta) { double_update(&(action->m_latency), delta); diff --git a/src/surf/storage_n11.cpp b/src/surf/storage_n11.cpp index 0d0e831099..aed2695293 100644 --- a/src/surf/storage_n11.cpp +++ b/src/surf/storage_n11.cpp @@ -25,7 +25,7 @@ static XBT_INLINE void routing_storage_type_free(void *r) static XBT_INLINE void surf_storage_resource_free(void *r) { // specific to storage - StoragePtr storage = dynamic_cast(static_cast(r)); + StoragePtr storage = static_cast(r); // generic resource delete storage; } @@ -278,7 +278,7 @@ double StorageN11Model::shareResources(double now) // Foreach write action on disk xbt_dynar_foreach(storage->p_writeActions, j, _write_action) { - write_action = dynamic_cast(static_cast(_write_action)); + write_action = static_cast(_write_action); rate += lmm_variable_getvalue(write_action->getVariable()); } if(rate > 0) @@ -296,7 +296,7 @@ void StorageN11Model::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); if(action->m_type == WRITE) { // Update the disk usage @@ -435,7 +435,7 @@ StorageActionPtr StorageN11::close(surf_file_t fd) StorageActionPtr write_action; unsigned int i; xbt_dynar_foreach(p_writeActions, i, _write_action) { - write_action = dynamic_cast(static_cast(_write_action)); + write_action = static_cast(static_cast(_write_action)); if ((write_action->p_file) == fd) { xbt_dynar_cursor_rm(p_writeActions, &i); write_action->unref(); diff --git a/src/surf/surf_c_bindings.cpp b/src/surf/surf_c_bindings.cpp index b54154aae7..ecae88f394 100644 --- a/src/surf/surf_c_bindings.cpp +++ b/src/surf/surf_c_bindings.cpp @@ -12,15 +12,15 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_kernel); *********/ static CpuPtr get_casted_cpu(surf_resource_t resource){ - return dynamic_cast(static_cast(surf_cpu_resource_priv(resource))); + return static_cast(surf_cpu_resource_priv(resource)); } static WorkstationPtr get_casted_workstation(surf_resource_t resource){ - return dynamic_cast(static_cast(surf_workstation_resource_priv(resource))); + return static_cast(surf_workstation_resource_priv(resource)); } static WorkstationVMPtr get_casted_vm_workstation(surf_resource_t resource){ - return dynamic_cast(static_cast(surf_workstation_resource_priv(resource))); + return static_cast(surf_workstation_resource_priv(resource)); } char *surf_routing_edge_name(sg_routing_edge_t edge){ @@ -215,7 +215,7 @@ void *surf_as_cluster_get_backbone(AS_t as){ } void surf_as_cluster_set_backbone(AS_t as, void* backbone){ - static_cast(as)->p_backbone = dynamic_cast(static_cast(backbone)); + static_cast(as)->p_backbone = static_cast(backbone); } const char *surf_model_name(surf_model_t model){ @@ -438,27 +438,27 @@ void surf_vm_workstation_set_affinity(surf_resource_t resource, surf_resource_t } int surf_network_link_is_shared(surf_cpp_resource_t link){ - return dynamic_cast(link)->isShared(); + return static_cast(link)->isShared(); } double surf_network_link_get_bandwidth(surf_cpp_resource_t link){ - return dynamic_cast(link)->getBandwidth(); + return static_cast(link)->getBandwidth(); } double surf_network_link_get_latency(surf_cpp_resource_t link){ - return dynamic_cast(link)->getLatency(); + return static_cast(link)->getLatency(); } xbt_dict_t surf_storage_get_content(surf_resource_t resource){ - return dynamic_cast(static_cast(surf_storage_resource_priv(resource)))->getContent(); + return static_cast(surf_storage_resource_priv(resource))->getContent(); } sg_size_t surf_storage_get_size(surf_resource_t resource){ - return dynamic_cast(static_cast(surf_storage_resource_priv(resource)))->getSize(); + return static_cast(surf_storage_resource_priv(resource))->getSize(); } void surf_storage_rename(surf_resource_t resource, const char* src, const char* dest){ - dynamic_cast(static_cast(surf_storage_resource_priv(resource)))->rename(src, dest); + static_cast(surf_storage_resource_priv(resource))->rename(src, dest); } surf_action_t surf_cpu_execute(surf_resource_t cpu, double size){ @@ -522,19 +522,19 @@ int surf_action_get_cost(surf_action_t action){ } void surf_cpu_action_set_affinity(surf_action_t action, surf_resource_t cpu, unsigned long mask) { - dynamic_cast(action)->setAffinity(get_casted_cpu(cpu), mask); + static_cast(action)->setAffinity(get_casted_cpu(cpu), mask); } void surf_cpu_action_set_bound(surf_action_t action, double bound) { - dynamic_cast(action)->setBound(bound); + static_cast(action)->setBound(bound); } surf_file_t surf_storage_action_get_file(surf_action_t action){ - return dynamic_cast(action)->p_file; + return static_cast(action)->p_file; } xbt_dict_t surf_storage_action_get_ls_dict(surf_action_t action){ - return dynamic_cast(action)->p_lsDict; + return static_cast(action)->p_lsDict; } diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index 83d72ab6be..1aeddb80e0 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -342,17 +342,17 @@ static XBT_INLINE void routing_asr_prop_free(void *p) static XBT_INLINE void surf_cpu_free(void *r) { - delete dynamic_cast(static_cast(r)); + delete static_cast(r); } static XBT_INLINE void surf_link_free(void *r) { - delete dynamic_cast(static_cast(r)); + delete static_cast(r); } static XBT_INLINE void surf_workstation_free(void *r) { - delete dynamic_cast(static_cast(r)); + delete static_cast(r); } @@ -922,7 +922,8 @@ void Action::setPriority(double priority) void Action::cancel(){ setState(SURF_ACTION_FAILED); if (getModel()->getUpdateMechanism() == UM_LAZY) { - getModel()->getModifiedSet()->erase(getModel()->getModifiedSet()->iterator_to(*this)); + if (actionLmmHook::is_linked()) + getModel()->getModifiedSet()->erase(getModel()->getModifiedSet()->iterator_to(*this)); heapRemove(getModel()->getActionHeap()); } } diff --git a/src/surf/surf_routing_cluster.cpp b/src/surf/surf_routing_cluster.cpp index b910808fae..9670dfe989 100644 --- a/src/surf/surf_routing_cluster.cpp +++ b/src/surf/surf_routing_cluster.cpp @@ -38,7 +38,7 @@ void AsCluster::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_pl if((src->m_id == dst->m_id) && info.loopback_link ){ xbt_dynar_push_as(route->link_list, void *, info.loopback_link); if (lat) - *lat += dynamic_cast(static_cast(info.loopback_link))->getLatency(); + *lat += static_cast(info.loopback_link)->getLatency(); return; } @@ -49,7 +49,7 @@ void AsCluster::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_pl if (info.link_up) { // link up xbt_dynar_push_as(route->link_list, void *, info.link_up); if (lat) - *lat += dynamic_cast(static_cast(info.link_up))->getLatency(); + *lat += static_cast(info.link_up)->getLatency(); } } @@ -65,7 +65,7 @@ void AsCluster::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_pl if (info.link_down) { // link down xbt_dynar_push_as(route->link_list, void *, info.link_down); if (lat) - *lat += dynamic_cast(static_cast(info.link_down))->getLatency(); + *lat += static_cast(info.link_down)->getLatency(); } if (info.limiter_link) // limiter for receiver diff --git a/src/surf/surf_routing_dijkstra.cpp b/src/surf/surf_routing_dijkstra.cpp index b535cf2e4d..64b1ce7024 100644 --- a/src/surf/surf_routing_dijkstra.cpp +++ b/src/surf/surf_routing_dijkstra.cpp @@ -256,7 +256,7 @@ void AsDijkstra::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_p xbt_dynar_foreach(links, cpt, link) { xbt_dynar_unshift(route->link_list, &link); if (lat) - *lat += dynamic_cast(static_cast(link))->getLatency(); + *lat += static_cast(link)->getLatency(); } } @@ -364,7 +364,7 @@ void AsDijkstra::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_p xbt_dynar_foreach(links, cpt, link) { xbt_dynar_insert_at(route->link_list, pos, &link); if (lat) - *lat += dynamic_cast(static_cast(link))->getLatency(); + *lat += static_cast(link)->getLatency(); pos++; } } @@ -373,7 +373,7 @@ void AsDijkstra::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_p xbt_dynar_foreach(links, cpt, link) { xbt_dynar_unshift(route->link_list, &link); if (lat) - *lat += dynamic_cast(static_cast(link))->getLatency(); + *lat += static_cast(link)->getLatency(); } size++; } diff --git a/src/surf/surf_routing_floyd.cpp b/src/surf/surf_routing_floyd.cpp index 0f2bd28770..a1d5287134 100644 --- a/src/surf/surf_routing_floyd.cpp +++ b/src/surf/surf_routing_floyd.cpp @@ -121,7 +121,7 @@ void AsFloyd::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_plat xbt_dynar_foreach(links, cpt, link) { xbt_dynar_push_as(res->link_list, sg_routing_link_t, link); if (lat) - *lat += dynamic_cast(static_cast(link))->getLatency(); + *lat += static_cast(link)->getLatency(); } prev_dst_gw = e_route->gw_dst; diff --git a/src/surf/surf_routing_full.cpp b/src/surf/surf_routing_full.cpp index 25f5532ddf..02a5168776 100644 --- a/src/surf/surf_routing_full.cpp +++ b/src/surf/surf_routing_full.cpp @@ -125,7 +125,7 @@ void AsFull::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_platf xbt_dynar_foreach(e_route->link_list, cpt, link) { xbt_dynar_push(res->link_list, &link); if (lat) - *lat += dynamic_cast(static_cast(link))->getLatency(); + *lat += static_cast(link)->getLatency(); } } } diff --git a/src/surf/surf_routing_vivaldi.cpp b/src/surf/surf_routing_vivaldi.cpp index 92e3bb2ecd..da190cd356 100644 --- a/src/surf/surf_routing_vivaldi.cpp +++ b/src/surf/surf_routing_vivaldi.cpp @@ -45,7 +45,7 @@ void AsVivaldi::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_pl if(info.link_up) { // link up xbt_dynar_push_as(route->link_list, void*, info.link_up); if (lat) - *lat += dynamic_cast(static_cast(info.link_up))->getLatency(); + *lat += static_cast(info.link_up)->getLatency(); } } src_ctn = (xbt_dynar_t) xbt_lib_get_or_null(host_lib, tmp_src_name, COORD_HOST_LEVEL); @@ -67,7 +67,7 @@ void AsVivaldi::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_pl if(info.link_down) { // link down xbt_dynar_push_as(route->link_list,void*,info.link_down); if (lat) - *lat += dynamic_cast(static_cast(info.link_down))->getLatency(); + *lat += static_cast(info.link_down)->getLatency(); } } dst_ctn = (xbt_dynar_t) xbt_lib_get_or_null(host_lib, tmp_dst_name, COORD_HOST_LEVEL); diff --git a/src/surf/vm_workstation_hl13.cpp b/src/surf/vm_workstation_hl13.cpp index c403499423..f0367303fd 100644 --- a/src/surf/vm_workstation_hl13.cpp +++ b/src/surf/vm_workstation_hl13.cpp @@ -115,10 +115,8 @@ double WorkstationVMHL13Model::shareResources(double now) char *key; void **ind_host; xbt_lib_foreach(host_lib, cursor, key, ind_host) { - WorkstationPtr ws = dynamic_cast( - static_cast(ind_host[SURF_WKS_LEVEL])); - CpuPtr cpu = dynamic_cast( - static_cast(ind_host[SURF_CPU_LEVEL])); + WorkstationPtr ws = static_cast(ind_host[SURF_WKS_LEVEL]); + CpuPtr cpu = static_cast(ind_host[SURF_CPU_LEVEL]); if (!ws) continue; @@ -128,9 +126,9 @@ double WorkstationVMHL13Model::shareResources(double now) xbt_assert(cpu, "cpu-less workstation"); /* It is a virtual machine, so we can cast it to workstation_VM2013_t */ - WorkstationVMPtr ws_vm = dynamic_cast(ws); + WorkstationVMPtr ws_vm = static_cast(ws); - double solved_value = get_solved_value(reinterpret_cast(ws_vm->p_action)); + double solved_value = get_solved_value(static_cast(ws_vm->p_action)); XBT_DEBUG("assign %f to vm %s @ pm %s", solved_value, ws->getName(), ws_vm->p_subWs->getName()); @@ -243,9 +241,7 @@ WorkstationVMHL13::WorkstationVMHL13(WorkstationVMModelPtr model, const char* na surf_resource_t ind_phys_workstation) : WorkstationVM(model, name, props, NULL, NULL) { - WorkstationPtr sub_ws = dynamic_cast( - static_cast( - surf_workstation_resource_priv(ind_phys_workstation))); + WorkstationPtr sub_ws = static_cast(surf_workstation_resource_priv(ind_phys_workstation)); /* Currently, we assume a VM has no storage. */ p_storage = NULL; @@ -264,9 +260,7 @@ WorkstationVMHL13::WorkstationVMHL13(WorkstationVMModelPtr model, const char* na // //// CPU RELATED STUFF //// // Roughly, create a vcpu resource by using the values of the sub_cpu one. - CpuCas01Ptr sub_cpu = dynamic_cast( - static_cast( - surf_cpu_resource_priv(ind_phys_workstation))); + CpuCas01Ptr sub_cpu = static_cast(surf_cpu_resource_priv(ind_phys_workstation)); /* We can assume one core and cas01 cpu for the first step. * Do xbt_lib_set(host_lib, name, SURF_CPU_LEVEL, cpu) if you get the resource. */ @@ -284,7 +278,7 @@ WorkstationVMHL13::WorkstationVMHL13(WorkstationVMModelPtr model, const char* na /* We create cpu_action corresponding to a VM process on the host operating system. */ /* FIXME: TODO: we have to peridocally input GUESTOS_NOISE to the system? how ? */ // vm_ws->cpu_action = surf_cpu_model_pm->extension.cpu.execute(ind_phys_workstation, GUESTOS_NOISE); - p_action = dynamic_cast(sub_cpu->execute(0)); + p_action = static_cast(sub_cpu->execute(0)); /* The SURF_WKS_LEVEL at host_lib saves workstation_CLM03 objects. Please * note workstation_VM2013 objects, inheriting the workstation_CLM03 @@ -306,9 +300,7 @@ WorkstationVMHL13::~WorkstationVMHL13() surf_resource_t ind_vm_workstation = xbt_lib_get_elm_or_null(host_lib, getName()); /* Before clearing the entries in host_lib, we have to pick up resources. */ - CpuCas01Ptr cpu = dynamic_cast( - static_cast( - surf_cpu_resource_priv(ind_vm_workstation))); + CpuCas01Ptr cpu = static_cast(surf_cpu_resource_priv(ind_vm_workstation)); /* We deregister objects from host_lib, without invoking the freeing callback * of each level. @@ -395,9 +387,7 @@ void WorkstationVMHL13::restore() void WorkstationVMHL13::migrate(surf_resource_t ind_dst_pm) { /* ind_phys_workstation equals to smx_host_t */ - WorkstationPtr ws_dst = dynamic_cast( - static_cast( - surf_workstation_resource_priv(ind_dst_pm))); + WorkstationPtr ws_dst = static_cast(surf_workstation_resource_priv(ind_dst_pm)); const char *vm_name = getName(); const char *pm_name_src = p_subWs->getName(); const char *pm_name_dst = ws_dst->getName(); @@ -433,10 +423,8 @@ void WorkstationVMHL13::migrate(surf_resource_t ind_dst_pm) #endif /* create a cpu action bound to the pm model at the destination. */ - CpuActionPtr new_cpu_action = dynamic_cast( - dynamic_cast( - static_cast( - surf_cpu_resource_priv(ind_dst_pm)))->execute(0)); + CpuActionPtr new_cpu_action = static_cast( + static_cast(surf_cpu_resource_priv(ind_dst_pm))->execute(0)); e_surf_action_state_t state = p_action->getState(); if (state != SURF_ACTION_DONE) diff --git a/src/surf/vm_workstation_interface.cpp b/src/surf/vm_workstation_interface.cpp index 7572e71224..69f6c67fc2 100644 --- a/src/surf/vm_workstation_interface.cpp +++ b/src/surf/vm_workstation_interface.cpp @@ -34,9 +34,7 @@ WorkstationVM::~WorkstationVM() surf_resource_t ind_vm_workstation = xbt_lib_get_elm_or_null(host_lib, getName()); /* Before clearing the entries in host_lib, we have to pick up resources. */ - CpuCas01Ptr cpu = dynamic_cast( - static_cast( - surf_cpu_resource_priv(ind_vm_workstation))); + CpuCas01Ptr cpu = static_cast(surf_cpu_resource_priv(ind_vm_workstation)); /* We deregister objects from host_lib, without invoking the freeing callback * of each level. diff --git a/src/surf/workstation_clm03.cpp b/src/surf/workstation_clm03.cpp index ba59999caa..6aff6aa45a 100644 --- a/src/surf/workstation_clm03.cpp +++ b/src/surf/workstation_clm03.cpp @@ -66,7 +66,7 @@ WorkstationPtr WorkstationCLM03Model::createResource(const char *name){ WorkstationPtr workstation = new WorkstationCLM03(surf_workstation_model, name, NULL, (xbt_dynar_t)xbt_lib_get_or_null(storage_lib, name, ROUTING_STORAGE_HOST_LEVEL), (RoutingEdgePtr)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_DEBUG("Create workstation %s with %ld mounted disks", name, xbt_dynar_length(workstation->p_storage)); xbt_lib_set(host_lib, name, SURF_WKS_LEVEL, static_cast(workstation)); return workstation; diff --git a/src/surf/workstation_interface.cpp b/src/surf/workstation_interface.cpp index 8e8e83220a..b6df595de5 100644 --- a/src/surf/workstation_interface.cpp +++ b/src/surf/workstation_interface.cpp @@ -39,10 +39,8 @@ void WorkstationModel::adjustWeightOfDummyCpuActions() void **ind_host; xbt_lib_foreach(host_lib, cursor, key, ind_host) { - WorkstationPtr ws = dynamic_cast( - static_cast(ind_host[SURF_WKS_LEVEL])); - CpuCas01Ptr cpu_cas01 = dynamic_cast( - static_cast(ind_host[SURF_CPU_LEVEL])); + WorkstationPtr ws = static_cast(ind_host[SURF_WKS_LEVEL]); + CpuCas01Ptr cpu_cas01 = static_cast(ind_host[SURF_CPU_LEVEL]); if (!ws) continue; @@ -52,7 +50,7 @@ void WorkstationModel::adjustWeightOfDummyCpuActions() xbt_assert(cpu_cas01, "cpu-less workstation"); /* It is a virtual machine, so we can cast it to workstation_VM2013_t */ - WorkstationVMPtr ws_vm = dynamic_cast(ws); + WorkstationVMPtr ws_vm = static_cast(ws); int is_active = lmm_constraint_used(cpu_cas01->getModel()->getMaxminSystem(), cpu_cas01->getConstraint()); // int is_active_old = constraint_is_active(cpu_cas01); @@ -147,7 +145,7 @@ StoragePtr Workstation::findStorageOnMountList(const char* mount) { XBT_DEBUG("See '%s'",mnt.name); if(!strcmp(mount,mnt.name)){ - st = dynamic_cast(static_cast(mnt.storage)); + st = static_cast(mnt.storage); break; } } @@ -163,7 +161,7 @@ xbt_dict_t Workstation::getStorageList() char *storage_name = NULL; xbt_dynar_foreach(p_storage,i,mnt){ - storage_name = (char *)dynamic_cast(static_cast(mnt.storage))->getName(); + storage_name = (char *)static_cast(mnt.storage)->getName(); xbt_dict_set(storage_list,mnt.name,storage_name,NULL); } return storage_list; @@ -289,7 +287,7 @@ xbt_dynar_t Workstation::getVms() char *key; void **ind_host; xbt_lib_foreach(host_lib, cursor, key, ind_host) { - WorkstationPtr ws = dynamic_cast(static_cast(ind_host[SURF_WKS_LEVEL])); + WorkstationPtr ws = static_cast(ind_host[SURF_WKS_LEVEL]); if (!ws) continue; /* skip if it is not a virtual machine */ @@ -297,7 +295,7 @@ xbt_dynar_t Workstation::getVms() continue; /* It is a virtual machine, so we can cast it to workstation_VM2013_t */ - WorkstationVMPtr ws_vm = dynamic_cast(ws); + WorkstationVMPtr ws_vm = static_cast(ws); if (this == ws_vm-> p_subWs) xbt_dynar_push(dyn, &ws_vm->p_subWs); } diff --git a/src/surf/workstation_ptask_L07.cpp b/src/surf/workstation_ptask_L07.cpp index 54d3dbe9d2..1e26a52045 100644 --- a/src/surf/workstation_ptask_L07.cpp +++ b/src/surf/workstation_ptask_L07.cpp @@ -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); @@ -583,7 +570,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 +616,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]);