Skip to content
Snippets Groups Projects
Commit c287da7c authored by Martin Christoph Hierholzer's avatar Martin Christoph Hierholzer
Browse files

ConfigReader: add HierarchyModifier argument to constructor (optional)

parent 36933123
No related branches found
No related tags found
No related merge requests found
......@@ -114,8 +114,12 @@ namespace ChimeraTK {
*/
struct ConfigReader : ApplicationModule {
ConfigReader(EntityOwner* owner, const std::string& name, const std::string& fileName,
HierarchyModifier hierarchyModifier = HierarchyModifier::none,
const std::unordered_set<std::string>& tags = {});
ConfigReader(EntityOwner* owner, const std::string& name, const std::string& fileName,
const std::unordered_set<std::string>& tags);
~ConfigReader() override;
void mainLoop() override {}
void prepare() override;
......@@ -128,6 +132,9 @@ namespace ChimeraTK {
const T& get(const std::string& variableName) const;
protected:
/** Helper function to avoid code duplication in constructors **/
void construct(const std::string& fileName);
/** File name */
std::string _fileName;
......
......@@ -240,10 +240,25 @@ namespace ChimeraTK {
/*********************************************************************************************************************/
ConfigReader::ConfigReader(EntityOwner* owner, const std::string& name, const std::string& fileName,
HierarchyModifier hierarchyModifier, const std::unordered_set<std::string>& tags)
: ApplicationModule(owner, name, "Configuration read from file '" + fileName + "'", hierarchyModifier, tags),
_fileName(fileName), _moduleList(std::make_unique<ModuleList>(this)) {
construct(fileName);
}
/*********************************************************************************************************************/
ConfigReader::ConfigReader(EntityOwner* owner, const std::string& name, const std::string& fileName,
const std::unordered_set<std::string>& tags)
: ApplicationModule(owner, name, "Configuration read from file '" + fileName + "'", false, tags), _fileName(fileName),
_moduleList(std::make_unique<ModuleList>(this)) {
: ApplicationModule(owner, name, "Configuration read from file '" + fileName + "'", HierarchyModifier::none, tags),
_fileName(fileName), _moduleList(std::make_unique<ModuleList>(this)) {
construct(fileName);
}
/*********************************************************************************************************************/
void ConfigReader::construct(const std::string& fileName) {
auto fillVariableMap = [this](const Variable& var) {
bool processed{false};
boost::fusion::for_each(variableMap.table, FunctorFill(this, var.type, var.name, var.value, processed));
......
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