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;
* 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);
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. */
std::string path_;
std::string fullpath_;
sg_size_t current_position_ = SEEK_SET;
- void* userdata_ = nullptr;
};
class XBT_PUBLIC FileSystemDiskExt {
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;
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);
}
/**