X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9a825e163a82a3e3473094128cd1ceb1136534db..a73d204e173f35c0abb92b26e061929066b8b283:/include/simgrid/s4u/Actor.hpp diff --git a/include/simgrid/s4u/Actor.hpp b/include/simgrid/s4u/Actor.hpp index 141a49fd34..0eda16dc00 100644 --- a/include/simgrid/s4u/Actor.hpp +++ b/include/simgrid/s4u/Actor.hpp @@ -124,12 +124,14 @@ namespace s4u { /** @brief Simulation Agent */ class XBT_PUBLIC Actor : public xbt::Extendable { +#ifndef DOXYGEN friend Exec; friend Mailbox; friend kernel::actor::ActorImpl; friend kernel::activity::MailboxImpl; kernel::actor::ActorImpl* const pimpl_; +#endif explicit Actor(smx_actor_t pimpl) : pimpl_(pimpl) {} @@ -142,12 +144,13 @@ public: // ***** Reference count ***** friend XBT_PUBLIC void intrusive_ptr_add_ref(Actor * actor); friend XBT_PUBLIC void intrusive_ptr_release(Actor * actor); + int get_refcount(); // ***** Actor creation ***** /** Retrieve a reference to myself */ static Actor* self(); - /** Signal to others that a new actor has been created **/ + /** Fired when a new actor has been created **/ static xbt::signal on_creation; /** Signal to others that an actor has been suspended**/ static xbt::signal on_suspend; @@ -161,9 +164,15 @@ public: static xbt::signal on_migration_start; /** Signal to others that an actor is has been migrated to another host **/ static xbt::signal on_migration_end; - /** Signal indicating that an actor is about to disappear. - * This signal is fired for any dying actor, which is mostly useful when designing plugins and extensions. If you - * want to register to the termination of a given actor, use this_actor::on_exit() instead.*/ + /** Signal indicating that an actor terminated its code. + * The actor may continue to exist if it is still referenced in the simulation, but it's not active anymore. + * If you want to free extra data when the actor's destructor is called, use Actor::on_destruction. + * If you want to register to the termination of a given actor, use this_actor::on_exit() instead.*/ + static xbt::signal on_termination; + /** Signal indicating that an actor is about to disappear (its destructor was called). + * This signal is fired for any destructed actor, which is mostly useful when designing plugins and extensions. + * If you want to react to the end of the actor's code, use Actor::on_termination instead. + * If you want to register to the termination of a given actor, use this_actor::on_exit() instead.*/ static xbt::signal on_destruction; /** Create an actor from a std::function @@ -296,13 +305,6 @@ public: get_properties() const; // FIXME: do not export the map, but only the keys or something const char* get_property(const std::string& key) const; void set_property(const std::string& key, const std::string& value); - -#ifndef DOXYGEN - XBT_ATTRIB_DEPRECATED_v325("Please use Actor::on_exit(fun) instead") void on_exit( - const std::function& fun, void* data); - - XBT_ATTRIB_DEPRECATED_v325("Please use Actor::by_pid(pid).kill() instead") static void kill(aid_t pid); -#endif }; /** @ingroup s4u_api @@ -399,15 +401,6 @@ XBT_PUBLIC void parallel_execute(const std::vector& hosts, const std XBT_PUBLIC void parallel_execute(const std::vector& hosts, const std::vector& flops_amounts, const std::vector& bytes_amounts, double timeout); -#ifndef DOXYGEN -XBT_ATTRIB_DEPRECATED_v325("Please use std::vectors as parameters") XBT_PUBLIC - void parallel_execute(int host_nb, s4u::Host* const* host_list, const double* flops_amount, - const double* bytes_amount); -XBT_ATTRIB_DEPRECATED_v325("Please use std::vectors as parameters") XBT_PUBLIC - void parallel_execute(int host_nb, s4u::Host* const* host_list, const double* flops_amount, - const double* bytes_amount, double timeout); -#endif - XBT_PUBLIC ExecPtr exec_init(double flops_amounts); XBT_PUBLIC ExecPtr exec_init(const std::vector& hosts, const std::vector& flops_amounts, const std::vector& bytes_amounts); @@ -425,7 +418,7 @@ 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 host on which the curret actor is running. */ +/** @brief Returns the name of the host on which the current actor is running. */ XBT_PUBLIC Host* get_host(); /** @brief Suspend the current actor, that is blocked until resume()ed by another actor. */ @@ -460,14 +453,6 @@ XBT_PUBLIC void on_exit(const std::function& fun); XBT_PUBLIC void migrate(Host* new_host); /** @} */ - -#ifndef DOXYGEN -XBT_ATTRIB_DEPRECATED_v325("Please use std::function for first parameter.") XBT_PUBLIC - void on_exit(const std::function& fun, void* data); - -/** @deprecated See this_actor::exit() */ -XBT_ATTRIB_DEPRECATED_v324("Please use this_actor::exit()") XBT_PUBLIC void kill(); -#endif }