#define SURF_ROUTING_CLUSTER_TORUS_HPP_
#include "src/kernel/routing/ClusterZone.hpp"
+#include <vector>
namespace simgrid {
namespace kernel {
namespace routing {
- class XBT_PRIVATE AsClusterTorus : public AsCluster {
- public:
- explicit AsClusterTorus(As* father, const char* name);
- ~AsClusterTorus() override;
- void create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position) override;
- void getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t into, double* latency) override;
- void parse_specific_arguments(sg_platf_cluster_cbarg_t cluster) override;
- private:
- xbt_dynar_t dimensions_ = nullptr;
- };
+/** @ingroup ROUTING_API
+ * @brief NetZone using a Torus topology
+ *
+ */
-}}}
+class XBT_PRIVATE TorusZone : public ClusterZone {
+public:
+ explicit TorusZone(NetZone* father, const char* name);
+ void create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position) override;
+ void getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg_t into, double* latency) override;
+ void parse_specific_arguments(sg_platf_cluster_cbarg_t cluster) override;
+
+private:
+ std::vector<unsigned int> dimensions_;
+};
+}
+}
+}
#endif