X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b8df87e176f27b25534f27d7e240defa32ca35bc..026c5a576fbea1da8f6290f4435d5424ce0efe8b:/src/plugins/file_system/s4u_FileSystem.cpp diff --git a/src/plugins/file_system/s4u_FileSystem.cpp b/src/plugins/file_system/s4u_FileSystem.cpp index 6f3d43a6ac..968e885979 100644 --- a/src/plugins/file_system/s4u_FileSystem.cpp +++ b/src/plugins/file_system/s4u_FileSystem.cpp @@ -23,18 +23,18 @@ namespace s4u { simgrid::xbt::Extension FileSystemStorageExt::EXTENSION_ID; simgrid::xbt::Extension FileDescriptorHostExt::EXTENSION_ID; -File::File(std::string fullpath, void* userdata) : File(fullpath, Host::current(), userdata){}; +File::File(std::string fullpath, void* userdata) : File(std::move(fullpath), Host::current(), userdata){}; -File::File(std::string fullpath, sg_host_t host, void* userdata) : fullpath_(fullpath), userdata_(userdata) +File::File(std::string fullpath, sg_host_t host, void* userdata) : fullpath_(std::move(fullpath)), userdata_(userdata) { // this cannot fail because we get a xbt_die if the mountpoint does not exist Storage* st = nullptr; size_t longest_prefix_length = 0; - XBT_DEBUG("Search for storage name for '%s' on '%s'", fullpath.c_str(), host->get_cname()); + XBT_DEBUG("Search for storage name for '%s' on '%s'", fullpath_.c_str(), host->get_cname()); for (auto const& mnt : host->get_mounted_storages()) { XBT_DEBUG("See '%s'", mnt.first.c_str()); - mount_point_ = fullpath.substr(0, mnt.first.length()); + mount_point_ = fullpath_.substr(0, mnt.first.length()); if (mount_point_ == mnt.first && mnt.first.length() > longest_prefix_length) { /* The current mount name is found in the full path and is bigger than the previous*/ @@ -42,11 +42,11 @@ File::File(std::string fullpath, sg_host_t host, void* userdata) : fullpath_(ful st = mnt.second; } } - if (longest_prefix_length > 0) { /* Mount point found, split fullpath into mount_name and path+filename*/ - mount_point_ = fullpath.substr(0, longest_prefix_length); - path_ = fullpath.substr(longest_prefix_length, fullpath.length()); + if (longest_prefix_length > 0) { /* Mount point found, split fullpath_ into mount_name and path+filename*/ + mount_point_ = fullpath_.substr(0, longest_prefix_length); + path_ = fullpath_.substr(longest_prefix_length, fullpath_.length()); } else - xbt_die("Can't find mount point for '%s' on '%s'", fullpath.c_str(), host->get_cname()); + xbt_die("Can't find mount point for '%s' on '%s'", fullpath_.c_str(), host->get_cname()); local_storage_ = st; @@ -102,7 +102,7 @@ sg_size_t File::read(sg_size_t size) sg_size_t read_size = local_storage_->read(std::min(size, size_ - current_position_)); current_position_ += read_size; - if (strcmp(host->get_cname(), Host::current()->get_cname())) { + if (host->get_name() != Host::current()->get_name()) { /* the file is hosted on a remote host, initiate a communication between src and dest hosts for data transfer */ XBT_DEBUG("File is on %s remote host, initiate data transfer of %llu bytes.", host->get_cname(), read_size); std::vector m_host_list = {Host::current(), host}; @@ -128,7 +128,7 @@ sg_size_t File::write(sg_size_t size) /* Find the host where the file is physically located (remote or local)*/ Host* host = local_storage_->get_host(); - if (strcmp(host->get_cname(), Host::current()->get_cname())) { + if (host->get_name() != Host::current()->get_name()) { /* the file is hosted on a remote host, initiate a communication between src and dest hosts for data transfer */ XBT_DEBUG("File is on %s remote host, initiate data transfer of %llu bytes.", host->get_cname(), size); std::vector m_host_list = {Host::current(), host}; @@ -190,7 +190,7 @@ sg_size_t File::tell() return current_position_; } -void File::move(std::string fullpath) +void File::move(const 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())) { @@ -297,7 +297,7 @@ FileSystemStorageExt::~FileSystemStorageExt() delete content_; } -std::map* FileSystemStorageExt::parse_content(std::string filename) +std::map* FileSystemStorageExt::parse_content(const std::string& filename) { if (filename.empty()) return nullptr;