Skip to content
Snippets Groups Projects
Commit 584da6da authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

MinimizerCatalogue gives more access to its content.

parent fa0af27a
No related branches found
No related tags found
No related merge requests found
......@@ -39,15 +39,24 @@ std::string MinimizerCatalogue::toString() const
result << boost::format("%-15s|%-65s\n") % "Minimizer" % " Algorithms";
result << std::string(text_width, '-') << "\n";
for(MinimizerInfo minimizer : m_minimizers) {
for(const auto& ingo : m_minimizers) {
result << boost::format("%-15s| %-64s\n")
% minimizer.name()
% MinimizerUtils::toString(minimizer.algorithmNames(), std::string(" "));
% ingo.name()
% MinimizerUtils::toString(ingo.algorithmNames(), std::string(" "));
}
return result.str();
}
std::vector<std::string> MinimizerCatalogue::minimizerNames() const
{
std::vector<std::string> result;
for(const auto& info : m_minimizers)
result.push_back(info.name());
return result;
}
//! Returns list of algorithms defined for the minimizer with a given name.
std::vector<std::string> MinimizerCatalogue::algorithmNames(const std::string& minimizerName) const
......@@ -65,9 +74,9 @@ std::vector<std::string> MinimizerCatalogue::algorithmDescriptions(
//! Returns info for minimizer with given name.
MinimizerInfo MinimizerCatalogue::minimizerInfo(const std::string& minimizerName) const
const MinimizerInfo& MinimizerCatalogue::minimizerInfo(const std::string& minimizerName) const
{
for(auto info : m_minimizers)
for(const auto& info : m_minimizers)
if(info.name() == minimizerName)
return info;
......
......@@ -41,12 +41,14 @@ public:
std::string toString() const;
std::vector<std::string> minimizerNames() const;
std::vector<std::string> algorithmNames(const std::string& minimizerName) const;
std::vector<std::string> algorithmDescriptions(const std::string& minimizerName) const;
const MinimizerInfo& minimizerInfo(const std::string& minimizerName) const;
private:
MinimizerInfo minimizerInfo(const std::string& minimizerName) const;
void addMinimizerInfo(const MinimizerInfo& info);
std::vector<MinimizerInfo> m_minimizers;
......
......@@ -26,7 +26,7 @@ MinimizerInfo::MinimizerInfo(const std::string& minimizerType,
void MinimizerInfo::setAlgorithmName(const std::string& algorithmName)
{
for (const AlgorithmInfo algo : m_algorithms) {
for (const AlgorithmInfo& algo : m_algorithms) {
if(algo.name() == algorithmName) {
m_current_algorithm = algorithmName;
return;
......@@ -36,7 +36,7 @@ void MinimizerInfo::setAlgorithmName(const std::string& algorithmName)
std::ostringstream msg;
msg << "MinimizerInfo::setAlgorithmName() -> Error. Algorithm name '" << algorithmName
<<"' is not in the list of defined algorithms (";
for (const AlgorithmInfo algo : m_algorithms)
for (const AlgorithmInfo& algo : m_algorithms)
msg << algo.name() << " ";
msg << ")";
throw std::runtime_error(msg.str());
......@@ -52,7 +52,7 @@ std::string MinimizerInfo::algorithmName() const
std::vector<std::string> MinimizerInfo::algorithmNames() const
{
std::vector<std::string> result;
for (const AlgorithmInfo algo : m_algorithms)
for (const AlgorithmInfo& algo : m_algorithms)
result.push_back(algo.name());
return result;
}
......@@ -62,7 +62,7 @@ std::vector<std::string> MinimizerInfo::algorithmNames() const
std::vector<std::string> MinimizerInfo::algorithmDescriptions() const
{
std::vector<std::string> result;
for (const AlgorithmInfo algo : m_algorithms)
for (const AlgorithmInfo& algo : m_algorithms)
result.push_back(algo.description());
return result;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment