Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
sonar don't like comments ending with ';'
[simgrid.git] / src / kernel / activity / ExecImpl.hpp
index 8012e39..24f8467 100644 (file)
@@ -7,7 +7,7 @@
 #define SIMIX_SYNCHRO_EXEC_HPP
 
 #include "src/kernel/activity/ActivityImpl.hpp"
-#include "surf/surf.h"
+#include "surf/surf.hpp"
 
 namespace simgrid {
 namespace kernel {
@@ -18,17 +18,23 @@ XBT_PUBLIC_CLASS ExecImpl : public ActivityImpl
   ~ExecImpl() override;
 
 public:
-  ExecImpl(const char* name, sg_host_t host);
+  explicit ExecImpl(const char* name, sg_host_t host);
   void suspend() override;
   void resume() override;
   void post() override;
   double remains();
+  double remainingRatio();
+  void setBound(double bound);
+  virtual ActivityImpl* migrate(s4u::Host* to);
 
-  sg_host_t host_ =
-      nullptr; /* The host where the execution takes place. If nullptr, then this is a parallel exec (and only surf
-                  knows the hosts) */
-  surf_action_t surf_exec       = nullptr; /* The Surf execution action encapsulated */
+  /* The host where the execution takes place. nullptr means this is a parallel exec (and only surf knows the hosts) */
+  sg_host_t host_               = nullptr;
+  surf_action_t surfAction_     = nullptr; /* The Surf execution action encapsulated */
   surf::Action* timeoutDetector = nullptr;
+  static simgrid::xbt::signal<void(kernel::activity::ExecImplPtr)> onCreation;
+  static simgrid::xbt::signal<void(kernel::activity::ExecImplPtr)> onCompletion;
+  static simgrid::xbt::signal<void(simgrid::kernel::activity::ExecImplPtr, simgrid::s4u::Host*)> onMigration;
+
 };
 }
 }