X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FCDMUtilities.h;h=50e2cd410a9160db3b022d8d4bd0b1e6f4d63856;hb=bae167768b5d3ccae6ec9b04c844d80e0368a52d;hp=f807d3262b59df22e837f09a8d71834e28655a02;hpb=5a17d994576296f2a5a85f3a01ad5631786a0c56;p=crea.git diff --git a/lib/creaDevManagerLib/CDMUtilities.h b/lib/creaDevManagerLib/CDMUtilities.h index f807d32..50e2cd4 100644 --- a/lib/creaDevManagerLib/CDMUtilities.h +++ b/lib/creaDevManagerLib/CDMUtilities.h @@ -93,6 +93,13 @@ namespace CDMUtilities static std::string TERMINAL = "gnome-terminal"; #endif +#ifndef _WIN32 + /** + * Build Command + */ + static std::string BUILD_COMMAND = "make"; +#endif + /** * Structure that handles the split method for c++ * It calls the split method to split a string given certain delimiters. @@ -118,7 +125,29 @@ namespace CDMUtilities const typename Container::value_type& s, const typename Container::value_type& delimiters, empties_t empties = empties_ok - ); + ) + { + result.clear(); + size_t current; + size_t next = -1; + do + { + if (empties == no_empties) + { + next = s.find_first_not_of(delimiters, next + 1); + if (next == Container::value_type::npos) + { + break; + } + next -= 1; + } + current = next + 1; + next = s.find_first_of(delimiters, current); + result.push_back(s.substr(current, next - current)); + } + while (next != Container::value_type::npos); + return result; + } }; /** @@ -144,9 +173,10 @@ namespace CDMUtilities * Opens a file with a given command. * @param file Full path of the file to open. * @param command Command to execute the file with. + * @param parameters Parameters to open file. * @return True if there was an error on the execution of the operation. */ - int openFileWithCommand(const std::string& file, const std::string& command); + int openFileWithCommand(const std::string& file, const std::string& command, const std::string& parameters = ""); /** * Opens the BBTK Graphical Editor * @return True if there was an error on the execution of the operation. @@ -198,6 +228,20 @@ namespace CDMUtilities */ 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); + /** + * Writes the given string into a file and returns whether the operation is successful. + * @param file_path Full path of the CMakeLists file. + * @param st string to write. + * @return True if the operation was successful. + */ + bool writeFile(const std::string& file_path, const std::string& st); + /** * Reads a CMakeLists file and returns the read data. * @param file_path Full path of the CMakeLists file. @@ -213,6 +257,11 @@ namespace CDMUtilities */ 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_ */