From 45ba4879c64faca75002be9379e6a7cd3e1d41d6 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Thu, 6 Aug 2015 01:38:46 +0200 Subject: [PATCH] Cleanups in the Constant model - Don't derive from NetworkCM02 but directly from Network - Kill dead code: there is no link in that model - Die if someone tries to create a link (+hint on how to fix the platform) --- src/surf/network_cm02.hpp | 8 +++---- src/surf/network_constant.cpp | 39 ++++++------------------------ src/surf/network_constant.hpp | 45 ++++++++++++++++------------------- 3 files changed, 32 insertions(+), 60 deletions(-) diff --git a/src/surf/network_cm02.hpp b/src/surf/network_cm02.hpp index abdbf83013..f384e5f3de 100644 --- a/src/surf/network_cm02.hpp +++ b/src/surf/network_cm02.hpp @@ -4,13 +4,13 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ +#ifndef SURF_NETWORK_CM02_HPP_ +#define SURF_NETWORK_CM02_HPP_ + #include "network_interface.hpp" #include "xbt/fifo.h" #include "xbt/graph.h" -#ifndef SURF_NETWORK_CM02_HPP_ -#define SURF_NETWORK_CM02_HPP_ - /*********** * Classes * ***********/ @@ -42,7 +42,7 @@ public: e_surf_resource_state_t state_initial, tmgr_trace_t state_trace, e_surf_link_sharing_policy_t policy, - xbt_dict_t properties); + xbt_dict_t properties) override; void addTraces(); void updateActionsStateLazy(double now, double delta); void updateActionsStateFull(double now, double delta); diff --git a/src/surf/network_constant.cpp b/src/surf/network_constant.cpp index f9ffcb6761..9461678078 100644 --- a/src/surf/network_constant.cpp +++ b/src/surf/network_constant.cpp @@ -13,6 +13,10 @@ static int host_number_int = 0; static void netcste_count_hosts(sg_platf_host_cbarg_t /*h*/) { host_number_int++; } +static void netcste_parse_nolink(sg_platf_link_cbarg_t link){ + xbt_die("There is no link in the Constant network model. " + "Please remove any link from your platform (and switch to routing='None')"); +} /********* * Model * @@ -22,7 +26,10 @@ void surf_network_model_init_Constant() xbt_assert(surf_network_model == NULL); surf_network_model = new NetworkConstantModel(); + routing_model_create(NULL); + sg_platf_host_add_cb(netcste_count_hosts); + sg_platf_link_add_cb(netcste_parse_nolink); Model *model = surf_network_model; xbt_dynar_push(model_list, &model); @@ -88,38 +95,6 @@ Action *NetworkConstantModel::communicate(RoutingEdge *src, RoutingEdge *dst, return action; } -/************ - * Resource * - ************/ -bool NetworkConstantLink::isUsed() -{ - return 0; -} - -void NetworkConstantLink::updateState(tmgr_trace_event_t /*event_type*/, - double /*value*/, double /*time*/) -{ - DIE_IMPOSSIBLE; -} - -double NetworkConstantLink::getBandwidth() -{ - DIE_IMPOSSIBLE; - return -1.0; /* useless since DIE actually abort(), but eclipse prefer to have a useless and harmless return */ -} - -double NetworkConstantLink::getLatency() -{ - DIE_IMPOSSIBLE; - return -1.0; /* useless since DIE actually abort(), but eclipse prefer to have a useless and harmless return */ -} - -bool NetworkConstantLink::isShared() -{ - DIE_IMPOSSIBLE; - return -1; /* useless since DIE actually abort(), but eclipse prefer to have a useless and harmless return */ -} - /********** * Action * **********/ diff --git a/src/surf/network_constant.hpp b/src/surf/network_constant.hpp index 5b8d25db14..2dc6681c0f 100644 --- a/src/surf/network_constant.hpp +++ b/src/surf/network_constant.hpp @@ -4,11 +4,11 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include "network_cm02.hpp" - #ifndef NETWORK_CONSTANT_HPP_ #define NETWORK_CONSTANT_HPP_ +#include "network_interface.hpp" + /*********** * Classes * ***********/ @@ -18,39 +18,36 @@ class NetworkConstantAction; /********* * Model * *********/ -class NetworkConstantModel : public NetworkCm02Model { +class NetworkConstantModel : public NetworkModel { public: - NetworkConstantModel() - : NetworkCm02Model() - { - p_updateMechanism = UM_UNDEFINED; - }; + NetworkConstantModel() : NetworkModel() { }; + ~NetworkConstantModel() { } + + Action *communicate(RoutingEdge *src, RoutingEdge *dst, double size, double rate); double shareResources(double now); void updateActionsState(double now, double delta); - Action *communicate(RoutingEdge *src, RoutingEdge *dst, double size, double rate); - void gapRemove(Action *action); -}; + bool shareResourcesIsIdempotent() {return true;} -/************ - * Resource * - ************/ -class NetworkConstantLink : public NetworkCm02Link { -public: - NetworkConstantLink(NetworkCm02Model *model, const char* name, xbt_dict_t properties); - bool isUsed(); - void updateState(tmgr_trace_event_t event_type, double value, double date); - double getBandwidth(); - double getLatency(); - bool isShared(); + Link* createLink(const char *name, + double bw_initial, + tmgr_trace_t bw_trace, + double lat_initial, + tmgr_trace_t lat_trace, + e_surf_resource_state_t state_initial, + tmgr_trace_t state_trace, + e_surf_link_sharing_policy_t policy, + xbt_dict_t properties) { DIE_IMPOSSIBLE; } + void addTraces() { DIE_IMPOSSIBLE; } + xbt_dynar_t getRoute(RoutingEdge *src, RoutingEdge *dst) { DIE_IMPOSSIBLE; } }; /********** * Action * **********/ -class NetworkConstantAction : public NetworkCm02Action { +class NetworkConstantAction : public NetworkAction { public: NetworkConstantAction(NetworkConstantModel *model_, double size, double latency) - : NetworkCm02Action(model_, size, false) + : NetworkAction(model_, size, false) , m_latInit(latency) { m_latency = latency; -- 2.20.1