Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SIMIX_process_kill becomes ActorImpl::kill
[simgrid.git] / src / simix / ActorImpl.hpp
index babf410..35a9556 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -25,11 +25,11 @@ namespace actor {
 
 class ActorImpl : public simgrid::surf::PropertyHolder {
 public:
-  ActorImpl() : piface_(this) {}
+  ActorImpl(simgrid::xbt::string name, simgrid::s4u::Host* host);
   ~ActorImpl();
 
   void set_auto_restart(bool autorestart) { auto_restart_ = autorestart; }
-
+  void set_kill_time(double kill_time);
   boost::intrusive::list_member_hook<> host_process_list_hook; /* simgrid::simix::Host::process_list */
   boost::intrusive::list_member_hook<> smx_destroy_list_hook;  /* simix_global->process_to_destroy */
   boost::intrusive::list_member_hook<> smx_synchro_hook;       /* {mutex,cond,sem}->sleeping */
@@ -92,6 +92,11 @@ public:
 private:
   bool daemon_ = false;
 public:
+  static ActorImplPtr create(std::string name, simix::ActorCode code, void* data, s4u::Host* host,
+                             std::unordered_map<std::string, std::string>* properties, smx_actor_t parent_actor);
+  void exit();
+  void kill(smx_actor_t actor);
+
   void daemonize();
   bool is_daemon() { return daemon_; } /** Whether this actor has been daemonized */
   bool is_suspended() { return suspended_; }
@@ -103,6 +108,7 @@ public:
   void* get_user_data() { return userdata_; }
   /** Ask the actor to throw an exception right away */
   void throw_exception(std::exception_ptr e);
+  void set_host(sg_host_t dest);
 };
 
 class ProcessArg {
@@ -154,17 +160,11 @@ XBT_PUBLIC void create_maestro(std::function<void()> code);
 
 typedef simgrid::kernel::actor::ActorImpl* smx_actor_t;
 
-XBT_PRIVATE smx_actor_t SIMIX_process_create(std::string name, std::function<void()> code, void* data, sg_host_t host,
-                                             std::unordered_map<std::string, std::string>* properties,
-                                             smx_actor_t parent_process);
-
 XBT_PRIVATE void SIMIX_process_runall();
-XBT_PRIVATE void SIMIX_process_kill(smx_actor_t process, smx_actor_t issuer);
 XBT_PRIVATE void SIMIX_process_killall(smx_actor_t issuer);
 XBT_PRIVATE void SIMIX_process_cleanup(smx_actor_t arg);
 XBT_PRIVATE void SIMIX_process_empty_trash();
 XBT_PRIVATE void SIMIX_process_yield(smx_actor_t self);
-XBT_PRIVATE void SIMIX_process_change_host(smx_actor_t process, sg_host_t dest);
 
 extern void (*SMPI_switch_data_segment)(simgrid::s4u::ActorPtr actor);