Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[sonar] Remove custom destructors for surf/network_ib.
[simgrid.git] / src / surf / network_ib.hpp
index f132f83..ee33677 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015. The SimGrid Team.
+/* Copyright (c) 2014-2019. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
 #include "xbt/base.h"
 
 #include <map>
+#include <vector>
 
 namespace simgrid {
-  namespace surf {
+namespace kernel {
+namespace resource {
 
-    class XBT_PRIVATE IBNode;
+class XBT_PRIVATE IBNode;
 
-    class XBT_PRIVATE ActiveComm{
-    public :
-      //IBNode* origin;
-      IBNode* destination;
-      NetworkAction *action;
-      double init_rate;
-      ActiveComm() : destination(nullptr),action(nullptr),init_rate(-1){};
-      virtual ~ActiveComm() = default;
-    };
+class XBT_PRIVATE ActiveComm {
+public:
+  IBNode* destination;
+  NetworkAction* action;
+  double init_rate;
+  ActiveComm() : destination(nullptr), action(nullptr), init_rate(-1){};
+  virtual ~ActiveComm() = default;
+};
 
-    class IBNode{
-    public :
-      int id;
-      //store related links, to ease computation of the penalties
-      std::vector<ActiveComm*> ActiveCommsUp;
-      //store the number of comms received from each node
-      std::map<IBNode*, int> ActiveCommsDown;
-      //number of comms the node is receiving
-      int nbActiveCommsDown;
-      explicit IBNode(int id) : id(id),nbActiveCommsDown(0){};
-      virtual ~IBNode() = default;
-    };
+class IBNode {
+public:
+  int id;
+  // store related links, to ease computation of the penalties
+  std::vector<ActiveComm*> ActiveCommsUp;
+  // store the number of comms received from each node
+  std::map<IBNode*, int> ActiveCommsDown;
+  // number of comms the node is receiving
+  int nbActiveCommsDown;
+  explicit IBNode(int id) : id(id), nbActiveCommsDown(0){};
+  virtual ~IBNode() = default;
+};
 
-    class XBT_PRIVATE NetworkIBModel : public NetworkSmpiModel {
-    private:
-      void updateIBfactors_rec(IBNode *root, bool* updatedlist);
-      void computeIBfactors(IBNode *root);
-    public:
-      NetworkIBModel();
-      explicit NetworkIBModel(const char *name);
-      ~NetworkIBModel() override;
-      void updateIBfactors(NetworkAction *action, IBNode *from, IBNode * to, int remove);
+class XBT_PRIVATE NetworkIBModel : public NetworkSmpiModel {
+  double Bs;
+  double Be;
+  double ys;
+  void updateIBfactors_rec(IBNode* root, std::vector<bool>& updatedlist);
+  void computeIBfactors(IBNode* root);
 
-      xbt_dict_t active_nodes;
-      std::map<NetworkAction *, std::pair<IBNode*,IBNode*> > active_comms;
+public:
+  NetworkIBModel();
+  explicit NetworkIBModel(const char* name);
+  NetworkIBModel(const NetworkIBModel&) = delete;
+  NetworkIBModel& operator=(const NetworkIBModel&) = delete;
+  void updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove);
 
-      double Bs;
-      double Be;
-      double ys;
-
-    };
-
-  }
-}
+  std::unordered_map<std::string, IBNode> active_nodes;
+  std::unordered_map<NetworkAction*, std::pair<IBNode*, IBNode*>> active_comms;
 
+};
+} // namespace resource
+} // namespace kernel
+} // namespace simgrid
 #endif