From d1d51c2fd96df4128db5de56a9e147e45ce940bd Mon Sep 17 00:00:00 2001
From: William F Godoy <williamfgc@yahoo.com>
Date: Thu, 22 Jun 2017 16:21:00 -0400
Subject: [PATCH] Solve issue #171 in IO SetParameters and AddTransport

Keep only std::map<std::string, std::string> initializer list.
Corrected examples.
---
 examples/heatTransfer/write/IO_ph5_adios2.cpp         |  6 ------
 examples/hello/datamanReader/helloDataManReader.cpp   | 11 ++++++-----
 .../hello/datamanReader/helloDataManReader_nompi.cpp  |  5 +++--
 examples/hello/datamanWriter/helloDataManWriter.cpp   |  6 ++++--
 .../hello/datamanWriter/helloDataManWriter_nompi.cpp  |  6 ++++--
 source/adios2/core/IO.cpp                             |  5 -----
 source/adios2/core/IO.h                               |  7 -------
 7 files changed, 17 insertions(+), 29 deletions(-)

diff --git a/examples/heatTransfer/write/IO_ph5_adios2.cpp b/examples/heatTransfer/write/IO_ph5_adios2.cpp
index e58decad1..e4ce15343 100644
--- a/examples/heatTransfer/write/IO_ph5_adios2.cpp
+++ b/examples/heatTransfer/write/IO_ph5_adios2.cpp
@@ -35,14 +35,8 @@ IO::IO(const Settings &s, MPI_Comm comm)
         // if not defined by user, we can change the default settings
         // BPFileWriter is the default engine
         h5io.SetEngine("HDF5Writer");
-        // Allow an extra thread for data processing
-
-        const std::string aggregatorsParam("Aggregators=" +
-                                           std::to_string((s.nproc + 1) / 2));
-        h5io.SetParameters({"have_metadata_file=yes", aggregatorsParam});
     }
 
-    //    ad->DefineScalar<unsigned int>("gndx", true);
     varGndx = &h5io.DefineVariable<unsigned int>("gndx");
     h5io.DefineVariable<unsigned int>("gndy");
 
diff --git a/examples/hello/datamanReader/helloDataManReader.cpp b/examples/hello/datamanReader/helloDataManReader.cpp
index f1e1933f9..89f3e8472 100644
--- a/examples/hello/datamanReader/helloDataManReader.cpp
+++ b/examples/hello/datamanReader/helloDataManReader.cpp
@@ -45,8 +45,9 @@ int main(int argc, char *argv[])
 
         adios2::IO &dataManIO = adios.DeclareIO("WAN");
         dataManIO.SetEngine("DataManReader");
-        dataManIO.SetParameters(
-            {"real_time=yes", "method_type=stream", "method=dump"});
+        dataManIO.SetParameters({{"real_time", "yes"},
+                                 {"method_type", "stream"},
+                                 {"method", "dump"}});
 
         auto dataManReader =
             dataManIO.Open("myDoubles.bp", adios2::OpenMode::Read);
@@ -82,9 +83,9 @@ int main(int argc, char *argv[])
     }
     catch (std::ios_base::failure &e)
     {
-        std::cout
-            << "IO System base failure exception, STOPPING PROGRAM from rank "
-            << rank << "\n";
+        std::cout << "IO System base failure exception, STOPPING PROGRAM "
+                     "from rank "
+                  << rank << "\n";
         std::cout << e.what() << "\n";
     }
     catch (std::exception &e)
diff --git a/examples/hello/datamanReader/helloDataManReader_nompi.cpp b/examples/hello/datamanReader/helloDataManReader_nompi.cpp
index 59847659e..c45162960 100644
--- a/examples/hello/datamanReader/helloDataManReader_nompi.cpp
+++ b/examples/hello/datamanReader/helloDataManReader_nompi.cpp
@@ -40,8 +40,9 @@ int main(int argc, char *argv[])
 
         adios2::IO &dataManIO = adios.DeclareIO("WAN");
         dataManIO.SetEngine("DataManReader");
