#include <boost/algorithm/string/join.hpp>
#include <boost/algorithm/string/split.hpp>
#include <fstream>
+#include <memory>
#include <numeric>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_file, s4u, "S4U files");
}
// assign a file descriptor id to the newly opened File
- FileDescriptorHostExt* ext = host->extension<simgrid::s4u::FileDescriptorHostExt>();
+ auto* ext = host->extension<simgrid::s4u::FileDescriptorHostExt>();
if (ext->file_descriptor_table == nullptr) {
- ext->file_descriptor_table.reset(new std::vector<int>(sg_storage_max_file_descriptors));
+ ext->file_descriptor_table = std::make_unique<std::vector<int>>(sg_storage_max_file_descriptors);
std::iota(ext->file_descriptor_table->rbegin(), ext->file_descriptor_table->rend(), 0); // Fill with ..., 1, 0.
}
xbt_assert(not ext->file_descriptor_table->empty(), "Too much files are opened! Some have to be closed.");
}
}
-int File::remote_copy(sg_host_t host, const char* fullpath)
+int File::remote_copy(sg_host_t host, const std::string& fullpath)
{
/* Find the host where the file is physically located and read it */
Host* src_host = nullptr;
/* Mount point found, retrieve the host the storage is attached to */
dst_host = storage_dest->get_host();
} else {
- XBT_WARN("Can't find mount point for '%s' on destination host '%s'", fullpath, host->get_cname());
+ XBT_WARN("Can't find mount point for '%s' on destination host '%s'", fullpath.c_str(), host->get_cname());
return -1;
}
}
}
if (dst_disk == nullptr) {
- XBT_WARN("Can't find mount point for '%s' on destination host '%s'", fullpath, host->get_cname());
+ XBT_WARN("Can't find mount point for '%s' on destination host '%s'", fullpath.c_str(), host->get_cname());
return -1;
}
}
return 0;
}
-int File::remote_move(sg_host_t host, const char* fullpath)
+int File::remote_move(sg_host_t host, const std::string& fullpath)
{
int res = remote_copy(host, fullpath);
unlink();