Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Mark deprecated functions.
[simgrid.git] / include / simgrid / s4u / Actor.hpp
index 22a5199..b8e4288 100644 (file)
@@ -6,23 +6,12 @@
 #ifndef SIMGRID_S4U_ACTOR_HPP
 #define SIMGRID_S4U_ACTOR_HPP
 
 #ifndef SIMGRID_S4U_ACTOR_HPP
 #define SIMGRID_S4U_ACTOR_HPP
 
-#include <atomic>
-#include <chrono>
 #include <functional>
 #include <functional>
-#include <memory>
-#include <stdexcept>
-#include <string>
-#include <type_traits>
-#include <utility>
-#include <vector>
-
+#include <simgrid/chrono.hpp>
 #include <xbt/Extendable.hpp>
 #include <xbt/functional.hpp>
 #include <xbt/Extendable.hpp>
 #include <xbt/functional.hpp>
-#include <xbt/string.hpp>
 #include <xbt/signal.hpp>
 #include <xbt/signal.hpp>
-
-#include <simgrid/chrono.hpp>
-#include <simgrid/s4u/forward.hpp>
+#include <xbt/string.hpp>
 
 namespace simgrid {
 namespace s4u {
 
 namespace simgrid {
 namespace s4u {
@@ -164,6 +153,18 @@ public:
 
   /** Signal to others that a new actor has been created **/
   static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_creation;
 
   /** Signal to others that a new actor has been created **/
   static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_creation;
+  /** Signal to others that an actor has been suspended**/
+  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 **/
+  static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_migration_end;
   /** Signal indicating that the given actor is about to disappear */
   static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_destruction;
 
   /** Signal indicating that the given actor is about to disappear */
   static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_destruction;
 
@@ -236,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.
    */
   /** 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);
 
   /** Sets the time at which that actor should be killed */
   void set_kill_time(double time);
@@ -315,9 +316,11 @@ public:
   {
     set_auto_restart(a);
   }
   {
     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)
   {
   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(); }
   }
   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(); }
@@ -346,7 +349,7 @@ public:
  *  @brief Static methods working on the current actor (see @ref s4u::Actor) */
 namespace this_actor {
 
  *  @brief Static methods working on the current actor (see @ref s4u::Actor) */
 namespace this_actor {
 
-XBT_PUBLIC bool isMaestro();
+XBT_PUBLIC bool is_maestro();
 
 /** Block the actor sleeping for that amount of seconds (may throws hostFailure) */
 XBT_PUBLIC void sleep_for(double duration);
 
 /** Block the actor sleeping for that amount of seconds (may throws hostFailure) */
 XBT_PUBLIC void sleep_for(double duration);
@@ -379,21 +382,18 @@ XBT_PUBLIC ExecPtr exec_init(double flops_amounts);
 XBT_PUBLIC ExecPtr exec_async(double flops_amounts);
 
 /** @brief Returns the actor ID of the current actor). */
 XBT_PUBLIC ExecPtr exec_async(double flops_amounts);
 
 /** @brief Returns the actor ID of the current actor). */
-XBT_PUBLIC aid_t getPid();
+XBT_PUBLIC aid_t get_pid();
 
 /** @brief Returns the ancestor's actor ID of the current actor. */
 
 /** @brief Returns the ancestor's actor ID of the current actor. */
-XBT_PUBLIC aid_t getPpid();
+XBT_PUBLIC aid_t get_ppid();
 
 /** @brief Returns the name of the current actor. */
 XBT_PUBLIC std::string get_name();
 /** @brief Returns the name of the current actor as a C string. */
 XBT_PUBLIC const char* get_cname();
 
 
 /** @brief Returns the name of the current actor. */
 XBT_PUBLIC std::string get_name();
 /** @brief Returns the name of the current actor as a C string. */
 XBT_PUBLIC const char* get_cname();
 
-XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_name()") XBT_PUBLIC std::string getName();
-XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_cname()") XBT_PUBLIC const char* getCname();
-
 /** @brief Returns the name of the host on which the actor is running. */
 /** @brief Returns the name of the host on which the actor is running. */
-XBT_PUBLIC Host* getHost();
+XBT_PUBLIC Host* get_host();
 
 /** @brief Suspend the actor. */
 XBT_PUBLIC void suspend();
 
 /** @brief Suspend the actor. */
 XBT_PUBLIC void suspend();
@@ -404,16 +404,28 @@ XBT_PUBLIC void yield();
 /** @brief Resume the actor. */
 XBT_PUBLIC void resume();
 
 /** @brief Resume the actor. */
 XBT_PUBLIC void resume();
 
-XBT_PUBLIC bool isSuspended();
+XBT_PUBLIC bool is_suspended();
 
 /** @brief kill the actor. */
 XBT_PUBLIC void kill();
 
 /** @brief Add a function to the list of "on_exit" functions. */
 
 /** @brief kill the actor. */
 XBT_PUBLIC void kill();
 
 /** @brief Add a function to the list of "on_exit" functions. */
-XBT_PUBLIC void onExit(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);
 
 /** @brief Migrate the actor to a new host. */
 XBT_PUBLIC void migrate(Host* new_host);
+
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_name()") XBT_PUBLIC std::string getName();
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_cname()") XBT_PUBLIC const char* getCname();
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::is_maestro()") XBT_PUBLIC bool isMaestro();
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_pid()") XBT_PUBLIC aid_t getPid();
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_ppid()") XBT_PUBLIC aid_t getPpid();
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::get_host()") XBT_PUBLIC Host* getHost();
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::is_suspended()") XBT_PUBLIC bool isSuspended();
+XBT_ATTRIB_DEPRECATED_v323("Please use this_actor::on_exit()") XBT_PUBLIC
+    void onExit(int_f_pvoid_pvoid_t fun, void* data);
 }
 
 /** @} */
 }
 
 /** @} */