Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
have disk size in the extension too
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 29 Nov 2017 12:31:47 +0000 (13:31 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 29 Nov 2017 12:31:47 +0000 (13:31 +0100)
include/simgrid/s4u/File.hpp
src/s4u/s4u_file.cpp
src/surf/StorageImpl.hpp

index e821cc1..2bdd632 100644 (file)
@@ -80,12 +80,14 @@ public:
   ~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
index b5dba90..f66b681 100644 (file)
@@ -168,6 +168,7 @@ int File::unlink()
 FileSystemStorageExt::FileSystemStorageExt(simgrid::s4u::Storage* ptr)
 {
   content_ = parseContent(ptr->getImpl()->content_name);
+  size_    = ptr->getImpl()->size_;
 }
 
 FileSystemStorageExt::~FileSystemStorageExt()
@@ -233,7 +234,7 @@ void sg_storage_file_system_init()
 
 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)
@@ -243,7 +244,7 @@ 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()
index d83cd62..17036c1 100644 (file)
@@ -115,7 +115,6 @@ public:
    * @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; }
@@ -124,11 +123,10 @@ public:
   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.