From 380889a21cfc33a1d321643cb31a3c00675094bc Mon Sep 17 00:00:00 2001 From: Ruonan Wang Date: Tue, 24 Sep 2019 01:48:41 -0400 Subject: [PATCH] added helper::StringToDims --- source/adios2/helper/adiosString.cpp | 19 +++++++++++++++++++ source/adios2/helper/adiosString.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/source/adios2/helper/adiosString.cpp b/source/adios2/helper/adiosString.cpp index a2bbecb635..36e0b8d640 100644 --- a/source/adios2/helper/adiosString.cpp +++ b/source/adios2/helper/adiosString.cpp @@ -274,6 +274,25 @@ std::string DimsToString(const Dims &dimensions) return dimensionsString; } +Dims StringToDims(const std::string &dimentions) +{ + std::vector shape; + size_t begin = 0; + for (size_t end = 0; end < dimentions.size(); ++end) + { + if (dimentions[end] == ',') + { + std::string s(dimentions, begin, end - begin); + shape.push_back(stoull(s)); + begin = end + 1; + end = begin; + } + } + std::string s(dimentions, begin, dimentions.size() - begin); + shape.push_back(stoull(s)); + return shape; +} + std::string GlobalName(const std::string &localName, const std::string &prefix, const std::string separator) noexcept { diff --git a/source/adios2/helper/adiosString.h b/source/adios2/helper/adiosString.h index 3df2e6e8ba..c6dd64ee1b 100644 --- a/source/adios2/helper/adiosString.h +++ b/source/adios2/helper/adiosString.h @@ -120,6 +120,8 @@ void SetParameterValue(const std::string key, const Params ¶meters, */ std::string DimsToString(const Dims &dimensions); +Dims StringToDims(const std::string &dimentions); + /** * Sets global name: prefix + separator + localName. If prefix is empty it * returns the localName as-is.