Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Definition of a new class to represent the routing in fat trees
[simgrid.git] / src / surf / surf_routing_cluster_fat_tree.hpp
1 /* Copyright (c) 2014. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #include "surf_routing_cluster.hpp"
8
9 #ifndef SURF_ROUTING_CLUSTER_FAT_TREE_HPP_
10 #define SURF_ROUTING_CLUSTER_FAT_TREE_HPP_
11
12
13
14 class FatTreeLink;
15 class FatTreeNode;
16
17 class AsClusterFatTree : public AsCluster {
18 public:
19   AsClusterFatTree();
20   virtual void getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_platf_route_cbarg_t into, double *latency);
21   virtual void create_links();
22   void parse_specific_arguments(sg_platf_cluster_cbarg_t cluster);
23
24 protected:
25   //description of a PGFT (TODO : better doc)
26   unsigned int levels;
27   std::vector<int> lowerLevelNodesNumber;
28   std::vector<int> upperLevelNodesNumber;
29   std::vector<int> lowerLevelPortsNumber;
30   
31   std::vector<FatTreeNode> nodes;
32 };
33
34 class FatTreeLink {
35 public:
36 };
37 class FatTreeNode {
38   int id;
39   std::string name;
40 };
41   
42 #endif