Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
get rid of simdag tracing. was superficial anyway
[simgrid.git] / include / simgrid / platf_generator.h
index 13c32de..fbe912c 100644 (file)
@@ -1,7 +1,8 @@
 
 /* platf_generator.h - Public interface to the SimGrid platforms generator  */
 
-/* Copyright (c) 2004-2012. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2004-2014. The SimGrid Team.
+ * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -19,8 +20,25 @@ typedef enum {
   CLUSTER
 } e_platf_node_kind;
 
-typedef struct s_context_node_t *context_node_t;
-typedef struct s_context_edge_t *context_edge_t;
+typedef struct s_context_node_t {
+  unsigned long id;
+  double x, y;
+  int degree;
+  e_platf_node_kind kind;
+  int connect_checked;
+  union {
+    s_sg_platf_host_cbarg_t host_parameters;
+    s_sg_platf_cluster_cbarg_t cluster_parameters;
+    char* router_id;
+  };
+} s_context_node_t, *context_node_t;
+
+typedef struct s_context_edge_t {
+  unsigned long id;
+  double length;
+  int labeled;
+  s_sg_platf_link_cbarg_t link_parameters;
+} s_context_edge_t, *context_edge_t;
 
 typedef void (*platf_promoter_cb_t) (context_node_t);
 typedef void (*platf_labeler_cb_t) (context_edge_t);
@@ -36,6 +54,13 @@ XBT_PUBLIC(void) platf_graph_interconnect_ring(void);
 XBT_PUBLIC(void) platf_graph_interconnect_clique(void);
 XBT_PUBLIC(void) platf_graph_interconnect_uniform(double alpha);
 XBT_PUBLIC(void) platf_graph_interconnect_exponential(double alpha);
+XBT_PUBLIC(void) platf_graph_interconnect_zegura(double alpha, double beta, double r);
+XBT_PUBLIC(void) platf_graph_interconnect_waxman(double alpha, double beta);
+XBT_PUBLIC(void) platf_graph_interconnect_barabasi(void);
+
+XBT_PUBLIC(int) platf_graph_is_connected(void);
+
+XBT_PUBLIC(void) platf_graph_clear_links(void);
 
 XBT_PUBLIC(void) platf_graph_promote_to_host(context_node_t node, sg_platf_host_cbarg_t parameters);
 XBT_PUBLIC(void) platf_graph_promote_to_cluster(context_node_t node, sg_platf_cluster_cbarg_t parameters);
@@ -48,6 +73,8 @@ XBT_PUBLIC(void) platf_graph_labeler(platf_labeler_cb_t labeler_callback);
 XBT_PUBLIC(void) platf_do_promote(void);
 XBT_PUBLIC(void) platf_do_label(void);
 
+XBT_PUBLIC(void) platf_generate(void);
+
 // WARNING : Only for debbugging ; should be removed when platform
 // generation works correctly
 XBT_PUBLIC(xbt_graph_t) platf_graph_get(void);