X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e3fd04d9bd31fdb473e914c7084f3866fcf314b0..e99273780a983ac4a6fafbfbe91e7fdfb954d35c:/src/s4u/s4u_file.cpp diff --git a/src/s4u/s4u_file.cpp b/src/s4u/s4u_file.cpp index a81e922acb..f66b6812d7 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; } @@ -165,6 +168,7 @@ int File::unlink() FileSystemStorageExt::FileSystemStorageExt(simgrid::s4u::Storage* ptr) { content_ = parseContent(ptr->getImpl()->content_name); + size_ = ptr->getImpl()->size_; } FileSystemStorageExt::~FileSystemStorageExt() @@ -230,7 +234,7 @@ void sg_storage_file_system_init() sg_size_t sg_storage_get_size_free(sg_storage_t st) { - return st->getImpl()->getSize() - st->extension()->getUsedSize(); + return st->extension()->getSize() - st->extension()->getUsedSize(); } sg_size_t sg_storage_get_size_used(sg_storage_t st) @@ -240,7 +244,7 @@ sg_size_t sg_storage_get_size_used(sg_storage_t st) sg_size_t sg_storage_get_size(sg_storage_t st) { - return st->getImpl()->getSize(); + return st->extension()->getSize(); } SG_END_DECL()