Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
implement CommTestTransition
[simgrid.git] / src / mc / api / TransitionComm.hpp
index 3e83dca..0d1264b 100644 (file)
@@ -15,8 +15,9 @@
 namespace simgrid {
 namespace mc {
 
-class CommSendTransition;
 class CommRecvTransition;
+class CommSendTransition;
+class CommTestTransition;
 
 class CommWaitTransition : public Transition {
   bool timeout_;
@@ -27,14 +28,31 @@ class CommWaitTransition : public Transition {
   void* src_buff_;
   void* dst_buff_;
   size_t size_;
-  friend CommSendTransition;
   friend CommRecvTransition;
+  friend CommSendTransition;
+  friend CommTestTransition;
 
 public:
   CommWaitTransition(aid_t issuer, int times_considered, char* buffer);
   std::string to_string(bool verbose) const override;
   bool depends(const Transition* other) const override;
 };
+class CommTestTransition : public Transition {
+  void* comm_;
+  aid_t sender_;
+  aid_t receiver_;
+  unsigned mbox_;
+  void* src_buff_;
+  void* dst_buff_;
+  size_t size_;
+  friend CommSendTransition;
+  friend CommRecvTransition;
+
+public:
+  CommTestTransition(aid_t issuer, int times_considered, char* buffer);
+  std::string to_string(bool verbose) const override;
+  bool depends(const Transition* other) const override;
+};
 
 class CommRecvTransition : public Transition {
   unsigned mbox_;