Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git] / include / simgrid / s4u / Actor.hpp
index 8f332c8..2a77e8e 100644 (file)
@@ -19,6 +19,7 @@
 #include <xbt/Extendable.hpp>
 #include <xbt/functional.hpp>
 #include <xbt/string.hpp>
+#include <xbt/signal.hpp>
 
 #include <simgrid/chrono.hpp>
 #include <simgrid/s4u/forward.hpp>
@@ -162,6 +163,11 @@ public:
   /** Retrieve a reference to myself */
   static ActorPtr self();
 
+  /** Signal to others that a new actor has been created **/
+  static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> onCreation;
+  /** Signal indicating that the given actor is about to disappear */
+  static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> onDestruction;
+
   /** Create an actor using a function
    *
    *  If the actor is restarted, the actor has a fresh copy of the function.
@@ -198,6 +204,9 @@ public:
   /** This actor will be automatically terminated when the last non-daemon actor finishes **/
   void daemonize();
 
+  /** Returns whether or not this actor has been daemonized or not **/
+  bool isDaemon();
+
   /** Retrieves the name of that actor as a C++ string */
   const simgrid::xbt::string& getName() const;
   /** Retrieves the name of that actor as a C string */