Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
address a todo
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 4 Jul 2017 10:07:14 +0000 (12:07 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 4 Jul 2017 10:07:14 +0000 (12:07 +0200)
include/simgrid/s4u/File.hpp
src/msg/msg_io.cpp
src/s4u/s4u_file.cpp
src/surf/FileImpl.hpp

index 189c703..e3b644b 100644 (file)
@@ -52,7 +52,9 @@ public:
   sg_size_t size();
 
   /** Sets the file head to the given position. */
-  void seek(sg_size_t pos);
+  void seek(sg_offset_t pos);
+  void seek(sg_offset_t pos, int origin);
+
   /** Retrieves the current file position */
   sg_size_t tell();
 
index a37a312..031d2dd 100644 (file)
@@ -233,7 +233,7 @@ sg_size_t MSG_file_get_size(msg_file_t fd)
  */
 msg_error_t MSG_file_seek(msg_file_t fd, sg_offset_t offset, int origin)
 {
-  fd->seek(offset); // TODO re-add origin
+  fd->seek(offset, origin);
   return MSG_OK;
 }
 
index 5eaf55c..25595a9 100644 (file)
@@ -73,11 +73,16 @@ sg_size_t File::size()
   return simgrid::simix::kernelImmediate([this] { return pimpl_->size(); });
 }
 
-void File::seek(sg_size_t pos)
+void File::seek(sg_offset_t pos)
 {
   simgrid::simix::kernelImmediate([this, pos] { pimpl_->seek(pos, SEEK_SET); });
 }
 
+void File::seek(sg_offset_t pos, int origin)
+{
+  simgrid::simix::kernelImmediate([this, pos, origin] { pimpl_->seek(pos, origin); });
+}
+
 sg_size_t File::tell()
 {
   return simgrid::simix::kernelImmediate([this] { return pimpl_->tell(); });
index b50fa8f..eea45fc 100644 (file)
@@ -47,7 +47,7 @@ private:
   std::string path_;
   std::string mount_point_;
   sg_size_t size_;
-  sg_size_t current_position_ = 0;
+  sg_size_t current_position_ = SEEK_SET;
 };
 }
 }