X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f477f475e8bd79141d881a044c59e56a37c1eda..c8b6d6839f2cd40cdb9b86c52c5bdacd2b271166:/include/simgrid/platf_generator.h diff --git a/include/simgrid/platf_generator.h b/include/simgrid/platf_generator.h index 13c32debe8..767fe6e6da 100644 --- a/include/simgrid/platf_generator.h +++ b/include/simgrid/platf_generator.h @@ -19,8 +19,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 +53,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 +72,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);