Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Change name()/cname() to getName()/getCname() in surf::FileImpl.
[simgrid.git] / src / surf / FileImpl.hpp
index eea45fc..94337fe 100644 (file)
@@ -15,35 +15,25 @@ namespace surf {
 
 class FileImpl {
 public:
-  FileImpl(const char* path, const char* mount, sg_size_t size) : path_(path), mount_point_(mount), size_(size) {}
+  FileImpl(sg_storage_t st, std::string path, std::string mount);
   ~FileImpl() = default;
 
-  std::string name() { return path_; }
-  const char* cname() { return path_.c_str(); }
+  const std::string& getName() const { return path_; }
+  const char* getCname() const { return path_.c_str(); }
   const char* mount() { return mount_point_.c_str(); }
   sg_size_t size() { return size_; }
   void setSize(sg_size_t size) { size_ = size; }
   void setPosition(sg_size_t size) { current_position_ = size; }
   void incrPosition(sg_size_t incr) { current_position_ += incr; }
   sg_size_t tell() { return current_position_; }
-  int seek(sg_offset_t offset, int origin)
-  {
-    switch (origin) {
-      case SEEK_SET:
-        current_position_ = offset;
-        return 0;
-      case SEEK_CUR:
-        current_position_ += offset;
-        return 0;
-      case SEEK_END:
-        current_position_ = size_ + offset;
-        return 0;
-      default:
-        return -1;
-    }
-  }
+  int seek(sg_offset_t offset, int origin);
+  int unlink();
+  void move(std::string fullpath);
+  Action* read(sg_size_t size);
+  Action* write(sg_size_t size);
 
 private:
+  StorageImpl* location_;
   std::string path_;
   std::string mount_point_;
   sg_size_t size_;