Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Define Actor::on_exit() taking a std::function.
[simgrid.git] / src / s4u / s4u_Actor.cpp
index 18339ed..bd5b149 100644 (file)
@@ -79,6 +79,11 @@ void Actor::on_exit(int_f_pvoid_pvoid_t fun, void* data)
   simgrid::simix::simcall([this, fun, data] { SIMIX_process_on_exit(pimpl_, fun, data); });
 }
 
+void Actor::on_exit(std::function<void(int, void*)> fun, void* data)
+{
+  simgrid::simix::simcall([this, fun, data] { SIMIX_process_on_exit(pimpl_, fun, data); });
+}
+
 /** @brief Moves the actor to another host
  *
  * If the actor is currently blocked on an execution activity, the activity is also
@@ -214,18 +219,18 @@ void Actor::kill_all()
 
 std::map<std::string, std::string>* Actor::get_properties()
 {
-  return simgrid::simix::simcall([this] { return this->pimpl_->getProperties(); });
+  return simgrid::simix::simcall([this] { return this->pimpl_->get_properties(); });
 }
 
 /** Retrieve the property value (or nullptr if not set) */
 const char* Actor::get_property(const char* key)
 {
-  return simgrid::simix::simcall([this, key] { return pimpl_->getProperty(key); });
+  return simgrid::simix::simcall([this, key] { return pimpl_->get_property(key); });
 }
 
 void Actor::set_property(const char* key, const char* value)
 {
-  simgrid::simix::simcall([this, key, value] { pimpl_->setProperty(key, value); });
+  simgrid::simix::simcall([this, key, value] { pimpl_->set_property(key, value); });
 }
 
 Actor* Actor::restart()
@@ -371,6 +376,11 @@ void on_exit(int_f_pvoid_pvoid_t fun, void* data)
   SIMIX_process_self()->iface()->on_exit(fun, data);
 }
 
+void on_exit(std::function<void(int, void*)> fun, void* data)
+{
+  SIMIX_process_self()->iface()->on_exit(fun, data);
+}
+
 /** @brief Moves the current actor to another host
  *
  * @see simgrid::s4u::Actor::migrate() for more information