1 #include "Forwarder.hpp"
\r
2 #include "BasicTask.hpp"
\r
3 #include "FinalizeTask.hpp"
\r
6 #include <HostNotFoundException.hpp>
\r
11 MSG_IMPLEMENT_DYNAMIC(Forwarder, Process);
\r
14 int Forwarder::main(int argc, char** argv)
\r
16 cout << "Hello I'm " << getName() << " on " << getHost().getName() << "!" << endl;
\r
18 int aliasCount = argc;
\r
24 BasicTask* basicTask;
\r
28 taskReceived = Task::receive(Host::currentHost().getName());
\r
30 if(taskReceived->isInstanceOf("FinalizeTask"))
\r
32 cout <<"[" << getName() << ":" << getHost().getName() << "] " << "All tasks have been dispatched. Let's tell everybody the computation is over." << endl;
\r
34 for (int i = 0; i < aliasCount; i++)
\r
36 finalizeTask = new FinalizeTask();
\r
37 finalizeTask->send(argv[i]);
\r
40 delete taskReceived;
\r
45 basicTask = reinterpret_cast<BasicTask*>(taskReceived);
\r
47 cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Received \"" << basicTask->getName() << "\" " << endl;
\r
49 cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Sending \"" << basicTask->getName() << "\" to \"" << argv[taskCount % aliasCount] << "\"" << endl;
\r
51 basicTask->send(argv[taskCount % aliasCount]);
\r
57 cout <<"[" << getName() << ":" << getHost().getName() << "] " << "I'm done. See you!" << endl;
\r