Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Prefer using "try_emplace" (sonar, c++17).
[simgrid.git] / src / plugins / file_system / s4u_FileSystem.cpp
index 502d053..98acd59 100644 (file)
@@ -104,12 +104,7 @@ File::File(const std::string& fullpath, const_sg_host_t host, void* userdata) :
   });
 }
 
-File::~File()
-{
-  std::vector<int>* desc_table =
-      Host::current()->extension<simgrid::s4u::FileDescriptorHostExt>()->file_descriptor_table.get();
-  kernel::actor::simcall_answered([this, desc_table] { desc_table->push_back(this->desc_id); });
-}
+File::~File() = default;
 
 File* File::open(const std::string& fullpath, void* userdata)
 {
@@ -121,6 +116,14 @@ File* File::open(const std::string& fullpath, const_sg_host_t host, void* userda
   return new File(fullpath, host, userdata);
 }
 
+void File::close()
+{
+  std::vector<int>* desc_table =
+      Host::current()->extension<simgrid::s4u::FileDescriptorHostExt>()->file_descriptor_table.get();
+  kernel::actor::simcall_answered([this, desc_table] { desc_table->push_back(this->desc_id); });
+  delete this;
+}
+
 void File::dump() const
 {
   XBT_INFO("File Descriptor information:\n"
@@ -383,6 +386,11 @@ std::map<std::string, sg_size_t, std::less<>>* FileSystemDiskExt::parse_content(
   return parse_content;
 }
 
+void FileSystemDiskExt::add_remote_mount(Host* host, const std::string& mount_point)
+{
+  remote_mount_points_.try_emplace(host, mount_point);
+}
+
 void FileSystemDiskExt::decr_used_size(sg_size_t size)
 {
   simgrid::kernel::actor::simcall_answered([this, size] { used_size_ -= size; });