Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
b7d17157c54983ecb612e11657d4c1354428d878
[simgrid.git] / src / surf / network_ib.hpp
1 /* Copyright (c) 2014. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #ifndef SURF_NETWORK_IB_HPP_
8 #define SURF_NETWORK_IB_HPP_
9
10 class NetworkIBModel : public NetworkModel {
11 private:
12 public:
13   NetworkIBModel();
14   NetworkIBModel(const char *name);
15   ~NetworkModel();
16   virtual ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
17                                 double size, double rate);
18   virtual NetworkLinkPtr createNetworkLink(const char *name,
19                                           double bw_initial,
20                                           tmgr_trace_t bw_trace,
21                                           double lat_initial,
22                                           tmgr_trace_t lat_trace,
23                                           e_surf_resource_state_t state_initial,
24                                           tmgr_trace_t state_trace,
25                                           e_surf_link_sharing_policy_t policy,
26                                           xbt_dict_t properties);
27 };
28
29 class NetworkIBLink : public NetworkLink {
30 private:
31 public:
32   NetworkIBLink(NetworkModelPtr model, const char *name, xbt_dict_t props);
33   NetworkIBLink(NetworkModelPtr model, const char *name, xbt_dict_t props,
34                 lmm_constraint_t constraint,
35                 tmgr_history_t history,
36                 tmgr_trace_t state_trace);
37   ~NetworkIBLink();
38   virtual void updateLatency(double value, double date=surf_get_clock());
39   virtual void updateBandwidth(double value, double date=surf_get_clock());
40
41
42 };
43 #endif