Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MC: move the reversible_race logic to the Transition class
[simgrid.git] / src / mc / transition / TransitionComm.hpp
index cf51c18..1e9d074 100644 (file)
@@ -25,19 +25,17 @@ class CommWaitTransition : public Transition {
   unsigned mbox_;
   aid_t sender_;
   aid_t receiver_;
-  uintptr_t sbuff_;
-  uintptr_t rbuff_;
-  size_t size_;
   friend CommRecvTransition;
   friend CommSendTransition;
   friend CommTestTransition;
 
 public:
   CommWaitTransition(aid_t issuer, int times_considered, bool timeout_, unsigned comm_, aid_t sender_, aid_t receiver_,
-                     unsigned mbox_, uintptr_t sbuff_, uintptr_t rbuff_, size_t size_);
+                     unsigned mbox_);
   CommWaitTransition(aid_t issuer, int times_considered, std::stringstream& stream);
   std::string to_string(bool verbose) const override;
   bool depends(const Transition* other) const override;
+  bool reversible_race(const Transition* other) const override;
 
   bool get_timeout() const { return timeout_; }
   /** ID of the corresponding Communication object in the application, or 0 if unknown */
@@ -48,30 +46,22 @@ public:
   aid_t get_receiver() const { return receiver_; }
   /** Mailbox ID */
   unsigned get_mailbox() const { return mbox_; }
-  /** Sender buffer */
-  uintptr_t get_sbuff() const { return sbuff_; }
-  /** Receiver buffer */
-  uintptr_t get_rbuff() const { return rbuff_; }
-  /** data size */
-  size_t get_size() const { return size_; }
 };
 class CommTestTransition : public Transition {
   unsigned comm_;
   unsigned mbox_;
   aid_t sender_;
   aid_t receiver_;
-  uintptr_t sbuff_;
-  uintptr_t rbuff_;
-  size_t size_;
   friend CommSendTransition;
   friend CommRecvTransition;
 
 public:
-  CommTestTransition(aid_t issuer, int times_considered, unsigned comm_, aid_t sender_, aid_t receiver_, unsigned mbox_,
-                     uintptr_t sbuff_, uintptr_t rbuff_, size_t size_);
+  CommTestTransition(aid_t issuer, int times_considered, unsigned comm_, aid_t sender_, aid_t receiver_,
+                     unsigned mbox_);
   CommTestTransition(aid_t issuer, int times_considered, std::stringstream& stream);
   std::string to_string(bool verbose) const override;
   bool depends(const Transition* other) const override;
+  bool reversible_race(const Transition* other) const override;
 
   /** ID of the corresponding Communication object in the application, or 0 if unknown */
   unsigned get_comm() const { return comm_; }
@@ -81,32 +71,24 @@ public:
   aid_t get_receiver() const { return receiver_; }
   /** Mailbox ID */
   unsigned get_mailbox() const { return mbox_; }
-  /** Sender buffer */
-  uintptr_t get_sbuff() const { return sbuff_; }
-  /** Receiver buffer */
-  uintptr_t get_rbuff() const { return rbuff_; }
-  /** data size */
-  size_t get_size() const { return size_; }
 };
 
 class CommRecvTransition : public Transition {
   unsigned comm_; /* ID of the CommImpl or 0 if not known */
   unsigned mbox_;
-  uintptr_t rbuff_;
   int tag_;
 
 public:
-  CommRecvTransition(aid_t issuer, int times_considered, unsigned comm_, unsigned mbox_, uintptr_t rbuff_, int tag_);
+  CommRecvTransition(aid_t issuer, int times_considered, unsigned comm_, unsigned mbox_, int tag_);
   CommRecvTransition(aid_t issuer, int times_considered, std::stringstream& stream);
   std::string to_string(bool verbose) const override;
   bool depends(const Transition* other) const override;
+  bool reversible_race(const Transition* other) const override;
 
   /** ID of the corresponding Communication object in the application (or 0 if unknown)*/
   unsigned get_comm() const { return comm_; }
   /** Mailbox ID */
   unsigned get_mailbox() const { return mbox_; }
-  /** Receiver buffer */
-  uintptr_t get_rbuff() const { return rbuff_; }
   /** If using SMPI, the tag */
   int get_tag() const { return tag_; }
 };
@@ -114,25 +96,19 @@ public:
 class CommSendTransition : public Transition {
   unsigned comm_;
   unsigned mbox_;
-  uintptr_t sbuff_;
-  size_t size_;
   int tag_;
 
 public:
-  CommSendTransition(aid_t issuer, int times_considered, unsigned comm_, unsigned mbox_, uintptr_t sbuff_, size_t size_,
-                     int tag_);
+  CommSendTransition(aid_t issuer, int times_considered, unsigned comm_, unsigned mbox_, int tag_);
   CommSendTransition(aid_t issuer, int times_considered, std::stringstream& stream);
   std::string to_string(bool verbose) const override;
   bool depends(const Transition* other) const override;
+  bool reversible_race(const Transition* other) const override;
 
   /** ID of the corresponding Communication object in the application, or 0 if unknown */
   unsigned get_comm() const { return comm_; }
   /** Mailbox ID */
   unsigned get_mailbox() const { return mbox_; }
-  /** Sender buffer */
-  uintptr_t get_sbuff() const { return sbuff_; }
-  /** data size */
-  size_t get_size() const { return size_; }
   /** If using SMPI, the tag */
   int get_tag() const { return tag_; }
 };