Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix function get_route
[simgrid.git] / src / include / surf / surf.h
index f397c95..893a87e 100644 (file)
@@ -64,7 +64,7 @@ typedef struct surf_resource_public {
   void *(*name_service) (const char *name);
   const char *(*get_resource_name) (void *resource_id);
 
-   e_surf_action_state_t(*action_get_state) (surf_action_t action);
+  e_surf_action_state_t(*action_get_state) (surf_action_t action);
   void (*action_use) (surf_action_t action);
   int  (*action_free) (surf_action_t action);
   void (*action_cancel) (surf_action_t action);
@@ -89,8 +89,6 @@ typedef struct surf_resource {
 /* Implementations of resource object */
 /**************************************/
 /* Timer resource */
-typedef struct surf_timer_resource_extension_private
-*surf_timer_resource_extension_private_t;
 typedef struct surf_timer_resource_extension_public {
   void (*set) (double date, void *function, void *arg);
   int (*get)  (void **function, void **arg);
@@ -111,13 +109,12 @@ typedef enum {
   SURF_CPU_OFF = 0             /* Running      */
 } e_surf_cpu_state_t;
 
-typedef struct surf_cpu_resource_extension_private
-*surf_cpu_resource_extension_private_t;
 typedef struct surf_cpu_resource_extension_public {
   surf_action_t(*execute) (void *cpu, double size);
   surf_action_t(*sleep) (void *cpu, double duration);
   e_surf_cpu_state_t(*get_state) (void *cpu);
   double (*get_speed) (void *cpu, double load);
+  double (*get_available_speed) (void *cpu);
 } s_surf_cpu_resource_extension_public_t,
     *surf_cpu_resource_extension_public_t;
 
@@ -130,11 +127,10 @@ extern surf_cpu_resource_t surf_cpu_resource;
 void surf_cpu_resource_init_Cas01(const char *filename);
 
 /* Network resource */
-typedef struct surf_network_resource_extension_private
-*surf_network_resource_extension_private_t;
 typedef struct surf_network_resource_extension_public {
   surf_action_t(*communicate) (void *src, void *dst, double size,
                               double max_rate);
+  const void** (*get_route) (void *src, void *dst);
 } s_surf_network_resource_extension_public_t,
     *surf_network_resource_extension_public_t;
 
@@ -146,15 +142,15 @@ typedef struct surf_network_resource {
 
 extern surf_network_resource_t surf_network_resource;
 void surf_network_resource_init_CM02(const char *filename);
+extern xbt_dict_t network_link_set;
 
 /* Workstation resource */
-typedef struct surf_workstation_resource_extension_private
-*surf_workstation_resource_extension_private_t;
 typedef struct surf_workstation_resource_extension_public {
   surf_action_t(*execute) (void *workstation, double size);
   surf_action_t(*sleep) (void *workstation, double duration);
   e_surf_cpu_state_t(*get_state) (void *workstation);
   double (*get_speed) (void *workstation, double load);
+  double (*get_available_speed) (void *workstation);
   surf_action_t(*communicate) (void *workstation_src,
                               void *workstation_dst, double size,
                               double max_rate);
@@ -164,6 +160,7 @@ typedef struct surf_workstation_resource_extension_public {
                                         double *communication_amount,
                                         double amount,
                                         double rate);
+  const void** (*get_route) (void *src, void *dst);
 } s_surf_workstation_resource_extension_public_t,
     *surf_workstation_resource_extension_public_t;