#ifndef SIMGRID_S4U_FILE_HPP
#define SIMGRID_S4U_FILE_HPP
-#include <boost/unordered_map.hpp>
-#include <vector>
-
#include <xbt/base.h>
+
#include <simgrid/simix.h>
namespace simgrid {
namespace s4u {
-class Actor;
class Storage;
/** @brief A simulated file
*
* Used to simulate the time it takes to access to a file, but does not really store any information.
*
- * They are located on @link{simgrid::s4u::Storage}, that are accessed from a given @link{simgrid::s4u::Host} through mountpoints.
+ * They are located on @ref simgrid::s4u::Storage that are accessed from a given @ref simgrid::s4u::Host through mountpoints.
* For now, you cannot change the mountpoints programatically, and must declare them from your platform file.
*/
XBT_PUBLIC_CLASS File {
public:
File(const char *fullpath, void* userdata);
~File();
-private:
- smx_file_t p_inferior;
- const char *p_path;
-public:
/** Retrieves the path to the file */
- const char *path() { return p_path;}
-public:
+ const char *path() { return path_;}
+
/** 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.
+ * FIXME: reading from a remotely mounted disk is not implemented yet.
+ * Any storage is considered as local, and no network communication ever occur.
*/
sg_size_t read(sg_size_t size);
/** Simulates a write action. Returns the size of data actually written.
*
- * FIXME: reading from a remotely mounted disk is not implemented yet. Any storage is considered as local, and no network communication ever occur.
+ * FIXME: reading from a remotely mounted disk is not implemented yet.
+ * Any storage is considered as local, and no network communication ever occur.
*/
sg_size_t write(sg_size_t size);
/** Allows to store user data on that host */
- void set_userdata(void *data) {p_userdata = data;}
+ void setUserdata(void *data) {userdata_ = data;}
/** Retrieves the previously stored data */
- void* userdata() {return p_userdata;}
-private:
- void *p_userdata=NULL;
+ void* userdata() {return userdata_;}
-public:
/** Retrieve the datasize */
sg_size_t size();
XBT_PUBLIC(msg_error_t) MSG_file_rmove(msg_file_t fd, msg_host_t host, const char* fullpath);
*/
+private:
+ smx_file_t pimpl_ = nullptr;
+ const char *path_ = nullptr;
+ void *userdata_ = nullptr;
};
}} // namespace simgrid::s4u