-#include <Simulation.hpp>\r
-\r
-#include <Simulator.hpp>\r
-\r
-namespace SimGrid\r
-{\r
- namespace Msg\r
- {\r
- int Simulation::execute(int argc, char** argv)\r
- {\r
- if(argc < 3) \r
- {\r
- info("Usage: Msg platform_file deployment_file");\r
- return 1;\r
- }\r
- \r
- // initialize the MSG simulator. Must be done before anything else (even logging).\r
- init(argc, argv);\r
- \r
- // the environment to load\r
- Environment environment;\r
- \r
- // the application to deploy\r
- Application application;\r
- \r
- // the simulation\r
- Simulation simulation;\r
- \r
- // try to load the environment described by the xml file (argv[1])\r
- try\r
- {\r
- environment.load(argv[1]);\r
- }\r
- catch(InvalidArgumentException e)\r
- {\r
- info(e.toString());\r
- finalize();\r
- return 1;\r
- }\r
- catch(LogicException e)\r
- {\r
- info(e.toString());\r
- finalize();\r
- return 1;\r
- }\r
- \r
- \r
- // try to deploy the application described by the xml file deployment (argv[2])\r
- try\r
- {\r
- application.deploy(argv[2]);\r
- catch(InvalidArgumentException e)\r
- {\r
- info(e.toString());\r
- finalize();\r
- return 1;\r
- }\r
- catch(LogicException e)\r
- {\r
- info(e.toString());\r
- finalize();\r
- return 1;\r
- }\r
- \r
- //try to run the simulation the given application on the given environment\r
- try\r
- {\r
- simulation.run(environment, application);\r
- }\r
- catch(MsgException e)\r
- {\r
- info(e.toString());\r
- finalize();\r
- return 1;\r
- }\r
- \r
- // finalize the MSG simulator\r
- \r
- try\r
- {\r
- finalize();\r
- }\r
- catch(MsgExceptio e)\r
- {\r
- info(e.toString())\r
- return 1;\r
- }\r
- \r
- return 0;\r
- }\r
- \r
- void run(const Environment& rEnvironment, const Application& rApplication)\r
- throw (MsgException)\r
- {\r
- if(MSG_OK != MSG_main())\r
- throw MsgException("MSG_main() failed");\r
- }\r
- } // namespace Msg\r
-} // namespace SimGrid\r
+/*
+ * Simulation.cxx
+ *
+ * Copyright 2006,2007 Martin Quinson, Malek Cherier
+ * All right reserved.
+ *
+ * This program is free software; you can redistribute
+ * it and/or modify it under the terms of the license
+ *(GNU LGPL) which comes with this package.
+ *
+ */
+
+ /* Simulation member functions implementation.
+ */
+
+
+#include <Application.hpp>
+#include <Environment.hpp>
+
+#include <Msg.hpp>
+
+#include <Simulation.hpp>
+
+
+#include <msg/msg.h>
+
+namespace SimGrid
+{
+ namespace Msg
+ {
+ int Simulation::execute(int argc, char** argv)
+ {
+ if(argc < 3)
+ {
+ info("Usage: Msg platform_file deployment_file");
+ return 1;
+ }
+
+ // initialize the MSG simulator. Must be done before anything else (even logging).
+ init(argc, argv);
+
+ // the environment to load
+ Environment env;
+
+ // the application to deploy
+ Application app;
+
+
+ // try to load the environment described by the xml file (argv[1])
+ try
+ {
+ env.load(argv[1]);
+ }
+ catch(FileNotFoundException e)
+ {
+ info(e.toString());
+ finalize();
+ return 1;
+ }
+
+ // try to deploy the application described by the xml file deployment (argv[2])
+ try
+ {
+ app.deploy(argv[2]);
+ }
+ catch(FileNotFoundException e)
+ {
+ info(e.toString());
+ finalize();
+ return 1;
+ }
+
+ //try to run the simulation the given application on the given environment
+ try
+ {
+ run();
+ }
+ catch(MsgException e)
+ {
+ info(e.toString());
+ finalize();
+ return 1;
+ }
+
+ // finalize the MSG simulator
+ try
+ {
+ finalize();
+ }
+ catch(MsgException e)
+ {
+ info(e.toString());
+ return 1;
+ }
+
+ return 0;
+ }
+
+ void Simulation::run(void)
+ throw (MsgException)
+ {
+ if(MSG_OK != MSG_main())
+ throw MsgException("MSG_main() failed");
+ }
+ } // namespace Msg
+} // namespace SimGrid
+
+