-#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
- Simulator::init(argc, argv);\r
- \r
- // the environment to load\r
- Environment environment(argv[1]);\r
- // the application to deploy\r
- Application application(argv[2]);\r
- // the simulation\r
- Simulation simulation;\r
- \r
- // load the environment\r
- environment.load();\r
- \r
- // deploy the application\r
- application.deploy();\r
- \r
- // run the simulation\r
- simulation.run(environment, application);\r
- \r
- // finalize the simulator\r
- Simulator::finalize();\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
+
+