Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Clean callbacks for the host parsing.
[simgrid.git] / src / include / surf / surfxml_parse_values.h
index 18ac4ac..70cbc24 100644 (file)
@@ -1,25 +1,26 @@
-/*
- * surfxml_parse_values.h
- *
- *  Created on: 24 oct. 2011
- *      Author: navarrop
- */
+/* Copyright (c) 2011. 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. */
 
 #ifndef SURFXML_PARSE_VALUES_H_
 #define SURFXML_PARSE_VALUES_H_
 
-struct V_peer {
+typedef struct s_surf_parsing_peer_arg *surf_parsing_peer_arg_t;
+typedef struct s_surf_parsing_peer_arg {
        char* V_peer_id;
-       double V_peer_power;
-       double V_peer_bw_in;
-       double V_peer_bw_out;
-       double V_peer_lat;
+       char* V_peer_power;
+       char* V_peer_bw_in;
+       char* V_peer_bw_out;
+       char* V_peer_lat;
        char* V_peer_coord;
-       tmgr_trace_t V_peer_availability_trace;
-       tmgr_trace_t V_peer_state_trace;
-};
+       char* V_peer_availability_trace;
+       char* V_peer_state_trace;
+} s_surf_parsing_peer_arg_t;
 
-struct V_link {
+typedef struct s_surf_parsing_link_arg *surf_parsing_link_arg_t;
+typedef struct s_surf_parsing_link_arg {
        char* V_link_id;
        double V_link_bandwidth;
        tmgr_trace_t V_link_bandwidth_file;
@@ -28,44 +29,62 @@ struct V_link {
        e_surf_resource_state_t V_link_state;
        tmgr_trace_t V_link_state_file;
        int V_link_sharing_policy;
-};
+       int V_policy_initial_link;
+} s_surf_parsing_link_arg_t;
 
-struct V_cluster {
+typedef struct s_surf_parsing_cluster_arg *surf_parsing_cluster_arg_t;
+typedef struct s_surf_parsing_cluster_arg {
        char* V_cluster_id;
        char* V_cluster_prefix;
        char* V_cluster_suffix;
        char* V_cluster_radical;
-       double V_cluster_power;
-       int V_cluster_core;
-       double V_cluster_bw;
-       double V_cluster_lat;
-       double V_cluster_bb_bw;
-       double V_cluster_bb_lat;
-       char * V_cluster_router_id;
+       double S_cluster_power;
+       int S_cluster_core;
+       double S_cluster_bw;
+       double S_cluster_lat;
+       double S_cluster_bb_bw;
+       double S_cluster_bb_lat;
+       char* S_cluster_router_id;
        int V_cluster_sharing_policy;
        int V_cluster_bb_sharing_policy;
-};
+       char* V_cluster_availability_file;
+       char* V_cluster_state_file;
+} s_surf_parsing_cluster_arg_t;
 
-struct V_router {
+typedef struct s_surf_parsing_router_arg *surf_parsing_router_arg_t;
+typedef struct s_surf_parsing_router_arg {
        char* V_router_id;
        char* V_router_coord;
-};
+} s_surf_parsing_router_arg_t;
+
+typedef struct s_surf_parsing_host_arg *surf_parsing_host_arg_t;
+typedef struct s_surf_parsing_host_arg {
+       char* V_host_id;                          //id
+       double V_host_power_peak;                     //power
+       int V_host_core;                          //core
+       double V_host_power_scale;                      //availability
+       tmgr_trace_t V_host_power_trace;                  //availability file
+       e_surf_resource_state_t V_host_state_initial;           //state
+       tmgr_trace_t V_host_state_trace;                  //state file
+       const char* V_host_coord;
+} s_surf_parsing_host_arg_t;
+
+typedef struct s_surf_parsing_link_up_down *surf_parsing_link_up_down_t;
+typedef struct s_surf_parsing_link_up_down {
+       void* link_up;
+       void* link_down;
+} s_surf_parsing_link_up_down_t;
+
+
+typedef void (*surf_parse_host_fct_t)(surf_parsing_host_arg_t);
+void surf_parse_host_add_cb(surf_parse_host_fct_t);
 
-struct V_host {
-       char* V_host_id;                                                                                                        //id
-       double V_host_power_peak;                                                                                       //power
-       int V_host_core;                                                                                                        //core
-       double V_host_power_scale;                                                                                      //availability
-       tmgr_trace_t V_host_power_trace;                                                                        //availability file
-       e_surf_resource_state_t V_host_state_initial;                                           //state
-       tmgr_trace_t V_host_state_trace;                                                                        //state file
-       char* V_host_coord;
-};
+extern surf_parsing_router_arg_t struct_router;
+extern surf_parsing_cluster_arg_t struct_cluster;
+extern surf_parsing_peer_arg_t struct_peer;
+extern surf_parsing_link_arg_t struct_lnk;
 
-struct V_host s_host;
-struct V_router s_router;
-struct V_cluster s_cluster;
-struct V_peer s_peer;
-struct V_link s_link;
+void surf_parse_host(surf_parsing_host_arg_t h);
+void surf_parse_link(void);
 
 #endif /* SURFXML_PARSE_VALUES_H_ */