-        dataManIO.SetParameters(
-            {"real_time=yes", "method_type=stream", "method=dump"});
+        dataManIO.SetParameters({{"real_time", "yes"},
+                                 {"method_type", "stream"},
+                                 {"method", "dump"}});
         auto dataManReader =
             dataManIO.Open("myDoubles.bp", adios2::OpenMode::Read);
 
diff --git a/examples/hello/datamanWriter/helloDataManWriter.cpp b/examples/hello/datamanWriter/helloDataManWriter.cpp
index e223f6f86..b22b90a5e 100644
--- a/examples/hello/datamanWriter/helloDataManWriter.cpp
+++ b/examples/hello/datamanWriter/helloDataManWriter.cpp
@@ -31,8 +31,10 @@ int main(int argc, char *argv[])
         adios2::ADIOS adios(MPI_COMM_WORLD, adios2::DebugON);
         adios2::IO &dataManIO = adios.DeclareIO("WANIO");
         dataManIO.SetEngine("DataManWriter");
-        dataManIO.SetParameters({"peer-to-peer=yes", "real_time=yes",
-                                 "compress=no", "method=dump"});
+        dataManIO.SetParameters({{"peer-to-peer", "yes"},
+                                 {"real_time", "yes"},
+                                 {"compress", "no"},
+                                 {"method", "dump"}});
 
         // Define variable and local size
         auto bpFloats =
diff --git a/examples/hello/datamanWriter/helloDataManWriter_nompi.cpp b/examples/hello/datamanWriter/helloDataManWriter_nompi.cpp
index f00f98939..65c0ce4e8 100644
--- a/examples/hello/datamanWriter/helloDataManWriter_nompi.cpp
+++ b/examples/hello/datamanWriter/helloDataManWriter_nompi.cpp
@@ -24,8 +24,10 @@ int main(int argc, char *argv[])
         adios2::ADIOS adios(adios2::DebugON);
         adios2::IO &dataManIO = adios.DeclareIO("WANIO");
         dataManIO.SetEngine("DataManWriter");
-        dataManIO.SetParameters({"peer-to-peer=yes", "real_time=yes",
-                                 "compress=no", "method=dump"});
+        dataManIO.SetParameters({{"peer-to-peer", "yes"},
+                                 {"real_time", "yes"},
+                                 {"compress", "no"},
+                                 {"method", "dump"}});
 
         // Define variable and local size
         auto bpFloats =
diff --git a/source/adios2/core/IO.cpp b/source/adios2/core/IO.cpp
index 80f780020..3210b5b97 100644
--- a/source/adios2/core/IO.cpp
+++ b/source/adios2/core/IO.cpp
@@ -43,11 +43,6 @@ IO::IO(const std::string name, MPI_Comm mpiComm, const bool inConfigFile,
 void IO::SetEngine(const std::string engineType) { m_EngineType = engineType; }
 void IO::SetIOMode(const IOMode ioMode) { m_IOMode = ioMode; };
 
-void IO::SetParameters(const std::vector<std::string> &parametersVector)
-{
-    m_Parameters = BuildParametersMap(parametersVector, m_DebugMode);
-}
-
 void IO::SetParameters(const Params &parameters) { m_Parameters = parameters; }
 
 unsigned int IO::AddTransport(const std::string type,
diff --git a/source/adios2/core/IO.h b/source/adios2/core/IO.h
index b29c05271..c2854aea1 100644
--- a/source/adios2/core/IO.h
+++ b/source/adios2/core/IO.h
@@ -80,13 +80,6 @@ public:
      * @param IO mode */
     void SetIOMode(const IOMode mode);
 
-    /**
-     * Sets IO parameters in "parameter=value" format
-     * @param paramsVector each vector entry with format
-     * "parameter1=value1", ..., "parameterN=valueN"
-     */
-    void SetParameters(const std::vector<std::string> &parametersVector);
-
     /**
      * Version that passes a map to fill out parameters
      * initializer list = { "param1", "value1" },  {"param2", "value2"},
-- 
GitLab