From: Frederic Suter Date: Thu, 30 Mar 2017 10:37:10 +0000 (+0200) Subject: Revert "Revert "cast once for all at surf level and not in the APIs"" X-Git-Tag: v3.16~413 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/f3249a61af03aef482d68997d15a1ef6e85503da Revert "Revert "cast once for all at surf level and not in the APIs"" This reverts commit fa900b346af7c55195fd90c3345cc4107c2afc6d. --- diff --git a/include/simgrid/forward.h b/include/simgrid/forward.h index 94f5465921..5081b05aea 100644 --- a/include/simgrid/forward.h +++ b/include/simgrid/forward.h @@ -35,6 +35,7 @@ namespace simgrid { class Cpu; class LinkImpl; class HostImpl; + class Storage; } namespace trace_mgr { class trace; diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 586a2ddf11..6cf5b49f67 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -52,6 +52,7 @@ typedef simgrid::surf::CpuModel surf_CpuModel; typedef simgrid::surf::Cpu surf_Cpu; typedef simgrid::surf::HostModel surf_HostModel; typedef simgrid::surf::NetworkModel surf_NetworkModel; +typedef simgrid::surf::Storage surf_Storage; typedef simgrid::surf::StorageModel surf_StorageModel; typedef simgrid::surf::Resource surf_Resource; typedef simgrid::surf::HostImpl surf_Host; @@ -64,6 +65,7 @@ typedef struct surf_CpuModel surf_CpuModel; typedef struct surf_Cpu surf_Cpu; typedef struct surf_HostModel surf_HostModel; typedef struct surf_NetworkModel surf_NetworkModel; +typedef struct surf_Storage surf_Storage; typedef struct surf_StorageModel surf_StorageModel; typedef struct surf_Resource surf_Resource; typedef struct surf_Host surf_Host; @@ -82,6 +84,7 @@ typedef surf_CpuModel *surf_cpu_model_t; typedef surf_HostModel *surf_host_model_t; typedef surf_NetworkModel *surf_network_model_t; typedef surf_StorageModel *surf_storage_model_t; +typedef surf_Storage* surf_storage_t; typedef xbt_dictelm_t surf_resource_t; @@ -114,8 +117,9 @@ XBT_PUBLIC(void) model_help(const char *category, s_surf_model_description_t * t /* Generic model object */ /***************************/ -static inline void *surf_storage_resource_priv(const void *storage){ - return (void*)xbt_lib_get_level((xbt_dictelm_t)storage, SURF_STORAGE_LEVEL); +static inline surf_storage_t surf_storage_resource_priv(const void* storage) +{ + return (surf_storage_t)xbt_lib_get_level((xbt_dictelm_t)storage, SURF_STORAGE_LEVEL); } static inline void *surf_storage_resource_by_name(const char *name){ diff --git a/src/msg/msg_io.cpp b/src/msg/msg_io.cpp index a013379644..3b06812710 100644 --- a/src/msg/msg_io.cpp +++ b/src/msg/msg_io.cpp @@ -587,8 +587,7 @@ void *MSG_storage_get_data(msg_storage_t storage) */ xbt_dict_t MSG_storage_get_content(msg_storage_t storage) { - std::map* content = - static_cast(surf_storage_resource_priv(storage))->getContent(); + std::map* content = surf_storage_resource_priv(storage)->getContent(); xbt_dict_t content_dict = xbt_dict_new_homogeneous(nullptr); for (auto entry : *content) { diff --git a/src/s4u/s4u_storage.cpp b/src/s4u/s4u_storage.cpp index e816d0d286..952ec8dec1 100644 --- a/src/s4u/s4u_storage.cpp +++ b/src/s4u/s4u_storage.cpp @@ -88,8 +88,7 @@ void Storage::setProperty(const char* key, char* value) std::map* Storage::content() { - return simgrid::simix::kernelImmediate( - [this] { return static_cast(surf_storage_resource_priv(this->pimpl_))->getContent(); }); + return simgrid::simix::kernelImmediate([this] { return surf_storage_resource_priv(this->pimpl_)->getContent(); }); } std::unordered_map* Storage::allStorages()