Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Dijkstra: kill obscure dead dupplicated code
[simgrid.git] / src / mc / AddressSpace.hpp
index 2dea315..d0c92b5 100644 (file)
@@ -13,7 +13,7 @@
 
 #include <xbt/misc.h>
 
-#include "mc_forward.hpp"
+#include "src/mc/mc_forward.hpp"
 
 namespace simgrid {
 namespace mc {
@@ -50,12 +50,12 @@ public:
   {
     return remote_ptr<T>(address_ - n * sizeof(T));
   }
-  remote_ptr<T>& operator+=(std::uint64_t n) const
+  remote_ptr<T>& operator+=(std::uint64_t n)
   {
     address_ += n * sizeof(T);
     return *this;
   }
-  remote_ptr<T>& operator-=(std::uint64_t n) const
+  remote_ptr<T>& operator-=(std::uint64_t n)
   {
     address_ -= n * sizeof(T);
     return *this;
@@ -127,6 +127,8 @@ const int ProcessIndexDisabled = -2;
 const int ProcessIndexAny = 0;
 
 class AddressSpace {
+private:
+  Process* process_;
 public:
   enum ReadMode {
     Normal,
@@ -135,7 +137,10 @@ public:
      */
     Lazy
   };
+  AddressSpace(Process* process) : process_(process) {}
   virtual ~AddressSpace();
+
+  simgrid::mc::Process* process() const { return process_; }
   virtual const void* read_bytes(void* buffer, std::size_t size,
     remote_ptr<void> address, int process_index = ProcessIndexAny,
     ReadMode mode = Normal) const = 0;