-#include "network.hpp"
+/* Copyright (c) 2013-2014. The SimGrid Team.
+ * All rights reserved. */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include "network_cm02.hpp"
#ifndef NETWORK_CONSTANT_HPP_
#define NETWORK_CONSTANT_HPP_
class NetworkConstantModel;
typedef NetworkConstantModel *NetworkConstantModelPtr;
-class NetworkConstantLinkLmm;
-typedef NetworkConstantLinkLmm *NetworkConstantLinkLmmPtr;
+class NetworkConstantLink;
+typedef NetworkConstantLink *NetworkConstantLinkPtr;
-class NetworkConstantActionLmm;
-typedef NetworkConstantActionLmm *NetworkConstantActionLmmPtr;
+class NetworkConstantAction;
+typedef NetworkConstantAction *NetworkConstantActionPtr;
/*********
* Model *
*********/
class NetworkConstantModel : public NetworkCm02Model {
public:
- NetworkConstantModel() : NetworkCm02Model("constant time network") {};
- NetworkCm02LinkLmmPtr createResource(string name);
+ NetworkConstantModel()
+ : NetworkCm02Model("constant time network")
+ {
+ p_updateMechanism = UM_UNDEFINED;
+ };
double shareResources(double now);
void updateActionsState(double now, double delta);
ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
double size, double rate);
- void gapRemove(ActionLmmPtr action);
+ void gapRemove(ActionPtr action);
//FIXME:virtual void addTraces() =0;
};
/************
* Resource *
************/
-class NetworkConstantLinkLmm : public NetworkCm02LinkLmm {
+class NetworkConstantLink : public NetworkCm02Link {
public:
- NetworkConstantLinkLmm(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties);
+ NetworkConstantLink(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties);
bool isUsed();
void updateState(tmgr_trace_event_t event_type, double value, double date);
double getBandwidth();
/**********
* Action *
**********/
-class NetworkConstantActionLmm : public NetworkCm02ActionLmm {
+class NetworkConstantAction : public NetworkCm02Action {
public:
- NetworkConstantActionLmm(NetworkConstantModelPtr model, double size, double latency):
- Action(model, size, false), NetworkCm02ActionLmm(model, 0, false), m_latInit(latency) {
+ NetworkConstantAction(NetworkConstantModelPtr model_, double size, double latency)
+ : NetworkCm02Action(model_, size, false)
+ , m_latInit(latency)
+ {
m_latency = latency;
if (m_latency <= 0.0) {
- p_stateSet = p_model->p_doneActionSet;
- xbt_swag_insert(static_cast<ActionPtr>(this), p_stateSet);
+ p_stateSet = getModel()->getDoneActionSet();
+ p_stateSet->push_back(*this);
}
+ p_variable = NULL;
};
int unref();
void recycle();