Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Mark deprecated functions.
[simgrid.git] / include / simgrid / s4u / Actor.hpp
index 4db7d48..b8e4288 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef SIMGRID_S4U_ACTOR_HPP
 #define SIMGRID_S4U_ACTOR_HPP
 
+#include <functional>
 #include <simgrid/chrono.hpp>
 #include <xbt/Extendable.hpp>
 #include <xbt/functional.hpp>
@@ -156,6 +157,10 @@ public:
   static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_suspend;
   /** Signal to others that an actor has been resumed **/
   static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_resume;
+  /** Signal to others that an actor is sleeping **/
+  static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_sleep;
+  /** Signal to others that an actor wakes up for a sleep **/
+  static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_wake_up;
   /** Signal to others that an actor is going to migrated to another host**/
   static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_migration_start;
   /** Signal to others that an actor is has been migrated to another host **/
@@ -232,7 +237,7 @@ public:
   /** Add a function to the list of "on_exit" functions for the current actor. The on_exit functions are the functions
    * executed when your actor is killed. You should use them to free the data used by your actor.
    */
-  void on_exit(int_f_pvoid_pvoid_t fun, void* data);
+  void on_exit(std::function<void(int, void*)> fun, void* data);
 
   /** Sets the time at which that actor should be killed */
   void set_kill_time(double time);
@@ -311,9 +316,11 @@ public:
   {
     set_auto_restart(a);
   }
+  XBT_ATTRIB_DEPRECATED_v323("Please use a std::function<void(int, void*)> for first parameter.") void on_exit(
+      int_f_pvoid_pvoid_t fun, void* data);
   XBT_ATTRIB_DEPRECATED_v323("Please use Actor::on_exit()") void onExit(int_f_pvoid_pvoid_t fun, void* data)
   {
-    on_exit(fun, data);
+    on_exit([fun](int a, void* b) { fun((void*)(intptr_t)a, b); }, data);
   }
   XBT_ATTRIB_DEPRECATED_v323("Please use Actor::set_kill_time()") void setKillTime(double time) { set_kill_time(time); }
   XBT_ATTRIB_DEPRECATED_v323("Please use Actor::get_kill_time()") double getKillTime() { return get_kill_time(); }
@@ -403,7 +410,9 @@ XBT_PUBLIC bool is_suspended();
 XBT_PUBLIC void kill();
 
 /** @brief Add a function to the list of "on_exit" functions. */
-XBT_PUBLIC void on_exit(int_f_pvoid_pvoid_t fun, void* data);
+XBT_ATTRIB_DEPRECATED_v323("Please use std::function<void(int, void*)> for first parameter.") XBT_PUBLIC
+    void on_exit(int_f_pvoid_pvoid_t fun, void* data);
+XBT_PUBLIC void on_exit(std::function<void(int, void*)> fun, void* data);
 
 /** @brief Migrate the actor to a new host. */
 XBT_PUBLIC void migrate(Host* new_host);