Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Tasks must be initialized.
[simgrid.git] / examples / cxx / autoDestination / Slave.cxx
1 #include "Slave.hpp"
2 #include "FinalizeTask.hpp"
3 #include "BasicTask.hpp"
4
5 #include <MsgHost.hpp>
6 #include <HostNotFoundException.hpp>
7
8 #include <Msg.hpp>
9
10 MSG_IMPLEMENT_DYNAMIC(Slave, Process)
11
12 int Slave::main(int argc, char** argv)
13 {
14         info("Hello");
15         
16         Task* receivedTask;
17         BasicTask* basicTask;
18         
19         while(true) 
20         { 
21                 receivedTask = Task::receive(); 
22         
23                 if(receivedTask->isInstanceOf("FinalizeTask")) 
24                 {
25                         delete receivedTask;
26                         break;
27                 }
28         
29                 basicTask = reinterpret_cast<BasicTask*>(receivedTask);
30         
31                 info(TEXT_("Received \"") + TEXT_(basicTask->getName()) + TEXT_("\" "));
32         
33                 info(TEXT_("Processing \"") + TEXT_(basicTask->getName()) + TEXT_("\" "));
34                 
35                 basicTask->execute();
36                 
37                 info(TEXT_("\"") + TEXT_(basicTask->getName()) + TEXT_("\" done "));
38         
39                 delete basicTask;
40         }
41                 
42         info("Received Finalize. I'm done. See you!");
43         
44         delete this;
45
46         return 0;
47 }