X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMLib.h;h=d8b8c27fbf0110292d652249de370b0a29d82905;hb=0cc6a7e002ad79de9453517108d7456fd44ddfdb;hp=520822f09ab47d5b842bc80c923a98d1aa613586;hpb=e2223b619fa37daaf6103b34b39e789efc1a0b94;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMLib.h b/lib/creaDevManagerLib/modelCDMLib.h index 520822f..d8b8c27 100644 --- a/lib/creaDevManagerLib/modelCDMLib.h +++ b/lib/creaDevManagerLib/modelCDMLib.h @@ -37,25 +37,83 @@ #include #include +#include -#include "modelCDMIProjectTreeNode.h" +#include "modelCDMFolder.h" #include "modelCDMLibrary.h" -class modelCDMLib : public modelCDMIProjectTreeNode +/** + * Class representing the lib folder of a Crea project. + */ +class modelCDMLib : public modelCDMFolder { public: + /** + * Default Constructor. + */ modelCDMLib(); + /** + * Lib folder node constructor. + * @param parent Parent node of the lib folder node. + * @param path Full path to the lib folder node. + * @param name Name of the lib folder node. By default "lib". + * @param level Project hierarchy level of the lib folder node. + */ + modelCDMLib(modelCDMIProjectTreeNode* parent, const std::string& path, const std::string& name = "lib", const int& level = 1); + /** + * Destructor. + */ ~modelCDMLib(); - bool CreateLibrary( + /** + * Returns the libraries registered in the lib folder. + * @return Array of library references. + */ + const std::vector& GetLibraries() const; + + /** + * Creates a new library node for the actual project and registers it. It modifies the project model as well as the system. The created library is included in the lib's CMakeLists file. + * @param name Name of the new library. + * @param result Result message. + * @return New library reference. + */ + modelCDMLibrary* CreateLibrary( const std::string& name, - std::string*& result, - const std::string& path = "/" + std::string*& result ); - bool OpenCMakeListsFile(std::string*& result); - bool Refresh(std::string*& result); + + /** + * Refreshes the structure of the lib folder. Deletes folders and files deleted since the las refresh and Adds folders and files created since the las refresh. + * @param result Result message. + * @return True if the operation was successful. + */ + virtual const bool Refresh(std::string*& result); + + /** + * Checks the file structure and the CMakeLists file to find structure definition errors before compiling the project. + * @param properties Properties of the project. + */ + void CheckStructure(std::map& properties); + + /** + * Checks if the given library is included in the CMakeLists file. + * @param library_name Name of the library to check. + * @return True if the library is included, otherwise returns False. + */ + bool IsLibraryIncluded(const std::string& library_name); + + /** + * Sets the inclusion of the library in the lib's CMakeLists file. If the library inclusion already exist in file, then the line is uncommented/commented depending on the requested action. If the library inclusion doesn't exist yet, then it is included if the request is an inclusion. + * @param library_name Name of the library to include/exclude. + * @param toInclude True if the request is an inclusion, False otherwise. + * @return True if the request was processed successfully. + */ + bool SetLibraryInclude(const std::string& library_name, const bool& toInclude); private: + /** + * Libraries references. + */ std::vector libraries; };