~FileSystemStorageExt();
std::map<std::string, sg_size_t>* parseContent(std::string filename);
std::map<std::string, sg_size_t>* getContent() { return content_; }
+ sg_size_t getSize() { return size_; }
sg_size_t getUsedSize() { return usedSize_; }
void decrUsedSize(sg_size_t size) { usedSize_ -= size; }
void incrUsedSize(sg_size_t size) { usedSize_ += size; }
private:
std::map<std::string, sg_size_t>* content_;
sg_size_t usedSize_ = 0;
+ sg_size_t size_ = 0;
};
}
} // namespace simgrid::s4u
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()
* @return The StorageAction corresponding to the writing
*/
virtual StorageAction* write(sg_size_t size) = 0;
- virtual sg_size_t getSize() { return size_; }
virtual std::string getHost() { return attach_; }
static std::unordered_map<std::string, StorageImpl*>* storagesMap() { return StorageImpl::storages; }
lmm_constraint_t constraintRead_; /* Constraint for maximum write bandwidth*/
std::string typeId_;
- sg_size_t usedSize_ = 0;
- std::string content_name;
+ std::string content_name; // Only used at parsing time then goes to the FileSystemExtension
+ sg_size_t size_; // Only used at parsing time then goes to the FileSystemExtension
private:
- sg_size_t size_;
static std::unordered_map<std::string, StorageImpl*>* storages;
// Name of the host to which this storage is attached. Only used at platform parsing time, then the interface stores
// the Host directly.