1 #include "network_cm02.hpp"
3 #ifndef NETWORK_CONSTANT_HPP_
4 #define NETWORK_CONSTANT_HPP_
9 class NetworkConstantModel;
10 typedef NetworkConstantModel *NetworkConstantModelPtr;
12 class NetworkConstantLinkLmm;
13 typedef NetworkConstantLinkLmm *NetworkConstantLinkLmmPtr;
15 class NetworkConstantActionLmm;
16 typedef NetworkConstantActionLmm *NetworkConstantActionLmmPtr;
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(ActionLmmPtr action);
33 //FIXME:virtual void addTraces() =0;
39 class NetworkConstantLinkLmm : public NetworkCm02LinkLmm {
41 NetworkConstantLinkLmm(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 NetworkConstantActionLmm : public NetworkCm02ActionLmm {
54 NetworkConstantActionLmm(NetworkConstantModelPtr model_, double size, double latency):
55 Action(model_, size, false), NetworkCm02ActionLmm(model_, 0, false), m_latInit(latency) {
57 if (m_latency <= 0.0) {
58 p_stateSet = getModel()->getDoneActionSet();
59 p_stateSet->push_back(*this);
66 void setCategory(const char *category);
74 #endif /* NETWORK_CONSTANT_HPP_ */