Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix WorkstationCLM03::fileSeek return type
[simgrid.git] / src / surf / network.hpp
index 9770099..5acdb12 100644 (file)
@@ -35,13 +35,27 @@ void net_define_callbacks(void);
  * Model *
  *********/
 class NetworkCm02Model : public Model {
+private:
+  void initialize();
 public:
-  NetworkCm02Model(int i) : Model("network") {
+  NetworkCm02Model(int /*i*/) : Model("network") {
        f_networkSolve = lmm_solve;
        m_haveGap = false;
   };//FIXME: add network clean interface
-  NetworkCm02Model(string name);
-  NetworkCm02Model();
+  NetworkCm02Model(string name) : Model(name) {
+    this->initialize();
+  }
+  NetworkCm02Model() : Model("network") {
+    this->initialize();
+  }
+  ~NetworkCm02Model() {
+       if (p_maxminSystem)
+         lmm_system_free(p_maxminSystem);
+       if (p_actionHeap)
+         xbt_heap_free(p_actionHeap);
+       if (p_modifiedSet)
+         xbt_swag_free(p_modifiedSet);
+  }
   //FIXME:NetworkCm02LinkPtr createResource(string name);
   NetworkCm02LinkLmmPtr createResource(const char *name,
                                    double bw_initial,
@@ -53,7 +67,7 @@ public:
                                    e_surf_link_sharing_policy_t policy,
                                    xbt_dict_t properties);
   void updateActionsStateLazy(double now, double delta);
-  virtual void gapAppend(double size, const NetworkCm02LinkLmmPtr link, NetworkCm02ActionLmmPtr action) {};
+  virtual void gapAppend(double /*size*/, const NetworkCm02LinkLmmPtr /*link*/, NetworkCm02ActionLmmPtr /*action*/) {};
   virtual ActionPtr communicate(RoutingEdgePtr src, RoutingEdgePtr dst,
                                           double size, double rate);
   xbt_dynar_t getRoute(RoutingEdgePtr src, RoutingEdgePtr dst); //FIXME: kill field? That is done by the routing nowadays
@@ -71,8 +85,9 @@ public:
 
 class NetworkCm02Link : virtual public Resource {
 public:
-  NetworkCm02Link(){};
-  NetworkCm02Link(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties) : Resource(model, name, properties) {};
+  NetworkCm02Link() : p_latEvent(NULL) {};
+  NetworkCm02Link(NetworkCm02ModelPtr model, const char* name, xbt_dict_t properties)
+    : Resource(model, name, properties), p_latEvent(NULL) {};
   virtual double getBandwidth()=0;
   virtual double getLatency();
   virtual bool isShared()=0;