Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
make s4u::File extendable
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Sun, 3 Nov 2019 13:05:04 +0000 (14:05 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Sun, 3 Nov 2019 13:05:04 +0000 (14:05 +0100)
this way it doesn't define its own user data accessors which become
3.29-deprecated.

examples/s4u/io-file-system/s4u-io-file-system.cpp
include/simgrid/plugins/file_system.h
src/plugins/file_system/s4u_FileSystem.cpp

index 4c91e69..6a74e1b 100644 (file)
@@ -56,8 +56,8 @@ public:
     file->move(newpath);
 
     // Test attaching some user data to the file
-    file->set_userdata(new std::string("777"));
-    std::string* file_data = static_cast<std::string*>(file->get_userdata());
+    file->set_data(new std::string("777"));
+    std::string* file_data = static_cast<std::string*>(file->get_data());
     XBT_INFO("User data attached to the file: %s", file_data->c_str());
     delete file_data;
 
index a0b6fae..179ab9f 100644 (file)
@@ -95,7 +95,7 @@ namespace s4u {
  * mountpoints.
  * For now, you cannot change the mountpoints programmatically, and must declare them from your platform file.
  */
-class XBT_PUBLIC File {
+class XBT_PUBLIC File : public xbt::Extendable<File> {
 public:
   File(const std::string& fullpath, void* userdata);
   File(const std::string& fullpath, sg_host_t host, void* userdata);
@@ -113,9 +113,9 @@ public:
   sg_size_t write(sg_size_t size, int write_inside=0);
 
   /** Allows to store user data on that host */
-  void set_userdata(void* data) { userdata_ = data; }
+  XBT_ATTRIB_DEPRECATED_v329("Please use set_data()") void set_userdata(void* data) { set_data(data); }
   /** Retrieves the previously stored data */
-  void* get_userdata() { return userdata_; }
+  XBT_ATTRIB_DEPRECATED_v329("Please use get_data()") void* get_userdata() { return get_data(); }
 
   sg_size_t size();
   void seek(sg_offset_t pos);             /** Sets the file head to the given position. */
@@ -140,7 +140,6 @@ private:
   std::string path_;
   std::string fullpath_;
   sg_size_t current_position_ = SEEK_SET;
-  void* userdata_             = nullptr;
 };
 
 class XBT_PUBLIC FileSystemDiskExt {
index d39845b..669bf1d 100644 (file)
@@ -28,8 +28,9 @@ simgrid::xbt::Extension<Host, FileDescriptorHostExt> FileDescriptorHostExt::EXTE
 
 File::File(const std::string& fullpath, void* userdata) : File(fullpath, Host::current(), userdata){};
 
-File::File(const std::string& fullpath, sg_host_t host, void* userdata) : fullpath_(fullpath), userdata_(userdata)
+File::File(const std::string& fullpath, sg_host_t host, void* userdata) : fullpath_(fullpath)
 {
+  this->set_data(userdata);
   // this cannot fail because we get a xbt_die if the mountpoint does not exist
   if (not host->get_mounted_storages().empty()) {
     Storage* st                  = nullptr;
@@ -640,12 +641,12 @@ void sg_file_dump(sg_file_t fd)
 
 void* sg_file_get_data(sg_file_t fd)
 {
-  return fd->get_userdata();
+  return fd->get_data();
 }
 
 void sg_file_set_data(sg_file_t fd, void* data)
 {
-  fd->set_userdata(data);
+  fd->set_data(data);
 }
 
 /**