Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
last changes of cpp wrappers examples
[simgrid.git] / examples / cxx / basic / Master.cxx
index f49f4b9..51b5eb1 100644 (file)
-#include "Master.hpp"\r
-#include "BasicTask.hpp"\r
-#include "FinalizeTask.hpp"\r
-#include <Host.hpp>\r
-#include <HostNotFoundException.hpp>\r
-\r
-#include <Msg.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
-       int channel = 0;\r
-       char buff[BUFFMAX + 1] = {0};\r
-       int numberOfTasks;              \r
-       double taskComputeSize;         \r
-       double taskCommunicateSize;\r
-       StringHelper s;\r
-\r
-       if (argc < 3) \r
-       {\r
-               error("Master needs 3 arguments");\r
-               exit(1);\r
-       }\r
-       \r
-       info("Hello");\r
-       \r
-       int slaveCount = 0;\r
-       Host* slaves = NULL;\r
-\r
-       \r
-       info( TEXT_("argc=") + TEXT_(argc));\r
-       \r
-       for (int i = 0; i< argc; i++)       \r
-               info(TEXT_("argv:") + TEXT_(argv[i]));\r
-       \r
-       sscanf(argv[0],"%d", &numberOfTasks);\r
-       \r
-       sscanf(argv[1],"%lg", &taskComputeSize);\r
-       \r
-       sscanf(argv[2],"%lg", &taskCommunicateSize);\r
-       \r
-       BasicTaskPtr* todo = new BasicTaskPtr[numberOfTasks];\r
-       \r
-       for (int i = 0; i < numberOfTasks; i++) \r
-               todo[i] = new BasicTask((TEXT_("Task_") + TEXT_(i)), taskComputeSize, taskCommunicateSize);\r
-       \r
-       slaveCount = argc - 3;\r
-       slaves = new Host[slaveCount];\r
-       \r
-       for(int i = 3; i < argc ; i++)  \r
-       {\r
-               try \r
-               {\r
-                       slaves[i-3] = Host::getByName(argv[i]);\r
-               }\r
-               \r
-               catch(HostNotFoundException e) \r
-               {\r
-                       cerr << e.toString() <<". Stopping Now!" << endl;\r
-                       exit(1);\r
-               }\r
-       }\r
-\r
-       info(TEXT_("Got slave(s) :") + TEXT_(slaveCount));\r
-       \r
-       for (int i = 0; i < slaveCount; i++)\r
-               info(TEXT_("\t") + TEXT_(slaves[i].getName()));\r
-       \r
-        info(TEXT_("Got ") + TEXT_(numberOfTasks) + TEXT_(" task to process."));\r
-       \r
-       for (int i = 0; i < numberOfTasks; i++) \r
-       {\r
-               info(TEXT_("Sending \"") + TEXT_(todo[i]->getName()) + TEXT_("\" to \"") + TEXT_(slaves[i % slaveCount].getName()) + TEXT_("\""));\r
-       \r
-               if(!strcmp(Host::currentHost().getName(), slaves[i % slaveCount].getName())) \r
-                       info("Hey ! It's me ! ");\r
-\r
-               slaves[i % slaveCount].put(channel, todo[i]);\r
-       }\r
-       \r
-       info("Send completed");\r
-       \r
-       info("All tasks have been dispatched. Let's tell everybody the computation is over.");\r
-       \r
-       for (int i = 0; i < slaveCount; i++) \r
-                       slaves[i].put(channel, new FinalizeTask());\r
-\r
-       delete[] todo;\r
-       delete[] slaves;\r
-       \r
-       info("Goodbye now!");\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 <Host.hpp>
+#include <HostNotFoundException.hpp>
+
+#include <Msg.hpp>
+
+#include <iostream>
+using namespace std;
+
+
+#ifndef BUFFMAX
+#define BUFFMAX 260
+#endif
+
+MSG_IMPLEMENT_DYNAMIC(Master, Process)
+
+int Master::main(int argc, char** argv)
+{
+       int channel = 0;
+       
+       int numberOfTasks;              
+       double taskComputeSize;         
+       double taskCommunicateSize;
+       StringHelper s;
+
+       if (argc < 3) 
+       {
+               error("Master needs 3 arguments");
+               exit(1);
+       }
+       
+       info("Hello");
+       
+       int slaveCount = 0;
+       Host* slaves = NULL;
+
+       
+       info( TEXT_("argc=") + TEXT_(argc));
+       
+       for (int i = 0; i< argc; i++)       
+               info(TEXT_("argv:") + TEXT_(argv[i]));
+       
+       sscanf(argv[0],"%d", &numberOfTasks);
+       
+       sscanf(argv[1],"%lg", &taskComputeSize);
+       
+       sscanf(argv[2],"%lg", &taskCommunicateSize);
+       
+       BasicTaskPtr* todo = new BasicTaskPtr[numberOfTasks];
+       
+       for (int i = 0; i < numberOfTasks; i++) 
+               todo[i] = new BasicTask((TEXT_("Task_") + TEXT_(i)), taskComputeSize, taskCommunicateSize);
+       
+       slaveCount = argc - 3;
+       slaves = new Host[slaveCount];
+       
+       for(int i = 3; i < argc ; i++)  
+       {
+               try 
+               {
+                       slaves[i-3] = Host::getByName(argv[i]);
+               }
+               
+               catch(HostNotFoundException e) 
+               {
+                       cerr << e.toString() <<". Stopping Now!" << endl;
+                       exit(1);
+               }
+       }
+
+       info(TEXT_("Got slave(s) :") + TEXT_(slaveCount));
+       
+       for (int i = 0; i < slaveCount; i++)
+               info(TEXT_("\t") + TEXT_(slaves[i].getName()));
+       
+        info(TEXT_("Got ") + TEXT_(numberOfTasks) + TEXT_(" task to process."));
+       
+       for (int i = 0; i < numberOfTasks; i++) 
+       {
+               info(TEXT_("Sending \"") + TEXT_(todo[i]->getName()) + TEXT_("\" to \"") + TEXT_(slaves[i % slaveCount].getName()) + TEXT_("\""));
+       
+               if(!strcmp(Host::currentHost().getName(), slaves[i % slaveCount].getName())) 
+                       info("Hey ! It's me ! ");
+
+               slaves[i % slaveCount].put(channel, todo[i]);
+       }
+       
+       info("Send completed");
+       
+       info("All tasks have been dispatched. Let's tell everybody the computation is over.");
+       
+       for (int i = 0; i < slaveCount; i++) 
+                       slaves[i].put(channel, new FinalizeTask());
+
+       delete[] todo;
+       delete[] slaves;
+       
+       info("Goodbye now!");
+
+       delete this;
+
+       return 0;
+}
+