localStorage = st;
XBT_DEBUG("\tOpen file '%s'", path_.c_str());
- std::map<std::string, sg_size_t>* content = localStorage->getContent();
+ std::map<std::string, sg_size_t>* content = localStorage->extension<FileSystemStorageExt>()->getContent();
// if file does not exist create an empty file
auto sz = content->find(path_);
if (sz != content->end()) {
current_position_ += write_size;
size_ = current_position_;
+ std::map<std::string, sg_size_t>* content = localStorage->extension<FileSystemStorageExt>()->getContent();
- localStorage->getContent()->erase(path_);
- localStorage->getContent()->insert({path_, size_});
+ content->erase(path_);
+ content->insert({path_, size_});
return write_size;
}
{
/* Check if the new full path is on the same mount point */
if (not strncmp(mount_point_.c_str(), fullpath.c_str(), mount_point_.length())) {
- std::map<std::string, sg_size_t>* content = localStorage->getContent();
+ std::map<std::string, sg_size_t>* content = localStorage->extension<FileSystemStorageExt>()->getContent();
auto sz = content->find(path_);
if (sz != content->end()) { // src file exists
sg_size_t new_size = sz->second;
int File::unlink()
{
/* Check if the file is on local storage */
- if (localStorage->getContent()->find(path_) == localStorage->getContent()->end()) {
+ std::map<std::string, sg_size_t>* content = localStorage->extension<FileSystemStorageExt>()->getContent();
+
+ if (content->find(path_) == content->end()) {
XBT_WARN("File %s is not on disk %s. Impossible to unlink", path_.c_str(), localStorage->getCname());
return -1;
} else {
localStorage->extension<FileSystemStorageExt>()->decrUsedSize(size_);
// Remove the file from storage
- localStorage->getContent()->erase(fullpath_);
+ content->erase(fullpath_);
return 0;
}
FileSystemStorageExt::FileSystemStorageExt(simgrid::s4u::Storage* ptr)
{
content_ = parseContent(ptr->getImpl()->content_name);
+ size_ = ptr->getImpl()->size_;
}
FileSystemStorageExt::~FileSystemStorageExt()
sg_size_t sg_storage_get_size_free(sg_storage_t st)
{
- return st->getImpl()->getSize() - st->extension<FileSystemStorageExt>()->getUsedSize();
+ return st->extension<FileSystemStorageExt>()->getSize() - st->extension<FileSystemStorageExt>()->getUsedSize();
}
sg_size_t sg_storage_get_size_used(sg_storage_t st)
sg_size_t sg_storage_get_size(sg_storage_t st)
{
- return st->getImpl()->getSize();
+ return st->extension<FileSystemStorageExt>()->getSize();
}
SG_END_DECL()