diff --git a/source/adios2/engine/bp/BPFileWriter.cpp b/source/adios2/engine/bp/BPFileWriter.cpp index 3d1e2fe74267d233c80437f3badf42d5f134c139..2c5bb3460c1d6f0fa261bd91d954ee2d85af4514 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 9248115d4b77562ec0338bacc1639c010e628cb1..1f71985855c4beb6fb7a08d730b0bacef3b28967 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 ¶meters) 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 ee61870c4b4e3e75f0efdf9ff5037bdd7191d6c1..3c1158abaebe3361f85e80ba3d4b4d071837e842 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 ¶meters); /** - * 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