X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cf108868b4eeed4d0d9d343bc68557d7814e18c0..b03205c0dfeddc45fea20541c8cc3d217dfada23:/examples/s4u/basic/s4u_basic.cpp diff --git a/examples/s4u/basic/s4u_basic.cpp b/examples/s4u/basic/s4u_basic.cpp index 0a7c018ad0..e4329fe4b9 100644 --- a/examples/s4u/basic/s4u_basic.cpp +++ b/examples/s4u/basic/s4u_basic.cpp @@ -9,33 +9,24 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "a sample log category"); -class Worker : simgrid::s4u::Actor { +class Worker { public: - Worker(const char*procname, simgrid::s4u::Host *host,int argc, char **argv) - : simgrid::s4u::Actor(procname,host,argc,argv){} - - int main(int argc, char **argv) { + void operator()() { XBT_INFO("Hello s4u, I'm ready to serve"); - - char *msg = (char*)recv(*simgrid::s4u::Mailbox::byName("worker")); + char *msg = static_cast(simgrid::s4u::this_actor::recv( + *simgrid::s4u::Mailbox::byName("worker"))); XBT_INFO("I received '%s'",msg); XBT_INFO("I'm done. See you."); - return 1; } }; -class Master : simgrid::s4u::Actor { +class Master { public: - Master(const char*procname, simgrid::s4u::Host *host,int argc, char **argv) - : Actor(procname,host,argc,argv){} - - int main(int argc, char **argv) { + void operator()() { const char *msg = "GaBuZoMeu"; XBT_INFO("Hello s4u, I have something to send"); - send(*simgrid::s4u::Mailbox::byName("worker"), xbt_strdup(msg), strlen(msg)); - + simgrid::s4u::this_actor::send(*simgrid::s4u::Mailbox::byName("worker"), xbt_strdup(msg), strlen(msg)); XBT_INFO("I'm done. See you."); - return 1; } }; @@ -43,9 +34,8 @@ public: int main(int argc, char **argv) { simgrid::s4u::Engine *e = new simgrid::s4u::Engine(&argc,argv); e->loadPlatform("../../platforms/two_hosts_platform.xml"); - - new Worker("worker", simgrid::s4u::Host::by_name("host0"), 0, NULL); - new Master("master", simgrid::s4u::Host::by_name("host1"), 0, NULL); + new simgrid::s4u::Actor("worker", simgrid::s4u::Host::by_name("host0"), Worker()); + new simgrid::s4u::Actor("master", simgrid::s4u::Host::by_name("host1"), 0, Master()); e->run(); return 0; }