1 #include "Forwarder.hpp"
\r
2 #include "BasicTask.hpp"
\r
3 #include "FinalizeTask.hpp"
\r
5 #include <HostNotFoundException.hpp>
\r
10 MSG_IMPLEMENT_DYNAMIC(Forwarder, Process);
\r
13 int Forwarder::main(int argc, char** argv)
\r
15 cout << "Hello I'm " << getName() << " on " << getHost().getName() << "!" << endl;
\r
17 int slavesCount = argc;
\r
19 Host* slaves = new Host[slavesCount];
\r
21 for (int i = 0; i < argc; i++)
\r
25 slaves[i] = Host::getByName(argv[i]);
\r
27 catch (HostNotFoundException e)
\r
29 cerr << e.toString() << endl;
\r
30 cerr << "Buggy deployment file" << endl;
\r
39 Task* t = Task::get(0);
\r
41 if(t->isInstanceOf("FinalizeTask"))
\r
43 cout << getName() << ":" << getHost().getName() << "All tasks have been dispatched. Let's tell everybody the computation is over." << endl;
\r
45 for (int cpt = 0; cpt< slavesCount; cpt++)
\r
47 slaves[cpt].put(0, new FinalizeTask());
\r
55 cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Received \"" << t->getName() << "\" " << endl;
\r
57 cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Sending \"" << t->getName() << "\" to \"" << slaves[taskCount % slavesCount].getName() <<"\"" << endl;
\r
59 slaves[taskCount % slavesCount].put(0, t);
\r
65 cout <<"[" << getName() << ":" << getHost().getName() << "] " << "I'm done. See you!" << endl;
\r