Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Some new files of the cxx version of the MSG API
[simgrid.git] / src / cxx / Application.hpp
diff --git a/src/cxx/Application.hpp b/src/cxx/Application.hpp
new file mode 100644 (file)
index 0000000..81cf005
--- /dev/null
@@ -0,0 +1,124 @@
+#ifndef MSG_APPLICATION_HPP\r
+#define MSG_APPLICATION_HPP\r
+\r
+#ifndef __cplusplus\r
+       #error Application.hpp requires C++ compilation (use a .cxx suffix)\r
+#endif\r
+\r
+#include <InvalidParameterException.hpp>\r
+#include <LogicException.hpp>\r
+#include <MsgException.hpp>\r
+\r
+namespace SimGrid\r
+{\r
+       namespace Msg\r
+       {\r
+               class Application\r
+               {\r
+               public:\r
+                       \r
+               // Default constructor.\r
+                       Application();\r
+                       \r
+                       /*! \brief Copy constructor.\r
+                        */\r
+                       Application(const Application& rApplication);\r
+                       \r
+                       /* \brief A constructor which takes as parameter the xml file of the application.\r
+                        *\r
+                        * \exception           [InvalidParameterException]     if the parameter file is invalid\r
+                        *                                      (NULL or if the file does not exist).\r
+                        */\r
+                       Application(const char* file)\r
+                       throw(InvalidParameterException);\r
+                       \r
+                       /*! \brief Destructor.\r
+                        */\r
+                       virtual ~Application();\r
+                       \r
+               // Operations.\r
+                       \r
+                       /*! \brief Application::deploy() - deploy the appliction.\r
+                        *\r
+                        * \return                      If successfuly the application is deployed. Otherwise\r
+                        *                                      the method throws an exception listed below.\r
+                        *\r
+                        * \exception           [LogicException]                        if the xml file which describes the application\r
+                        *                                                                                              is not yet specified or if the application is already\r
+                        *                                                                                              deployed.\r
+                        *                                      [MsgException]                          if a internal exception occurs.\r
+                        *\r
+                        * \remark                      Before use this method, you must specify the xml file of the application to\r
+                        *                                      deploy.\r
+                        *\r
+                        * \see                         Application::setFile()\r
+                        */\r
+                        \r
+                       void deploy(void)\r
+                       throw(LogicExeption, MsgException);\r
+                       \r
+                       /*! \brief Application::deploy() - deploy the appliction.\r
+                        *\r
+                        * \return                      If successfuly the application is deployed. Otherwise\r
+                        *                                      the method throws an exception listed below.\r
+                        *\r
+                        * \exception           [InvalidParameterException]     if the parameter file is invalid\r
+                        *                                      (NULL or not a xml deployment file name).\r
+                        *                                      [MsgException]                          if a internal exception occurs.\r
+                        *                                      [LogicException]                        if the application is already deployed.\r
+                        *\r
+                        * \\r
+                        */\r
+                       void deploy(const char* file)\r
+                       throw(InvalidParameterException, LogicException, MsgException);\r
+                       \r
+                       /*! \brief Application::isDeployed() - tests if the application is deployed.\r
+                        *\r
+                        * \return                      This method returns true is the application is deployed.\r
+                        *                                      Otherwise the method returns false.\r
+                        */\r
+                       bool isDeployed(void) const;\r
+                       \r
+                       \r
+               // Getters/setters\r
+                       \r
+                       /*! \brief Application::setFile() - this setter sets the value of the file of the application.\r
+                        *\r
+                        * \return                      If successful, the value of the file of the application is setted.\r
+                        *                                      Otherwise the method throws on of the exceptions listed below.\r
+                        *\r
+                        * \exception           [InvalidParameterException]     if the parameter file is invalid\r
+                        *                                                                                              (NULL or does no exist).\r
+                        *                                      [LogicException]                        if you try to set the value of the file of an\r
+                        *                                                                                              application which is already deployed.\r
+                        */\r
+                       void setFile(const char* file)\r
+                       throw (InvalidParameterException, LogicException);\r
+                       \r
+                       /*! \brief Application::getFile() - this getter returns the file of an application object.\r
+                        */\r
+                       const char* getFile(void) const;\r
+                       \r
+               // Operators.\r
+                       \r
+                       /*! \brief Assignement operator.\r
+                        *\r
+                        * \exception           [LogicException]                        if you try to assign an application already deployed.\r
+                        */\r
+                       const Application& operator = (const Application& rApplication)\r
+                       throw(LogicException);\r
+                       \r
+               private:\r
+               // Attributes.\r
+                       \r
+                       // flag : if true the application was deployed.\r
+                       bool deployed;\r
+                       // the xml file which describe the application.\r
+                       const char* file;\r
+                       \r
+               };\r
+               \r
+       } // namespace Msg\r
+} // namespace SimGrid\r
+\r
+#endif // !MSG_APPLICATION_HPP
\ No newline at end of file