Skip to content

Commit 9383218

Browse files
committed
added some convenience functions for checking existance of config files and sections in bundle
1 parent ac910e4 commit 9383218

File tree

4 files changed

+23
-6
lines changed

4 files changed

+23
-6
lines changed

src/Bundle.cpp

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,11 @@ std::string Bundle::getConfigurationPath(const std::string &task)
437437
}
438438
}
439439

440+
const bool Bundle::hasConfigForTask(const std::string &taskModelName) const
441+
{
442+
return taskConfigurations.hasConfigForTask(taskModelName);
443+
}
444+
440445
std::string Bundle::getLogDirectory()
441446
{
442447
if(currentLogDir.empty()){
@@ -627,12 +632,15 @@ Configuration TaskConfigurations::getConfig(const std::string &taskModelName,
627632

628633
const MultiSectionConfiguration &TaskConfigurations::getMultiConfig(const std::string &taskModelName) const
629634
{
630-
631-
auto cfgIt = taskConfigurations.find( taskModelName );
632-
633-
if ( cfgIt == taskConfigurations.end() ) {
635+
if(hasConfigForTask(taskModelName)){
636+
return taskConfigurations.at(taskModelName);
637+
}
638+
else{
634639
throw std::out_of_range("No task configuration for task model name " + taskModelName + " found.");
635640
}
636-
637-
return cfgIt->second;
641+
}
642+
643+
const bool TaskConfigurations::hasConfigForTask(const std::string &taskModelName) const
644+
{
645+
return taskConfigurations.find( taskModelName ) != taskConfigurations.end();
638646
}

src/Bundle.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class TaskConfigurations{
5252
Configuration getConfig (const std::string& taskModelName,
5353
const std::vector<std::string>& sections) const;
5454
const MultiSectionConfiguration& getMultiConfig(const std::string& taskModelName) const;
55+
const bool hasConfigForTask(const std::string& taskModelName) const;
5556
};
5657

5758
// Represents a bundle with all its bundles it depends on
@@ -170,6 +171,8 @@ class Bundle
170171
* since include bundle dependencies}
171172
* */
172173
std::string getConfigurationPath(const std::string &task);
174+
175+
const bool hasConfigForTask(const std::string& taskModelName) const;
173176

174177
/**
175178
* Returns the path to the directory

src/Configuration.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,5 +576,10 @@ const std::map<std::string, Configuration> &MultiSectionConfiguration::getSubsec
576576
{
577577
return subsections;
578578
}
579+
580+
const bool MultiSectionConfiguration::hasConfigSection(const std::string &section_name) const
581+
{
582+
return subsections.find(section_name) != subsections.end();
583+
}
579584
}
580585

src/Configuration.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ class MultiSectionConfiguration
145145
bool mergeConfigFile(const MultiSectionConfiguration& lowerPriorityFile);
146146
std::string taskModelName;
147147
const std::map<std::string, Configuration>& getSubsections() const;
148+
const bool hasConfigSection(const std::string& section_name) const;
148149
protected:
149150
//Maps a configuration subsection name to Configuration
150151
std::map<std::string, Configuration> subsections;

0 commit comments

Comments
 (0)