From 9d1e0f60218cf75845f8c149dac29cf4a5782b00 Mon Sep 17 00:00:00 2001
From: Marina Bertolino <marina.bertolino@c-s.fr>
Date: Fri, 11 Aug 2017 15:28:00 +0200
Subject: [PATCH] ENH: add const at std::string parameters in KMeans class

---
 .../include/otbClassKMeansBase.h              | 20 +++++++++----------
 .../include/otbClassKMeansBase.txx            | 16 +++++++--------
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/Modules/Applications/AppClassification/include/otbClassKMeansBase.h b/Modules/Applications/AppClassification/include/otbClassKMeansBase.h
index 2b0b2d425a..c1684ce4c4 100644
--- a/Modules/Applications/AppClassification/include/otbClassKMeansBase.h
+++ b/Modules/Applications/AppClassification/include/otbClassKMeansBase.h
@@ -98,9 +98,9 @@ public:
    * \param sampleFileName samples select output filename
    * \param sampleExtractFileName samples extract filename
    */
-    void SelectAndExtractSamples(std::string statisticsFileName,
-                                 std::string fieldName,
-                                 std::string sampleFileName,
+    void SelectAndExtractSamples(const std::string &statisticsFileName,
+                                 const std::string &fieldName,
+                                 const std::string &sampleFileName,
                                  int NBSamples);
 
   /**
@@ -110,16 +110,16 @@ public:
    * \param modelFileName model filename
    */
     void TrainKMModel(FloatVectorImageType *image,
-                      std::string sampleTrainFileName,
-                      std::string modelFileName);
+                      const std::string &sampleTrainFileName,
+                      const std::string &modelFileName);
 
   /**
    * Compute image second order statistics
    * \param imageFileName input image filename
    * \param imagesStatsFileName image statistics
    */
-    void ComputeImageStatistics(std::string imageFileName,
-                                std::string imagesStatsFileName);
+    void ComputeImageStatistics(const std::string &imageFileName,
+                                const std::string &imagesStatsFileName);
 
   /**
    * Performs a classification of the input image according to a model file
@@ -135,7 +135,7 @@ public:
    * \param modelFileName model filename
    * \param nbClasses number of class
    */
-    void CreateOutMeansFile(FloatVectorImageType *image, std::string modelFileName,
+    void CreateOutMeansFile(FloatVectorImageType *image, const std::string &modelFileName,
                             unsigned int nbClasses);
 
     /**
@@ -147,7 +147,7 @@ public:
     class KMeansFileNamesHandler
       {
       public :
-        void CreateTemporaryFileNames(std::string outPath)
+        void CreateTemporaryFileNames(const std::string &outPath)
         {
           tmpVectorFile = outPath + "_imgEnvelope.shp";
           polyStatOutput = outPath + "_polyStats.xml";
@@ -172,7 +172,7 @@ public:
         std::string imgStatOutput;
 
       private:
-        bool RemoveFile(std::string &filePath)
+        bool RemoveFile(const std::string &filePath)
         {
           bool res = true;
           if( itksys::SystemTools::FileExists( filePath.c_str() ) )
diff --git a/Modules/Applications/AppClassification/include/otbClassKMeansBase.txx b/Modules/Applications/AppClassification/include/otbClassKMeansBase.txx
index 85876b7c81..3bd7e41572 100644
--- a/Modules/Applications/AppClassification/include/otbClassKMeansBase.txx
+++ b/Modules/Applications/AppClassification/include/otbClassKMeansBase.txx
@@ -178,9 +178,9 @@ void ClassKMeansBase::ComputePolygonStatistics(const std::string &statisticsFile
   ExecuteInternal("polystats");
 }
 
-void ClassKMeansBase::SelectAndExtractSamples(std::string statisticsFileName,
-                                              std::string fieldName,
-                                              std::string sampleFileName,
+void ClassKMeansBase::SelectAndExtractSamples(const std::string &statisticsFileName,
+                                              const std::string &fieldName,
+                                              const std::string &sampleFileName,
                                               int NBSamples)
 {
   /* SampleSelection */
@@ -210,8 +210,8 @@ void ClassKMeansBase::SelectAndExtractSamples(std::string statisticsFileName,
 }
 
 void ClassKMeansBase::TrainKMModel(FloatVectorImageType *image,
-                                   std::string sampleTrainFileName,
-                                   std::string modelFileName)
+                                   const std::string &sampleTrainFileName,
+                                   const std::string &modelFileName)
 {
   std::vector<std::string> extractOutputList = {sampleTrainFileName};
   GetInternalApplication("training")->SetParameterStringList("io.vd", extractOutputList, false);
@@ -245,8 +245,8 @@ void ClassKMeansBase::TrainKMModel(FloatVectorImageType *image,
   otbAppLogINFO("output model : " << GetInternalApplication("training")->GetParameterString("io.out"));
 }
 
-void ClassKMeansBase::ComputeImageStatistics(std::string imageFileName,
-                                             std::string imagesStatsFileName)
+void ClassKMeansBase::ComputeImageStatistics(const std::string &imageFileName,
+                                             const std::string &imagesStatsFileName)
 {
   std::vector<std::string> imageFileNameList = {imageFileName};
   GetInternalApplication("imgstats")->SetParameterStringList("il", imageFileNameList, false);
@@ -263,7 +263,7 @@ void ClassKMeansBase::KMeansClassif()
 }
 
 void ClassKMeansBase::CreateOutMeansFile(FloatVectorImageType *image,
-                                        std::string modelFileName,
+                                         const std::string &modelFileName,
                                          unsigned int nbClasses)
 {
   if (IsParameterEnabled("outmeans"))
-- 
GitLab