From bd5e7d7ce39473a143b68657d5ab91effb8428db Mon Sep 17 00:00:00 2001
From: wgodoy <wgodoy@wgodoy-desktop>
Date: Mon, 19 Jun 2017 18:33:38 -0400
Subject: [PATCH] Back to bp1 name.bp.dir/name.bp.rank format

---
 source/adios2/engine/bp/BPFileWriter.cpp     |  2 +-
 source/adios2/toolkit/format/bp1/BP1Base.cpp | 40 ++++++++++----------
 source/adios2/toolkit/format/bp1/BP1Base.h   | 24 ++----------
 3 files changed, 26 insertions(+), 40 deletions(-)

diff --git a/source/adios2/engine/bp/BPFileWriter.cpp b/source/adios2/engine/bp/BPFileWriter.cpp
index 3d1e2fe74..2c5bb3460 100644
--- a/source/adios2/engine/bp/BPFileWriter.cpp
+++ b/source/adios2/engine/bp/BPFileWriter.cpp
@@ -129,7 +129,7 @@ void BPFileWriter::InitTransports()
     auto transportsNames = m_TransportsManager.GetFilesBaseNames(
         m_Name, m_IO.m_TransportsParameters);
     auto bpBaseNames = m_BP1Writer.GetBPBaseNames(transportsNames);
-    auto bpNames = m_BP1Writer.GetBPNames(bpBaseNames);
+    auto bpNames = m_BP1Writer.GetBPNames(transportsNames);
 
     m_TransportsManager.OpenFiles(bpBaseNames, bpNames, m_OpenMode,
                                   m_IO.m_TransportsParameters,
diff --git a/source/adios2/toolkit/format/bp1/BP1Base.cpp b/source/adios2/toolkit/format/bp1/BP1Base.cpp
index 9248115d4..1f7198585 100644
--- a/source/adios2/toolkit/format/bp1/BP1Base.cpp
+++ b/source/adios2/toolkit/format/bp1/BP1Base.cpp
@@ -82,43 +82,45 @@ void BP1Base::InitParameters(const Params &parameters)
 std::vector<std::string>
 BP1Base::GetBPBaseNames(const std::vector<std::string> &names) const noexcept
 {
+    auto lf_GetBPBaseName = [](const std::string &name) -> std::string {
+
+        const std::string bpBaseName(AddExtension(name, ".bp") + ".dir");
+        return bpBaseName;
+    };
+
     std::vector<std::string> bpBaseNames;
     bpBaseNames.reserve(names.size());
 
     for (const auto &name : names)
     {
-        bpBaseNames.push_back(GetBPBaseName(name));
+        bpBaseNames.push_back(lf_GetBPBaseName(name));
     }
     return bpBaseNames;
 }
 
-std::string BP1Base::GetBPBaseName(const std::string &name) const noexcept
-{
-    return AddExtension(name, ".bp");
-}
-
 std::vector<std::string>
-BP1Base::GetBPNames(const std::vector<std::string> &names) const noexcept
+BP1Base::GetBPNames(const std::vector<std::string> &baseNames) const noexcept
 {
+    auto lf_GetBPName = [](const std::string &baseName,
+                           const int rank) -> std::string {
+
+        const std::string bpBaseName = AddExtension(baseName, ".bp");
+        // name.bp.dir/name.bp.rank
+        const std::string bpName(bpBaseName + ".dir/" + bpBaseName + "." +
+                                 std::to_string(rank));
+        return bpName;
+    };
+
     std::vector<std::string> bpNames;
-    bpNames.reserve(names.size());
+    bpNames.reserve(baseNames.size());
 
-    for (const auto &name : names)
+    for (const auto &baseName : baseNames)
     {
-        bpNames.push_back(GetBPName(name));
+        bpNames.push_back(lf_GetBPName(baseName, m_BP1Aggregator.m_RankMPI));
     }
     return bpNames;
 }
 
-std::string BP1Base::GetBPName(const std::string &name) const noexcept
-{
-    const std::string baseName = AddExtension(name, ".bp");
-    // opens a file transport under name.bp/name.bp.rank
-    const std::string bpName(baseName + "/" + baseName + "." +
-                             std::to_string(m_BP1Aggregator.m_RankMPI));
-    return bpName;
-}
-
 // PROTECTED
 void BP1Base::InitParameterProfile(const std::string value)
 {
diff --git a/source/adios2/toolkit/format/bp1/BP1Base.h b/source/adios2/toolkit/format/bp1/BP1Base.h
index ee61870c4..3c1158aba 100644
--- a/source/adios2/toolkit/format/bp1/BP1Base.h
+++ b/source/adios2/toolkit/format/bp1/BP1Base.h
@@ -75,7 +75,7 @@ public:
     void InitParameters(const Params &parameters);
 
     /**
-     * Vector version of BPBaseName
+     * Vector version of BPBaseNames
      * @param names
      * @return vector of base (name.bp) names
      */
@@ -83,28 +83,12 @@ public:
     GetBPBaseNames(const std::vector<std::string> &names) const noexcept;
 
     /**
-     * Checks if input name has .bp extension and returns a .bp directory
-     * name
-     * @param name input (might or not have .bp)
-     * @return either name.bp (name has no .bp) or name (name has .bp
-     * extension)
-     */
-    std::string GetBPBaseName(const std::string &name) const noexcept;
-
-    /**
-     * Vector version of GetBPName
-     * @param names
+     * Get BP names from base names
+     * @param names inputs
      * @return
      */
     std::vector<std::string>
-    GetBPNames(const std::vector<std::string> &names) const noexcept;
-
-    /**
-     * Gets the name for bp buffer based on rank
-     * @param name
-     * @return name.bp/name.bp.rank
-     */
-    std::string GetBPName(const std::string &name) const noexcept;
+    GetBPNames(const std::vector<std::string> &baseNames) const noexcept;
 
     /** Return type of the CheckAllocation function. */
     enum class ResizeResult
-- 
GitLab