From ec31f7ae384c8ca691918c417387b0990585e719 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Wed, 29 Nov 2017 13:23:30 +0100 Subject: [PATCH] have getContent in the plugin too --- include/simgrid/s4u/Storage.hpp | 1 - src/msg/msg_io.cpp | 2 +- src/s4u/s4u_file.cpp | 15 +++++++++------ src/s4u/s4u_storage.cpp | 6 ------ .../storage_client_server.cpp | 2 +- 5 files changed, 11 insertions(+), 15 deletions(-) diff --git a/include/simgrid/s4u/Storage.hpp b/include/simgrid/s4u/Storage.hpp index 9b1fe85d12..f313e494a2 100644 --- a/include/simgrid/s4u/Storage.hpp +++ b/include/simgrid/s4u/Storage.hpp @@ -43,7 +43,6 @@ public: std::map* getProperties(); const char* getProperty(std::string key); void setProperty(std::string, std::string value); - std::map* getContent(); void setUserdata(void* data) { userdata_ = data; } void* getUserdata() { return userdata_; } diff --git a/src/msg/msg_io.cpp b/src/msg/msg_io.cpp index 9484c56b78..ce8c940790 100644 --- a/src/msg/msg_io.cpp +++ b/src/msg/msg_io.cpp @@ -457,7 +457,7 @@ void *MSG_storage_get_data(msg_storage_t storage) */ xbt_dict_t MSG_storage_get_content(msg_storage_t storage) { - std::map* content = storage->getContent(); + std::map* content = storage->extension()->getContent(); // Note: ::operator delete is ok here (no destructor called) since the dict elements are of POD type sg_size_t. xbt_dict_t content_as_dict = xbt_dict_new_homogeneous(::operator delete); diff --git a/src/s4u/s4u_file.cpp b/src/s4u/s4u_file.cpp index a81e922acb..b5dba9050b 100644 --- a/src/s4u/s4u_file.cpp +++ b/src/s4u/s4u_file.cpp @@ -51,7 +51,7 @@ File::File(std::string fullpath, sg_host_t host, void* userdata) : fullpath_(ful localStorage = st; XBT_DEBUG("\tOpen file '%s'", path_.c_str()); - std::map* content = localStorage->getContent(); + std::map* content = localStorage->extension()->getContent(); // if file does not exist create an empty file auto sz = content->find(path_); if (sz != content->end()) { @@ -86,9 +86,10 @@ sg_size_t File::write(sg_size_t size) current_position_ += write_size; size_ = current_position_; + std::map* content = localStorage->extension()->getContent(); - localStorage->getContent()->erase(path_); - localStorage->getContent()->insert({path_, size_}); + content->erase(path_); + content->insert({path_, size_}); return write_size; } @@ -129,7 +130,7 @@ void File::move(std::string fullpath) { /* Check if the new full path is on the same mount point */ if (not strncmp(mount_point_.c_str(), fullpath.c_str(), mount_point_.length())) { - std::map* content = localStorage->getContent(); + std::map* content = localStorage->extension()->getContent(); auto sz = content->find(path_); if (sz != content->end()) { // src file exists sg_size_t new_size = sz->second; @@ -148,7 +149,9 @@ void File::move(std::string fullpath) int File::unlink() { /* Check if the file is on local storage */ - if (localStorage->getContent()->find(path_) == localStorage->getContent()->end()) { + std::map* content = localStorage->extension()->getContent(); + + if (content->find(path_) == content->end()) { XBT_WARN("File %s is not on disk %s. Impossible to unlink", path_.c_str(), localStorage->getCname()); return -1; } else { @@ -156,7 +159,7 @@ int File::unlink() localStorage->extension()->decrUsedSize(size_); // Remove the file from storage - localStorage->getContent()->erase(fullpath_); + content->erase(fullpath_); return 0; } diff --git a/src/s4u/s4u_storage.cpp b/src/s4u/s4u_storage.cpp index 96f9733a83..4d06ae3120 100644 --- a/src/s4u/s4u_storage.cpp +++ b/src/s4u/s4u_storage.cpp @@ -71,12 +71,6 @@ void Storage::setProperty(std::string key, std::string value) simgrid::simix::kernelImmediate([this, key, value] { this->pimpl_->setProperty(key, value); }); } -std::map* Storage::getContent() -{ - FileSystemStorageExt* file_system = extension(); - return file_system->getContent(); -} - sg_size_t Storage::read(sg_size_t size) { return simcall_storage_read(pimpl_, size); diff --git a/teshsuite/s4u/storage_client_server/storage_client_server.cpp b/teshsuite/s4u/storage_client_server/storage_client_server.cpp index 3e0169b071..1158fde147 100644 --- a/teshsuite/s4u/storage_client_server/storage_client_server.cpp +++ b/teshsuite/s4u/storage_client_server/storage_client_server.cpp @@ -58,7 +58,7 @@ static void hsm_put(const std::string& remote_host, const std::string& src, cons static void display_storage_content(simgrid::s4u::Storage* storage) { XBT_INFO("Print the content of the storage element: %s", storage->getCname()); - std::map* content = storage->getContent(); + std::map* content = storage->extension()->getContent(); if (not content->empty()) { for (auto const& entry : *content) XBT_INFO("\t%s size: %llu bytes", entry.first.c_str(), entry.second); -- 2.20.1