Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use unsigned int for std:*map positions (must be >0).
authorMatthieu Volat <mazhe@alkumuna.eu>
Wed, 8 Nov 2017 21:38:53 +0000 (22:38 +0100)
committerMatthieu Volat <mazhe@alkumuna.eu>
Wed, 8 Nov 2017 21:38:53 +0000 (22:38 +0100)
src/kernel/routing/ClusterZone.cpp
src/kernel/routing/ClusterZone.hpp
src/kernel/routing/TorusZone.cpp
src/kernel/routing/TorusZone.hpp

index 131fe93..ad30187 100644 (file)
@@ -117,7 +117,7 @@ void ClusterZone::getGraph(xbt_graph_t graph, std::map<std::string, xbt_node_t>*
   }
 }
 
-void ClusterZone::create_links_for_node(ClusterCreationArgs* cluster, int id, int /*rank*/, int position)
+void ClusterZone::create_links_for_node(ClusterCreationArgs* cluster, int id, int /*rank*/, unsigned int position)
 {
   std::string link_id = cluster->id + "_link_" + std::to_string(id);
 
index 9fe5cba..376747e 100644 (file)
@@ -73,7 +73,7 @@ public:
   void getGraph(xbt_graph_t graph, std::map<std::string, xbt_node_t>* nodes,
                 std::map<std::string, xbt_edge_t>* edges) override;
 
-  virtual void create_links_for_node(ClusterCreationArgs* cluster, int id, int rank, int position);
+  virtual void create_links_for_node(ClusterCreationArgs* cluster, int id, int rank, unsigned int position);
   virtual void parse_specific_arguments(ClusterCreationArgs* cluster)
   {
     /* this routing method does not require any specific argument */
@@ -83,9 +83,9 @@ public:
   /* The pair is {linkUp, linkDown} */
   std::unordered_map<unsigned int, std::pair<surf::LinkImpl*, surf::LinkImpl*>> privateLinks_;
 
-  int nodePosition(int id) { return id * linkCountPerNode_; }
-  int nodePositionWithLoopback(int id) { return nodePosition(id) + (hasLoopback_ ? 1 : 0); }
-  int nodePositionWithLimiter(int id) { return nodePositionWithLoopback(id) + (hasLimiter_ ? 1 : 0); }
+  unsigned int nodePosition(int id) { return id * linkCountPerNode_; }
+  unsigned int nodePositionWithLoopback(int id) { return nodePosition(id) + (hasLoopback_ ? 1 : 0); }
+  unsigned int nodePositionWithLimiter(int id) { return nodePositionWithLoopback(id) + (hasLimiter_ ? 1 : 0); }
 
   surf::LinkImpl* backbone_      = nullptr;
   void* loopback_                = nullptr;
index 1a684e7..c9d1636 100644 (file)
@@ -31,7 +31,7 @@ TorusZone::TorusZone(NetZone* father, std::string name) : ClusterZone(father, na
 {
 }
 
-void TorusZone::create_links_for_node(ClusterCreationArgs* cluster, int id, int rank, int position)
+void TorusZone::create_links_for_node(ClusterCreationArgs* cluster, int id, int rank, unsigned int position)
 {
   /* Create all links that exist in the torus. Each rank creates @a dimensions-1 links */
   int dim_product = 1; // Needed to calculate the next neighbor_id
index 56d4c70..0cdad3d 100644 (file)
@@ -21,7 +21,7 @@ namespace routing {
 class XBT_PRIVATE TorusZone : public ClusterZone {
 public:
   explicit TorusZone(NetZone* father, std::string name);
-  void create_links_for_node(ClusterCreationArgs* cluster, int id, int rank, int position) override;
+  void create_links_for_node(ClusterCreationArgs* cluster, int id, int rank, unsigned int position) override;
   void getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg_t into, double* latency) override;
   void parse_specific_arguments(ClusterCreationArgs* cluster) override;