X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7ef49c428ab0209965a09a36ab28b59789aaa4b5..fada53aa725e58a781895225b190f44961cb04e2:/include/simgrid/s4u/File.hpp diff --git a/include/simgrid/s4u/File.hpp b/include/simgrid/s4u/File.hpp index 5c3dc743e9..70249e3c55 100644 --- a/include/simgrid/s4u/File.hpp +++ b/include/simgrid/s4u/File.hpp @@ -25,23 +25,18 @@ namespace s4u { XBT_PUBLIC_CLASS File { public: - File(const char* fullpath, void* userdata); - File(const char* fullpath, sg_host_t host, void* userdata); - ~File(); + File(std::string fullpath, void* userdata); + File(std::string fullpath, sg_host_t host, void* userdata); + ~File() = default; /** Retrieves the path to the file */ - const char* getPath() { return path_; } + const char* getPath() { return fullpath_.c_str(); } - /** Simulates a read action. Returns the size of data actually read - * - * FIXME: reading from a remotely mounted disk is not implemented yet. - * Any storage is considered as local, and no network communication ever occur. - */ + /** Simulates a local read action. Returns the size of data actually read */ sg_size_t read(sg_size_t size); /** Simulates a write action. Returns the size of data actually written. */ sg_size_t write(sg_size_t size); - sg_size_t write(sg_size_t size, sg_host_t host); /** Allows to store user data on that host */ void setUserdata(void* data) { userdata_ = data; } @@ -58,30 +53,22 @@ public: /** Retrieves the current file position */ sg_size_t tell(); - /** Rename a file - * - * WARNING: It is forbidden to move the file to another mount point */ - void move(const char* fullpath); + /** Rename a file. WARNING: It is forbidden to move the file to another mount point */ + void move(std::string fullpath); /** Remove a file from disk */ int unlink(); - int unlink(sg_host_t host); - - /* FIXME: add these to the S4U API: - XBT_PUBLIC(const char *) MSG_file_get_name(msg_file_t file); - XBT_PUBLIC(msg_error_t) MSG_file_rcopy(msg_file_t fd, msg_host_t host, const char* fullpath); - XBT_PUBLIC(msg_error_t) MSG_file_rmove(msg_file_t fd, msg_host_t host, const char* fullpath); - */ - const char* storage_type; - const char* storageId; - std::string mount_point; + int desc_id = 0; + Storage* localStorage; + std::string mount_point_; private: - surf_file_t pimpl_ = nullptr; - const char* path_ = nullptr; - void* userdata_ = nullptr; - sg_host_t host_ = nullptr; + sg_size_t size_; + std::string path_; + std::string fullpath_; + sg_size_t current_position_ = SEEK_SET; + void* userdata_ = nullptr; }; } } // namespace simgrid::s4u