X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/eee21ec5f99218189fc98898a09150294cd0fbf4..413534bc9aac9b6a61840de0a20f933534552fd7:/src/surf/network_constant.hpp diff --git a/src/surf/network_constant.hpp b/src/surf/network_constant.hpp index c9c140d8f7..e793ac3725 100644 --- a/src/surf/network_constant.hpp +++ b/src/surf/network_constant.hpp @@ -1,4 +1,10 @@ -#include "network.hpp" +/* Copyright (c) 2013-2014. The SimGrid Team. + * All rights reserved. */ + +/* 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_ @@ -9,33 +15,35 @@ class NetworkConstantModel; typedef NetworkConstantModel *NetworkConstantModelPtr; -class NetworkConstantLinkLmm; -typedef NetworkConstantLinkLmm *NetworkConstantLinkLmmPtr; +class NetworkConstantLink; +typedef NetworkConstantLink *NetworkConstantLinkPtr; -class NetworkConstantActionLmm; -typedef NetworkConstantActionLmm *NetworkConstantActionLmmPtr; +class NetworkConstantAction; +typedef NetworkConstantAction *NetworkConstantActionPtr; /********* * Model * *********/ class NetworkConstantModel : public NetworkCm02Model { public: - NetworkConstantModel() : NetworkCm02Model("constant time network") {}; - NetworkCm02LinkLmmPtr createResource(string name); + NetworkConstantModel() + : NetworkCm02Model("constant time network") + { + p_updateMechanism = UM_UNDEFINED; + }; double shareResources(double now); void updateActionsState(double now, double delta); ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst, double size, double rate); - void gapRemove(ActionLmmPtr action); - //FIXME:virtual void addTraces() =0; + void gapRemove(ActionPtr action); }; /************ * Resource * ************/ -class NetworkConstantLinkLmm : public NetworkCm02LinkLmm { +class NetworkConstantLink : public NetworkCm02Link { public: - NetworkConstantLinkLmm(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties); + NetworkConstantLink(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties); bool isUsed(); void updateState(tmgr_trace_event_t event_type, double value, double date); double getBandwidth(); @@ -46,15 +54,18 @@ public: /********** * Action * **********/ -class NetworkConstantActionLmm : public NetworkCm02ActionLmm { +class NetworkConstantAction : public NetworkCm02Action { public: - NetworkConstantActionLmm(NetworkConstantModelPtr model, double latency): - Action(model, 0, false), NetworkCm02ActionLmm(model, 0, false), m_latInit(latency) { + NetworkConstantAction(NetworkConstantModelPtr model_, double size, double latency) + : NetworkCm02Action(model_, size, false) + , m_latInit(latency) + { m_latency = latency; if (m_latency <= 0.0) { - p_stateSet = p_model->p_doneActionSet; - xbt_swag_insert(static_cast(this), p_stateSet); + p_stateSet = getModel()->getDoneActionSet(); + p_stateSet->push_back(*this); } + p_variable = NULL; }; int unref(); void recycle();