Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Rename gras_config to internal_config.
[simgrid.git] / src / surf / storage_private.h
index 63e9d2c..c62f265 100644 (file)
 
 typedef struct s_storage_type {
   char *model;
-  xbt_dict_t content;
+  char *content;
   char *type_id;
   xbt_dict_t properties;
+  unsigned long size;
 } s_storage_type_t, *storage_type_t;
 
 typedef struct s_mount {
@@ -20,19 +21,15 @@ typedef struct s_mount {
   char *name;
 } s_mount_t, *mount_t;
 
-typedef struct s_content {
-  char *user_rights;
-  char *user;
-  char *group;
-  char *date;
-  char *time;
-  size_t size;
-} s_content_t, *content_t;
-
+typedef struct surf_stat { /* file status structure */
+  s_file_stat_t stat;
+  /* possible additionnal fields (e.g., popularity, last access time to know whether the file is in cache, ...) */
+} s_surf_stat_t;
 
 typedef struct surf_file {
   char *name;
-  content_t content;
+  surf_stat_t content;
+  const char* storage;
 } s_surf_file_t;
 
 typedef struct storage {
@@ -40,12 +37,21 @@ typedef struct storage {
   e_surf_resource_state_t state_current;        /*< STORAGE current state (ON or OFF) */
   lmm_constraint_t constraint;          /* Constraint for maximum bandwidth from connexion */
   lmm_constraint_t constraint_write;    /* Constraint for maximum write bandwidth*/
-  lmm_constraint_t constraint_read;    /* Constraint for maximum write bandwidth*/
+  lmm_constraint_t constraint_read;     /* Constraint for maximum write bandwidth*/
+  xbt_dict_t content; /* char * -> s_surf_stat_t */
+  unsigned long size;
+  unsigned long used_size;
+  xbt_dynar_t write_actions;
 } s_storage_t, *storage_t;
 
+typedef enum {
+  READ=0, WRITE, STAT, OPEN, CLOSE, UNLINK, LS
+} e_surf_action_storage_type_t;
+
 typedef struct surf_action_storage {
   s_surf_action_lmm_t generic_lmm_action;
-  int index_heap;
+  e_surf_action_storage_type_t type;
+  void *storage;
 } s_surf_action_storage_t, *surf_action_storage_t;
 
 #endif /* STORAGE_PRIVATE_H_ */