Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Examples of CPP versions of Msg
[simgrid.git] / examples / cxx / basic / Slave.cxx
diff --git a/examples/cxx/basic/Slave.cxx b/examples/cxx/basic/Slave.cxx
new file mode 100644 (file)
index 0000000..775dd24
--- /dev/null
@@ -0,0 +1,37 @@
+#include "Slave.hpp"\r
+#include "FinalizeTask.hpp"\r
+#include <Host.hpp>\r
+#include <HostNotFoundException.hpp>\r
+\r
+#include <iostream>\r
+using namespace std;\r
+\r
+MSG_IMPLEMENT_DYNAMIC(Slave, Process);\r
+\r
+int Slave::main(int argc, char** argv)\r
+{\r
+       cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Hello I'm " << getName() << " on " << getHost().getName() << "!" << endl;\r
+       \r
+       while(true) \r
+       { \r
+               Task* t = Task::get(0); \r
+       \r
+               if(t->isInstanceOf("FinalizeTask")) \r
+               {\r
+                       delete t;\r
+                       break;\r
+               }\r
+               \r
+               cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Received \"" << t->getName() << "\" " << endl;\r
+       \r
+               cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Processing \"" << t->getName() <<  "\" " << endl;\r
+\r
+               t->execute();\r
+               \r
+               cout <<"[" << getName() << ":" << getHost().getName() << "] " << "\"" << t->getName() << "\" done " << endl;\r
+       }\r
+       \r
+       cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Received Finalize. I'm done. See you!" << endl;\r
+\r
+       return 0;\r
+}
\ No newline at end of file