From: Frederic Suter Date: Sun, 3 Nov 2019 13:05:04 +0000 (+0100) Subject: make s4u::File extendable X-Git-Tag: v3.25~458 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/517f9e468ef336c78c2d8bc4dc36409e1e73be69 make s4u::File extendable this way it doesn't define its own user data accessors which become 3.29-deprecated. --- diff --git a/examples/s4u/io-file-system/s4u-io-file-system.cpp b/examples/s4u/io-file-system/s4u-io-file-system.cpp index 4c91e69c3c..6a74e1b282 100644 --- a/examples/s4u/io-file-system/s4u-io-file-system.cpp +++ b/examples/s4u/io-file-system/s4u-io-file-system.cpp @@ -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(file->get_userdata()); + file->set_data(new std::string("777")); + std::string* file_data = static_cast(file->get_data()); XBT_INFO("User data attached to the file: %s", file_data->c_str()); delete file_data; diff --git a/include/simgrid/plugins/file_system.h b/include/simgrid/plugins/file_system.h index a0b6fae5b1..179ab9f388 100644 --- a/include/simgrid/plugins/file_system.h +++ b/include/simgrid/plugins/file_system.h @@ -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 { 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 { diff --git a/src/plugins/file_system/s4u_FileSystem.cpp b/src/plugins/file_system/s4u_FileSystem.cpp index d39845b386..669bf1d706 100644 --- a/src/plugins/file_system/s4u_FileSystem.cpp +++ b/src/plugins/file_system/s4u_FileSystem.cpp @@ -28,8 +28,9 @@ simgrid::xbt::Extension 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); } /**