Program Listing for File ModuleLoader.cpp¶
↰ Return to documentation for file (src/ModuleLoader.cpp)
#include "include/ModuleLoader.hpp"
#include <memory>
#include <stdexcept>
#include "moduleLoaderHeaders.ipp"
#include "moduleLoaderFunctions.ipp"
void throwup(const std::string& module, const std::string& impl)
{
std::string what = "ModuleLoader::init(): Module ";
what += module + " does not have an implementation named " + impl;
throw std::invalid_argument(what);
}
void ModuleLoader::init()
{
#include "moduleLoaderNames.ipp"
if (!isInit) {
// Set of all defined interfaces
for (const auto& element : m_availableImplementationNames) {
m_modules.insert(element.first);
}
isInit = true;
}
}
void ModuleLoader::init(const VariablesMap& map)
{
init();
// Load the named implementations from the provided map
for (const auto& i : map) {
setImplementation(i.first, i.second);
}
}
void ModuleLoader::setImplementation(const std::string& module, const std::string& impl)
{
#include "moduleLoaderAssignments.ipp"
}