Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines with new year.
[simgrid.git] / src / surf / network_ib.hpp
index 5bd37c9..8df5bc0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2018. The SimGrid Team.
+/* Copyright (c) 2014-2020. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -10,7 +10,7 @@
 #include "src/surf/network_smpi.hpp"
 #include "xbt/base.h"
 
-#include <unordered_map>
+#include <map>
 #include <vector>
 
 namespace simgrid {
@@ -19,13 +19,10 @@ namespace resource {
 
 class XBT_PRIVATE IBNode;
 
-class XBT_PRIVATE ActiveComm {
-public:
-  IBNode* destination;
-  NetworkAction* action;
-  double init_rate;
-  ActiveComm() : destination(nullptr), action(nullptr), init_rate(-1){};
-  virtual ~ActiveComm() = default;
+struct XBT_PRIVATE ActiveComm {
+  IBNode* destination   = nullptr;
+  NetworkAction* action = nullptr;
+  double init_rate      = -1;
 };
 
 class IBNode {
@@ -36,30 +33,30 @@ public:
   // 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){};
+  int nbActiveCommsDown = 0;
+  explicit IBNode(int id) : id(id){};
   virtual ~IBNode() = default;
 };
 
 class XBT_PRIVATE NetworkIBModel : public NetworkSmpiModel {
-private:
+  double Bs;
+  double Be;
+  double ys;
   void updateIBfactors_rec(IBNode* root, std::vector<bool>& updatedlist);
   void computeIBfactors(IBNode* root);
 
 public:
   NetworkIBModel();
   explicit NetworkIBModel(const char* name);
-  ~NetworkIBModel() override;
+  NetworkIBModel(const NetworkIBModel&) = delete;
+  NetworkIBModel& operator=(const NetworkIBModel&) = delete;
   void updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove);
 
-  std::unordered_map<std::string, IBNode*> active_nodes;
+  std::unordered_map<std::string, IBNode> active_nodes;
   std::unordered_map<NetworkAction*, std::pair<IBNode*, IBNode*>> active_comms;
 
-  double Bs;
-  double Be;
-  double ys;
 };
-}
+} // namespace resource
 } // namespace kernel
 } // namespace simgrid
 #endif