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 NetworkCm02LinkLmmPtr createResource(string name);
25 double shareResources(double now);
26 void updateActionsState(double now, double delta);
27 ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
28 double size, double rate);
29 void gapRemove(ActionLmmPtr action);
30 //FIXME:virtual void addTraces() =0;
36 class NetworkConstantLinkLmm : public NetworkCm02LinkLmm {
38 NetworkConstantLinkLmm(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties);
40 void updateState(tmgr_trace_event_t event_type, double value, double date);
41 double getBandwidth();
49 class NetworkConstantActionLmm : public NetworkCm02ActionLmm {
51 NetworkConstantActionLmm(NetworkConstantModelPtr model, double latency):
52 Action(model, 0, false), NetworkCm02ActionLmm(model, 0, false), m_latInit(latency) {
54 if (m_latency <= 0.0) {
55 p_stateSet = p_model->p_doneActionSet;
56 xbt_swag_insert(static_cast<ActionPtr>(this), p_stateSet);
62 void setCategory(const char *category);
70 #endif /* NETWORK_CONSTANT_HPP_ */