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] / src / s4u / s4u_actor.cpp
index 426b850..1c171d5 100644 (file)
@@ -52,6 +52,11 @@ void Actor::setAutoRestart(bool autorestart) {
   simcall_process_auto_restart_set(pimpl_,autorestart);
 }
 
+void Actor::migrate(Host* new_host)
+{
+  simcall_process_set_host(pimpl_, new_host);
+}
+
 s4u::Host* Actor::host()
 {
   return this->pimpl_->host;
@@ -77,6 +82,16 @@ int Actor::ppid()
   return this->pimpl_->ppid;
 }
 
+void Actor::suspend()
+{
+  simcall_process_suspend(pimpl_);
+}
+
+void Actor::resume()
+{
+  simcall_process_resume(pimpl_);
+}
+
 void Actor::setKillTime(double time) {
   simcall_process_set_kill_time(pimpl_,time);
 }
@@ -87,7 +102,7 @@ double Actor::killTime()
 }
 
 void Actor::kill(int pid) {
-  msg_process_t process = SIMIX_process_from_PID(pid);
+  smx_actor_t process = SIMIX_process_from_PID(pid);
   if(process != nullptr) {
     simcall_process_kill(process);
   } else {
@@ -150,7 +165,8 @@ void* recv(MailboxPtr chan) {
   return res;
 }
 
-void send(MailboxPtr chan, void *payload, size_t simulatedSize) {
+void send(MailboxPtr chan, void* payload, double simulatedSize)
+{
   Comm& c = Comm::send_init(chan);
   c.setRemains(simulatedSize);
   c.setSrcData(payload);
@@ -172,6 +188,31 @@ std::string name()
 {
   return SIMIX_process_self()->name;
 }
+
+Host* host()
+{
+  return SIMIX_process_self()->host;
+}
+
+void suspend()
+{
+  simcall_process_suspend(SIMIX_process_self());
+}
+
+void resume()
+{
+  simcall_process_resume(SIMIX_process_self());
+}
+
+void kill()
+{
+  simcall_process_kill(SIMIX_process_self());
+}
+
+void migrate(Host* new_host)
+{
+  simcall_process_set_host(SIMIX_process_self(), new_host);
+}
 }
 }
 }