X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c215f8139368ac8b172ad664c05d4f2b4211a961..c24da98fc757fe34eb3fdb29b01c80d77313a80a:/src/include/surf/surf.h diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 66345cc99b..2790a3da34 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -97,6 +97,7 @@ typedef struct surf_action { #endif surf_file_t file; /**< surf_file_t for storage model */ s_file_stat_t stat; /**< surf_file_t for storage model */ + xbt_dict_t ls_dict; } s_surf_action_t; typedef struct surf_action_lmm { @@ -152,6 +153,16 @@ typedef struct surf_action_state { typedef struct s_routing_platf s_routing_platf_t, *routing_platf_t; XBT_PUBLIC_DATA(routing_platf_t) routing_platf; +/******************************************* + * TUTORIAL: New model + * New model extension public + * Public functions specific to a New model. + */ +typedef struct surf_new_model_extension_public { + surf_action_t(*fct) (); + void* (*create_resource) (); +} s_surf_model_extension_new_model_t; +/*******************************************/ /** \ingroup SURF_models * \brief Private data available on all models @@ -224,6 +235,7 @@ typedef struct surf_storage_model_extension_public { 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, surf_file_t stream); surf_action_t(*unlink) (void *storage, surf_file_t stream); + surf_action_t(*ls) (void *storage, const char *path); void* (*create_resource) (const char* id, const char* model, const char* type_id, const char *content); } s_surf_model_extension_storage_t; @@ -258,6 +270,8 @@ typedef struct surf_workstation_model_extension_public { surf_action_t(*write) (void *workstation, const void* ptr, size_t size, size_t nmemb, surf_file_t stream); surf_action_t(*stat) (void *workstation, surf_file_t stream); surf_action_t(*unlink) (void *workstation, surf_file_t stream); + surf_action_t(*ls) (void *workstation, const char* mount, const char *path); + int (*link_shared) (const void *link); xbt_dict_t(*get_properties) (const void *resource); void* (*link_create_resource) (const char *name, @@ -327,6 +341,10 @@ typedef struct surf_model { s_surf_model_extension_network_t network; s_surf_model_extension_storage_t storage; s_surf_model_extension_workstation_t workstation; + /*******************************************/ + /* TUTORIAL: New model */ + s_surf_model_extension_new_model_t new_model; + /*******************************************/ } extension; } s_surf_model_t; @@ -639,6 +657,13 @@ XBT_PUBLIC(void) surf_workstation_model_init_ptask_L07(void); XBT_PUBLIC_DATA(s_surf_model_description_t) surf_workstation_model_description[]; +/******************************************* + * TUTORIAL: New model + */ +XBT_PUBLIC(void) surf_new_model_init_default(void); +XBT_PUBLIC_DATA(s_surf_model_description_t) surf_new_model_description[]; +/*******************************************/ + /** \ingroup SURF_models * \brief List of initialized models */