Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
First step to take care of constraint into storage model
[simgrid.git] / src / include / surf / surf.h
index e3a6d1b..9ce016d 100644 (file)
@@ -29,7 +29,7 @@ typedef enum {
 } e_surf_network_element_type_t;
 
 XBT_PUBLIC(e_surf_network_element_type_t)
-  routing_get_network_element_type(const char *name);
+  routing_get_network_element_type(const charname);
 
 /** @Brief Specify that we use that action */
 XBT_PUBLIC(void) surf_action_ref(surf_action_t action);
@@ -99,6 +99,10 @@ typedef struct surf_action_lmm {
   s_surf_action_t generic_action;
   lmm_variable_t variable;
   int suspended;
+  s_xbt_swag_hookup_t action_list_hookup;
+  int index_heap;
+  double last_update;
+  enum heap_action_type hat;
 } s_surf_action_lmm_t, *surf_action_lmm_t;
 
 /** \brief Action states
@@ -180,10 +184,10 @@ typedef struct surf_cpu_model_extension_public {
       *  Public functions specific to the network model
       */
 typedef struct surf_network_model_extension_public {
-  surf_action_t(*communicate) (const char *src_name,
-                               const char *dst_name,
+  surf_action_t(*communicate) (void* src,
+                               void* dst,
                                double size, double rate);
-  xbt_dynar_t(*get_route) (const char *src_name, const char *dst_name); //FIXME: kill field? That is done by the routing nowadays
+  xbt_dynar_t(*get_route) (void *src, void *dst); //FIXME: kill field? That is done by the routing nowadays
   double (*get_link_bandwidth) (const void *link);
   double (*get_link_latency) (const void *link);
   int (*link_shared) (const void *link);
@@ -220,8 +224,7 @@ typedef struct surf_storage_model_extension_public {
   surf_action_t(*read) (void *storage, void* ptr, size_t size, size_t nmemb, surf_file_t stream);
   surf_action_t(*write) (void *storage, const void* ptr, size_t size, size_t nmemb, surf_file_t stream);
   surf_action_t(*stat) (void *storage, int fd, void* buf);
-  void* (*create_resource) (const char* id, const char* model,const char* type_id,
-      const char* content, xbt_dict_t storage_properties);
+  void* (*create_resource) (const char* id, const char* model,const char* type_id);
 } s_surf_model_extension_storage_t;
 
      /** \brief Workstation model extension public
@@ -351,16 +354,25 @@ typedef struct surf_resource {
  */
 typedef struct s_storage_type {
   char *model;
-  char *content;
+  xbt_dict_t content;
   char *type_id;
   xbt_dict_t properties;
 } s_storage_type_t, *storage_type_t;
 
 typedef struct s_mount {
-  char *id;
+  void *id;
   char *name;
 } s_mount_t, *mount_t;
 
+typedef struct s_content {
+  char *user_rights;
+  char *user;
+  char *group;
+  char *date;
+  char *time;
+  int size;
+} s_content_t, *content_t;
+
 /**
  * Resource which have a metric handled by a maxmin system
  */
@@ -513,7 +525,7 @@ XBT_PUBLIC(void) surf_network_model_init_bypass(const char *id,
  *
  *  \see surf_workstation_model_init_GTNETS()
  */
-XBT_PUBLIC(void) surf_network_model_init_GbTNETS(void);
+XBT_PUBLIC(void) surf_network_model_init_GTNETS(void);
 #endif
 
 #ifdef HAVE_NS3
@@ -527,19 +539,6 @@ XBT_PUBLIC(void) surf_network_model_init_GbTNETS(void);
  *  \see surf_workstation_model_init_NS3()
  */
 XBT_PUBLIC(void) surf_network_model_init_NS3(void);
-
-XBT_PUBLIC(void) parse_ns3_add_host(void);
-XBT_PUBLIC(void) parse_ns3_add_router(void);
-XBT_PUBLIC(void) parse_ns3_add_link(void);
-XBT_PUBLIC(void) parse_ns3_add_AS(void);
-XBT_PUBLIC(void) parse_ns3_add_route(void);
-XBT_PUBLIC(void) parse_ns3_add_ASroute(void);
-XBT_PUBLIC(void) parse_ns3_add_cluster(void);
-XBT_PUBLIC(void) parse_ns3_end_platform(void);
-XBT_PUBLIC(void) create_ns3_topology(void);
-XBT_PUBLIC(double) ns3_get_link_latency(const void *link);
-XBT_PUBLIC(double) ns3_get_link_bandwidth(const void *link);
-
 #endif
 
 /** \brief Initializes the platform with the network model Reno