X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e683f4e829813790c25870ccf9d43a18b8296d2a..406f54970c00ca178fa918763d943027bd09e3ba:/src/include/surf/surf.h diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 7842c9e890..f5de0740f2 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 @@ -223,6 +234,8 @@ typedef struct surf_storage_model_extension_public { surf_action_t(*read) (void *storage, void* ptr, double 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, 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; @@ -256,6 +269,9 @@ typedef struct surf_workstation_model_extension_public { surf_action_t(*read) (void *workstation, void* ptr, size_t size, size_t nmemb, surf_file_t stream); 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, @@ -325,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; @@ -567,11 +587,6 @@ XBT_PUBLIC(void) surf_network_model_init_Vegas(void); XBT_PUBLIC_DATA(s_surf_model_description_t) surf_network_model_description[]; - - - - - /** \ingroup SURF_models * \brief The storage model */ @@ -583,12 +598,6 @@ XBT_PUBLIC(void) surf_storage_model_init_default(void); */ XBT_PUBLIC_DATA(s_surf_model_description_t) surf_storage_model_description[]; - - - - - - /** \ingroup SURF_models * \brief The workstation model * @@ -648,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 */ @@ -657,6 +673,11 @@ XBT_PUBLIC_DATA(xbt_dynar_t) model_list; /*** SURF Globals **************************/ /*******************************************/ XBT_PUBLIC_DATA(xbt_cfg_t) _surf_cfg_set; +XBT_PUBLIC(int) surf_cfg_get_int(const char* name); +XBT_PUBLIC(double) surf_cfg_get_double(const char* name); +XBT_PUBLIC(char*) surf_cfg_get_string(const char* name); +XBT_PUBLIC(void) surf_cfg_get_peer(const char *name, char **peer, int *port); +XBT_PUBLIC(xbt_dynar_t) surf_cfg_get_dynar(const char* name); /** \ingroup SURF_simulation * \brief Initialize SURF @@ -729,6 +750,8 @@ XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_latency; XBT_PUBLIC(double) get_cpu_power(const char *power); +XBT_PUBLIC(xbt_dict_t) get_as_router_properties(const char* name); + int surf_get_nthreads(void); void surf_set_nthreads(int nthreads);