X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMAppli.h;h=c3bce223b4798b2dc0a6c4c9efc22ca656783ca5;hb=dd9de710df141a074f10d0cab27b217425ecab20;hp=d5df81e501b70672da32cbbc8a91d43ad3a8e6a3;hpb=11150e550ff03ee658e90cda4b475b4c24da0a7f;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMAppli.h b/lib/creaDevManagerLib/modelCDMAppli.h index d5df81e..c3bce22 100644 --- a/lib/creaDevManagerLib/modelCDMAppli.h +++ b/lib/creaDevManagerLib/modelCDMAppli.h @@ -37,26 +37,84 @@ #include #include +#include #include"modelCDMFolder.h" #include"modelCDMApplication.h" +/** + * Represents the appli folder of Crea project. The appli folder holds the applications of a project. + */ class modelCDMAppli : public modelCDMFolder { public: + /** + * Default constructor. + */ modelCDMAppli(); + /** + * Constructor of the appli folder node. + * @param parent Parent node of the appli node. + * @param path Full path of the appli node. + * @param name Folder name of the appli node. By default "appli" + * @param level Folder Level in the project hierarchy. By default 1 + */ modelCDMAppli(modelCDMIProjectTreeNode* parent, const std::string& path, const std::string& name = "appli", const int& level = 1); + /** + * Destructor. + */ ~modelCDMAppli(); + /** + * Retrieves the applications inside the appli folder node. + * @return Reference array of the applications in the appli node. + */ const std::vector& GetApplications() const; + /** + * Creates a new application in the system and creates an application node. This node is stored in the applications attribute and returned. The created application is included in the appli's CMakeLists file. + * @param name Name of the new application. + * @param type 0=console application, 1=GUI Application (wxWidgets). + * @param result Result message of the operation. + * @return Reference to the created application or NULL. + */ modelCDMApplication* CreateApplication( const std::string& name, + const int& type, std::string*& result ); + /** + * Refreshes the file structure of the appli node. Deletes deleted folders and files and creates created files and folders since lasts refresh. + * @param result Result message of the operation. + * @return True if the operation was successful. + */ virtual const bool Refresh(std::string*& result); + /** + * Checks the CMakeLists structure and the applications in order to look for compilation errors before compiling. + * @param properties Properties found in the structure. + */ + void CheckStructure(std::map& properties); + + /** + * Checks if the given application is included in the CMakeLists file. + * @param application_name Name of the library to check. + * @return True if the library is included, otherwise returns False. + */ + bool IsApplicationIncluded(const std::string& application_name); + + /** + * Sets the inclusion of the application in the lib's CMakeLists file. If the application inclusion already exist in file, then the line is uncommented/commented depending on the requested action. If the application inclusion doesn't exist yet, then it is included if the request is an inclusion. + * @param application_name Name of the application to include/exclude. + * @param toInclude True if the request is an inclusion, False otherwise. + * @return True if the request was processed successfully. + */ + bool SetApplicationInclude(const std::string& application_name, const bool& toInclude); + private: + /** + * application in the appli folder node. + */ std::vector applications; };