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() : NetworkCm02Model("constant time network") {};
24 double shareResources(double now);
25 void updateActionsState(double now, double delta);
26 ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
27 double size, double rate);
28 void gapRemove(ActionLmmPtr action);
29 //FIXME:virtual void addTraces() =0;
35 class NetworkConstantLinkLmm : public NetworkCm02LinkLmm {
37 NetworkConstantLinkLmm(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties);
39 void updateState(tmgr_trace_event_t event_type, double value, double date);
40 double getBandwidth();
48 class NetworkConstantActionLmm : public NetworkCm02ActionLmm {
50 NetworkConstantActionLmm(NetworkConstantModelPtr model_, double size, double latency):
51 Action(model_, size, false), NetworkCm02ActionLmm(model_, 0, false), m_latInit(latency) {
53 if (m_latency <= 0.0) {
54 p_stateSet = getModel()->getDoneActionSet();
55 xbt_swag_insert(static_cast<ActionPtr>(this), p_stateSet);
61 void setCategory(const char *category);
69 #endif /* NETWORK_CONSTANT_HPP_ */