Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
translate a comment
[simgrid.git] / examples / s4u / dumb / s4u_test.cpp
1 /* Copyright (c) 2006-2015. The SimGrid Team. All rights reserved.          */
2
3 /* This program is free software; you can redistribute it and/or modify it
4  * under the terms of the license (GNU LGPL) which comes with this package. */
5
6 #include "simgrid/s4u.h"
7
8 using namespace simgrid;
9 using namespace s4u;
10
11 XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "a sample log category");
12
13 class Worker : Actor {
14 public:
15         Worker(const char*procname, Host *host,int argc, char **argv)
16                         : s4u::Actor(procname,host,argc,argv){}
17
18         int main(int argc, char **argv) {
19                 XBT_INFO("Hello s4u, I'm ready to serve");
20
21                 char *msg = (char*)recv(*Mailbox::byName("worker"));
22                 XBT_INFO("I received '%s'",msg);
23                 XBT_INFO("I'm done. See you.");
24                 return 1;
25         }
26 };
27
28 class Master : Actor {
29 public:
30         Master(const char*procname, Host *host,int argc, char **argv)
31                         : Actor(procname,host,argc,argv){}
32
33         int main(int argc, char **argv) {
34                 const char *msg = "GaBuZoMeu";
35                 XBT_INFO("Hello s4u, I have something to send");
36                 send(*Mailbox::byName("worker"), xbt_strdup(msg), strlen(msg));
37
38                 XBT_INFO("I'm done. See you.");
39                 return 1;
40         }
41 };
42
43
44 int main(int argc, char **argv) {
45         Engine *e = new Engine(&argc,argv);
46         e->loadPlatform("../../platforms/two_hosts_platform.xml");
47
48         new Worker("worker", Host::byName("host0"), 0, NULL);
49         new Master("master", Host::byName("host1"), 0, NULL);
50         e->run();
51         return 0;
52 }