X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FCDMUtilities.h;h=e245450c831aaed17ad39616d0ffdab7881b8e4e;hb=38fb78e3930c8ba01021536630624e4b0b03dd87;hp=99dd04c4a8e034a13f6427cbb9c74eefdb59edc7;hpb=e6d99bba438e086b10239a42492532ff194edb88;p=crea.git diff --git a/lib/creaDevManagerLib/CDMUtilities.h b/lib/creaDevManagerLib/CDMUtilities.h index 99dd04c..e245450 100644 --- a/lib/creaDevManagerLib/CDMUtilities.h +++ b/lib/creaDevManagerLib/CDMUtilities.h @@ -36,6 +36,7 @@ #define CDMUTILITIES_H_ #include +#include #include namespace CDMUtilities @@ -43,15 +44,15 @@ namespace CDMUtilities /** * Path slash */ - #ifdef _WIN32 - // ------ Windows - static std::string SLASH = "\\"; - #elif __APPLE__ - // ------ Apple - static std::string SLASH = "/"; - #else - static std::string SLASH = "/"; - #endif +#ifdef _WIN32 + // ------ Windows + static std::string SLASH = "\\"; +#elif __APPLE__ + // ------ Apple + static std::string SLASH = "/"; +#else + static std::string SLASH = "/"; +#endif /** * Text editor program @@ -82,16 +83,15 @@ namespace CDMUtilities /** * Terminal program */ - #ifdef _WIN32 - // ------ Windows - static std::string TERMINAL = "start cmd.exe"; - #elif __APPLE__ - // ------ Apple - //TODO: implementation for apple - #else - static std::string TERMINAL = "gnome-terminal"; - #endif - +#ifdef _WIN32 + // ------ Windows + static std::string TERMINAL = "start cmd.exe"; +#elif __APPLE__ + // ------ Apple + //TODO: implementation for apple +#else + static std::string TERMINAL = "gnome-terminal"; +#endif /** * Structure that handles the split method for c++ @@ -176,6 +176,55 @@ namespace CDMUtilities * @return line stringified. */ std::string stringify(const std::string& line); + + //CMakeLists file handling + /** + * Type definition for the value of a syntax element for CMakeLists files + */ + typedef std::vector cmdValue; + + /** + * Type definition for the type of a syntax element for CMakeLists files + */ + typedef std::string cmdType; + + /** + * Type definition for syntax elements of a CMakeLists file + */ + typedef std::pair syntaxElement; + + /** + * Type definition for describing a CMakeLists file content + */ + typedef std::vector CMLFile; + + /** + * Reads a file as string and returns the read data. + * @param file_path Full path of the CMakeLists file. + * @return A string with the contents of the given file. + */ + std::string readFile(const std::string& file_path); + + /** + * Reads a CMakeLists file and returns the read data. + * @param file_path Full path of the CMakeLists file. + * @return A CMLFile with the contents of the given file. + */ + CMLFile readCMLFile(const std::string& file_path); + + /** + * Writes the given data into specified CMakeLists file. + * @param file_path Full path of the CMakeLists file. + * @param data CMakeLists data. + * @return True if the operation was successful. + */ + bool writeCMLFile(const std::string& file_path, const CMLFile& data); + + /** + * @param st Strips all space character at the beginning and at the end of the string. + */ + void normalizeStr(std::string& st); + }; #endif /* CDMUTILITIES_H_ */