Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Introduce on_???_cb functions to shield the signals
[simgrid.git] / include / simgrid / s4u / Activity.hpp
index e5aca02..3235775 100644 (file)
@@ -95,13 +95,17 @@ protected:
 
   static std::set<Activity*>* vetoed_activities_;
 
-public:
-  /*! Signal fired each time that the activity fails to start because of a veto (e.g., unsolved dependency or no
-   * resource assigned) */
+private:
   static xbt::signal<void(Activity&)> on_veto;
-  /*! Signal fired when theactivity completes  (either normally, cancelled or failed) */
   static xbt::signal<void(Activity&)> on_completion;
 
+public:
+  /*! Add a callback fired each time that the activity fails to start because of a veto (e.g., unsolved dependency or no
+   * resource assigned) */
+  static void on_veto_cb(const std::function<void(Activity&)>& cb) { on_veto.connect(cb); }
+  /*! Add a callback fired when theactivity completes (either normally, cancelled or failed) */
+  static void on_completion_cb(const std::function<void(Activity&)> cb) { on_completion.connect(cb); }
+
   void vetoable_start()
   {
     state_ = State::STARTING;