From 14696475e1a6145501ae0f9d6104a82ab2ffa64d Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Thu, 30 Mar 2017 12:15:59 +0200 Subject: [PATCH] cast once for all at surf level and not in the APIs --- include/simgrid/forward.h | 1 + src/include/surf/surf.h | 8 ++++++-- src/msg/msg_io.cpp | 3 +-- src/s4u/s4u_storage.cpp | 3 +-- 4 files changed, 9 insertions(+), 6 deletions(-) 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() -- 2.20.1