1 #include "network_cm02.hpp"
3 #ifndef NETWORK_CONSTANT_HPP_
4 #define NETWORK_CONSTANT_HPP_
9 class NetworkConstantModel;
10 typedef NetworkConstantModel *NetworkConstantModelPtr;
12 class NetworkConstantLink;
13 typedef NetworkConstantLink *NetworkConstantLinkPtr;
15 class NetworkConstantAction;
16 typedef NetworkConstantAction *NetworkConstantActionPtr;
21 class NetworkConstantModel : public NetworkCm02Model {
23 NetworkConstantModel()
24 : NetworkCm02Model("constant time network")
26 p_updateMechanism = UM_UNDEFINED;
28 double shareResources(double now);
29 void updateActionsState(double now, double delta);
30 ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
31 double size, double rate);
32 void gapRemove(ActionPtr action);
33 //FIXME:virtual void addTraces() =0;
39 class NetworkConstantLink : public NetworkCm02Link {
41 NetworkConstantLink(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties);
43 void updateState(tmgr_trace_event_t event_type, double value, double date);
44 double getBandwidth();
52 class NetworkConstantAction : public NetworkCm02Action {
54 NetworkConstantAction(NetworkConstantModelPtr model_, double size, double latency)
55 : NetworkCm02Action(model_, size, false)
59 if (m_latency <= 0.0) {
60 p_stateSet = getModel()->getDoneActionSet();
61 p_stateSet->push_back(*this);
68 void setCategory(const char *category);
76 #endif /* NETWORK_CONSTANT_HPP_ */