X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1adbcb0ce38e18e5bab8a699236e5128f506e603..5e2c8aeab0ec45fb9945018b9de3cab5c1019875:/src/surf/network.hpp diff --git a/src/surf/network.hpp b/src/surf/network.hpp deleted file mode 100644 index 5acdb1216d..0000000000 --- a/src/surf/network.hpp +++ /dev/null @@ -1,153 +0,0 @@ -#include "surf.hpp" -#include "xbt/fifo.h" -#include "xbt/graph.h" -#include "surf_routing.hpp" - -#ifndef SURF_MODEL_NETWORK_H_ -#define SURF_MODEL_NETWORK_H_ - -/*********** - * Classes * - ***********/ -class NetworkCm02Model; -typedef NetworkCm02Model *NetworkCm02ModelPtr; - -class NetworkCm02Link; -typedef NetworkCm02Link *NetworkCm02LinkPtr; - -class NetworkCm02LinkLmm; -typedef NetworkCm02LinkLmm *NetworkCm02LinkLmmPtr; - -class NetworkCm02Action; -typedef NetworkCm02Action *NetworkCm02ActionPtr; - -class NetworkCm02ActionLmm; -typedef NetworkCm02ActionLmm *NetworkCm02ActionLmmPtr; - -/********* - * Tools * - *********/ -extern NetworkCm02ModelPtr surf_network_model; - -void net_define_callbacks(void); - -/********* - * Model * - *********/ -class NetworkCm02Model : public Model { -private: - void initialize(); -public: - NetworkCm02Model(int /*i*/) : Model("network") { - f_networkSolve = lmm_solve; - m_haveGap = false; - };//FIXME: add network clean interface - NetworkCm02Model(string name) : Model(name) { - this->initialize(); - } - NetworkCm02Model() : Model("network") { - this->initialize(); - } - ~NetworkCm02Model() { - if (p_maxminSystem) - lmm_system_free(p_maxminSystem); - if (p_actionHeap) - xbt_heap_free(p_actionHeap); - if (p_modifiedSet) - xbt_swag_free(p_modifiedSet); - } - //FIXME:NetworkCm02LinkPtr createResource(string name); - NetworkCm02LinkLmmPtr createResource(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); - void updateActionsStateLazy(double now, double delta); - virtual void gapAppend(double /*size*/, const NetworkCm02LinkLmmPtr /*link*/, NetworkCm02ActionLmmPtr /*action*/) {}; - virtual ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst, - double size, double rate); - xbt_dynar_t getRoute(RoutingEdgePtr src, RoutingEdgePtr dst); //FIXME: kill field? That is done by the routing nowadays - //FIXME: virtual void addTraces() =0; - void (*f_networkSolve)(lmm_system_t); - virtual double latencyFactor(double size); - virtual double bandwidthFactor(double size); - virtual double bandwidthConstraint(double rate, double bound, double size); - bool m_haveGap; -}; - -/************ - * Resource * - ************/ - -class NetworkCm02Link : virtual public Resource { -public: - NetworkCm02Link() : p_latEvent(NULL) {}; - NetworkCm02Link(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties) - : Resource(model, name, properties), p_latEvent(NULL) {}; - virtual double getBandwidth()=0; - virtual double getLatency(); - virtual bool isShared()=0; - /* Using this object with the public part of - model does not make sense */ - double m_latCurrent; - tmgr_trace_event_t p_latEvent; -}; - -class NetworkCm02LinkLmm : public ResourceLmm, public NetworkCm02Link { -public: - NetworkCm02LinkLmm(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties) - : ResourceLmm(), NetworkCm02Link(model, name, properties) {}; - NetworkCm02LinkLmm(NetworkCm02ModelPtr model, const char *name, xbt_dict_t props, - lmm_system_t system, - double constraint_value, - tmgr_history_t history, - e_surf_resource_state_t state_init, - tmgr_trace_t state_trace, - double metric_peak, - tmgr_trace_t metric_trace, - double lat_initial, - tmgr_trace_t lat_trace, - e_surf_link_sharing_policy_t policy); - bool isShared(); - bool isUsed(); - double getBandwidth(); - void updateState(tmgr_trace_event_t event_type, double value, double date); -}; - - -/********** - * Action * - **********/ -class NetworkCm02Action : virtual public Action { -public: - NetworkCm02Action(ModelPtr model, double cost, bool failed) - : Action(model, cost, failed) {}; - double m_latency; - double m_latCurrent; - double m_weight; - double m_rate; - const char* p_senderLinkName; - double m_senderGap; - double m_senderSize; - xbt_fifo_item_t p_senderFifoItem; -#ifdef HAVE_LATENCY_BOUND_TRACKING - int m_latencyLimited; -#endif - -}; - -class NetworkCm02ActionLmm : public ActionLmm, public NetworkCm02Action { -public: - NetworkCm02ActionLmm(ModelPtr model, double cost, bool failed) - : Action(model, cost, failed), - ActionLmm(model, cost, failed), - NetworkCm02Action(model, cost, failed) {}; - void updateRemainingLazy(double now); - void recycle(); -}; - -#endif /* SURF_MODEL_NETWORK_H_ */