]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/CDMUtilities.h
crea Bug Not compiling in Windows
[crea.git] / lib / creaDevManagerLib / CDMUtilities.h
index f807d3262b59df22e837f09a8d71834e28655a02..4558c18315f407225ef0e71dfbf3f02ff286ed02 100644 (file)
@@ -93,6 +93,15 @@ namespace CDMUtilities
   static std::string TERMINAL = "gnome-terminal";
 #endif
 
+
+//EED 10/07/2013
+//#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 +127,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 +175,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 +230,20 @@ namespace CDMUtilities
    */
   typedef std::vector<syntaxElement> 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 +259,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_ */