]> AND Public Git Repository - simgrid.git/blobdiff - src/kernel/actor/SimcallObserver.hpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
do not store name in s4u::Disk
[simgrid.git] / src / kernel / actor / SimcallObserver.hpp
index d386a30db199b326eb8757f08d448479b1492c41..78fce540940c3501e7fcc34aa913944adb284f8f 100644 (file)
@@ -138,6 +138,22 @@ public:
   double get_timeout() const { return timeout_; }
 };
 
+class ActivityWaitSimcall : public ResultingSimcall<bool> {
+  activity::ActivityImpl* const activity_;
+  const double timeout_;
+
+public:
+  ActivityWaitSimcall(smx_actor_t actor, activity::ActivityImpl* activity, double timeout)
+      : ResultingSimcall(actor, false), activity_(activity), timeout_(timeout)
+  {
+  }
+  bool is_visible() const override { return false; }
+  std::string to_string(int times_considered) const override { return SimcallObserver::to_string(times_considered); }
+  std::string dot_label() const override { return SimcallObserver::dot_label(); }
+  activity::ActivityImpl* get_activity() const { return activity_; }
+  double get_timeout() const { return timeout_; }
+};
+
 class ExecutionWaitanySimcall : public ResultingSimcall<int> {
   const std::vector<activity::ExecImpl*>& execs_;
   const double timeout_;
@@ -153,6 +169,22 @@ public:
   const std::vector<activity::ExecImpl*>& get_execs() const { return execs_; }
   double get_timeout() const { return timeout_; }
 };
+
+class IoWaitanySimcall : public ResultingSimcall<int> {
+  const std::vector<activity::IoImpl*>& ios_;
+  const double timeout_;
+
+public:
+  IoWaitanySimcall(smx_actor_t actor, const std::vector<activity::IoImpl*>& ios, double timeout)
+      : ResultingSimcall(actor, -1), ios_(ios), timeout_(timeout)
+  {
+  }
+  bool is_visible() const override { return false; }
+  std::string to_string(int times_considered) const override;
+  std::string dot_label() const override;
+  const std::vector<activity::IoImpl*>& get_ios() const { return ios_; }
+  double get_timeout() const { return timeout_; }
+};
 } // namespace actor
 } // namespace kernel
 } // namespace simgrid