Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Let simgrid.dtd to be accessible from the web in order to enable automatic validation...
[simgrid.git] / examples / cxx / autoDestination / Master.cxx
index 9a2d915..6abe58f 100644 (file)
@@ -1,91 +1,80 @@
-#include "Master.hpp"\r
-#include "BasicTask.hpp"\r
-#include "FinalizeTask.hpp"\r
-\r
-#include <Host.hpp>\r
-#include <HostNotFoundException.hpp>\r
-\r
-#include <iostream>\r
-using namespace std;\r
-\r
-\r
-#ifndef BUFFMAX\r
-#define BUFFMAX 260\r
-#endif\r
-\r
-MSG_IMPLEMENT_DYNAMIC(Master, Process);\r
-\r
-int Master::main(int argc, char** argv)\r
-{\r
-       char buff[BUFFMAX + 1] = {0};\r
-       int taskCount;          \r
-       double taskComputeSize;         \r
-       double taskCommunicateSize;\r
-       \r
-       cout << "Hello I'm " << getName() << " on " << getHost().getName() << "!" << endl;\r
-               \r
-       cout <<"[" << getName() << ":" << getHost().getName() << "] " << "argc=" << argc << endl;\r
-               \r
-       for (int i = 0; i< argc; i++)       \r
-               cout << "argv:" << argv[i] << endl;\r
-       \r
-       sscanf(argv[0],"%d", &taskCount);\r
-       sscanf(argv[1],"%lg", &taskComputeSize);\r
-       sscanf(argv[2],"%lg", &taskCommunicateSize);\r
-       \r
-       BasicTaskPtr* basicTasks = new BasicTaskPtr[taskCount];\r
-               \r
-       for (int i = 0; i < taskCount; i++) \r
-       {\r
-               sprintf(buff,"Task_%d",i);\r
-               basicTasks[i] = new BasicTask(buff, taskComputeSize, taskCommunicateSize);\r
-               memset(buff, 0 , BUFFMAX + 1); \r
-       }               \r
-       \r
-       int aliasCount = argc - 3;\r
-               \r
-       char** aliases = (char**) calloc(aliasCount, sizeof(char*));\r
-               \r
-       for(int i = 3; i < argc ; i++) \r
-               aliases[i - 3] = _strdup(argv[i]);\r
-               \r
-       cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Got "<<  aliasCount << " alias(es) :" << endl;\r
-               \r
-       for (int i = 0; i < aliasCount; i++)\r
-               cout <<"[" << getName() << ":" << getHost().getName() << "] " << "\t" << aliases[i] << endl;\r
-               \r
-       cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Got "<< taskCount << " task to process." << endl;\r
-               \r
-       for (int i = 0; i < taskCount; i++) \r
-       {       \r
-               cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Sending \"" << basicTasks[i]->getName() << "\" to \"" << aliases[i % aliasCount] << "\"" << endl;\r
-               \r
-               /*if((Host::currentHost().getName()).equals((aliases[i % aliasCount].split(":"))[0]))\r
-                       cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Hey ! It's me ! ";\r
-               */\r
-                       \r
-               basicTasks[i]->send(aliases[i % aliasCount]);\r
-       }\r
-               \r
-       cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Send completed" << endl;\r
-       \r
-       cout <<"[" << getName() << ":" << getHost().getName() << "] " << "All tasks have been dispatched. Let's tell everybody the computation is over." << endl;\r
-       \r
-       FinalizeTask* finalizeTask;\r
-       \r
-       for (int i = 0; i < aliasCount; i++) \r
-       {\r
-               finalizeTask = new FinalizeTask();\r
-               finalizeTask->send(aliases[i]);\r
-               \r
-       }\r
-       \r
-       cout <<"[" << getName() << ":" << getHost().getName() << "] " << "Goodbye now!" << endl;\r
-\r
-       delete[] basicTasks;\r
-       delete[] aliases;\r
-\r
-       delete this;\r
-\r
-       return 0;\r
-}
\ No newline at end of file
+#include "Master.hpp"
+#include "BasicTask.hpp"
+#include "FinalizeTask.hpp"
+
+#include <MsgHost.hpp>
+#include <HostNotFoundException.hpp>
+
+#include <Msg.hpp>
+
+MSG_IMPLEMENT_DYNAMIC(Master, Process)
+
+int Master::main(int argc, char** argv)
+{
+       int taskCount;          
+       double taskComputeSize;         
+       double taskCommunicateSize;
+       
+       info("Hello");
+               
+       info(TEXT_("argc=") + TEXT_(argc));
+               
+       for (int i = 0; i< argc; i++)       
+               info(TEXT_("argv:") + TEXT_(argv[i]));
+       
+       sscanf(argv[0],"%d", &taskCount);
+       sscanf(argv[1],"%lg", &taskComputeSize);
+       sscanf(argv[2],"%lg", &taskCommunicateSize);
+       
+       BasicTaskPtr* basicTasks = new BasicTaskPtr[taskCount];
+               
+       for (int i = 0; i < taskCount; i++) 
+               basicTasks[i] = new BasicTask((TEXT_("Task_") + TEXT_(i)), taskComputeSize, taskCommunicateSize);               
+       
+       int aliasCount = argc - 3;
+               
+       char** aliases = (char**) calloc(aliasCount, sizeof(char*));
+               
+       for(int i = 3; i < argc ; i++) 
+               aliases[i - 3] = _strdup(argv[i]);
+               
+       info(TEXT_("Got ") + TEXT_(aliasCount) + TEXT_(" alias(es) :"));
+               
+       for (int i = 0; i < aliasCount; i++)
+               info(TEXT_("\t") + TEXT_(aliases[i]));
+               
+       info(TEXT_("Got ") + TEXT_(taskCount) + TEXT_(" task to process."));
+               
+       for (int i = 0; i < taskCount; i++) 
+       {       
+               info(TEXT_("Sending \"") + TEXT_(basicTasks[i]->getName()) + TEXT_("\" to \"") + TEXT_(aliases[i % aliasCount]) + TEXT_("\""));
+               
+               /*if((Host::currentHost().getName()).equals((aliases[i % aliasCount].split(":"))[0]))
+                       info("Hey ! It's me ! ");
+               */
+                       
+               basicTasks[i]->send(aliases[i % aliasCount]);
+       }
+               
+       info("Send completed");
+       
+       info("All tasks have been dispatched. Let's tell everybody the computation is over.");
+       
+       FinalizeTask* finalizeTask;
+       
+       for (int i = 0; i < aliasCount; i++) 
+       {
+               finalizeTask = new FinalizeTask();
+               finalizeTask->send(aliases[i]);
+               
+       }
+       
+       info("Goodbye now!");
+
+       delete[] basicTasks;
+       delete[] aliases;
+
+       delete this;
+
+       return 0;
+}