Browse Source

Fixed using settings without the 'general' module

tempestpy_adaptions
TimQu 6 years ago
parent
commit
fbb734fbe2
  1. 4
      src/storm/settings/SettingsManager.cpp
  2. 14
      src/storm/settings/SettingsManager.h

4
src/storm/settings/SettingsManager.cpp

@ -34,7 +34,6 @@
#include "storm/settings/modules/ExplorationSettings.h" #include "storm/settings/modules/ExplorationSettings.h"
#include "storm/settings/modules/ResourceSettings.h" #include "storm/settings/modules/ResourceSettings.h"
#include "storm/settings/modules/AbstractionSettings.h" #include "storm/settings/modules/AbstractionSettings.h"
#include "storm/settings/modules/JaniExportSettings.h"
#include "storm/settings/modules/JitBuilderSettings.h" #include "storm/settings/modules/JitBuilderSettings.h"
#include "storm/settings/modules/MultiObjectiveSettings.h" #include "storm/settings/modules/MultiObjectiveSettings.h"
#include "storm/settings/modules/MultiplierSettings.h" #include "storm/settings/modules/MultiplierSettings.h"
@ -138,7 +137,7 @@ namespace storm {
} }
// Include the options from a possibly specified configuration file, but don't overwrite existing settings. // Include the options from a possibly specified configuration file, but don't overwrite existing settings.
if (storm::settings::getModule<storm::settings::modules::GeneralSettings>().isConfigSet()) {
if (storm::settings::hasModule<storm::settings::modules::GeneralSettings>() && storm::settings::getModule<storm::settings::modules::GeneralSettings>().isConfigSet()) {
this->setFromConfigurationFile(storm::settings::getModule<storm::settings::modules::GeneralSettings>().getConfigFilename()); this->setFromConfigurationFile(storm::settings::getModule<storm::settings::modules::GeneralSettings>().getConfigFilename());
} }
@ -546,7 +545,6 @@ namespace storm {
storm::settings::addModule<storm::settings::modules::ExplorationSettings>(); storm::settings::addModule<storm::settings::modules::ExplorationSettings>();
storm::settings::addModule<storm::settings::modules::ResourceSettings>(); storm::settings::addModule<storm::settings::modules::ResourceSettings>();
storm::settings::addModule<storm::settings::modules::AbstractionSettings>(); storm::settings::addModule<storm::settings::modules::AbstractionSettings>();
storm::settings::addModule<storm::settings::modules::JaniExportSettings>();
storm::settings::addModule<storm::settings::modules::JitBuilderSettings>(); storm::settings::addModule<storm::settings::modules::JitBuilderSettings>();
storm::settings::addModule<storm::settings::modules::MultiObjectiveSettings>(); storm::settings::addModule<storm::settings::modules::MultiObjectiveSettings>();
storm::settings::addModule<storm::settings::modules::MultiplierSettings>(); storm::settings::addModule<storm::settings::modules::MultiplierSettings>();

14
src/storm/settings/SettingsManager.h

@ -270,6 +270,20 @@ namespace storm {
return dynamic_cast<SettingsType const&>(manager().getModule(SettingsType::moduleName)); return dynamic_cast<SettingsType const&>(manager().getModule(SettingsType::moduleName));
} }
/*!
* Returns true if the given module is registered.
*
*/
template<typename SettingsType>
bool hasModule() {
static_assert(std::is_base_of<storm::settings::modules::ModuleSettings, SettingsType>::value, "Template argument must be derived from ModuleSettings");
if (manager().hasModule(SettingsType::moduleName)) {
return dynamic_cast<SettingsType const*>(&(manager().getModule(SettingsType::moduleName))) != nullptr;
}
return false;
}
/*! /*!
* Retrieves the core settings in a mutable form. This is only meant to be used for debug purposes or very * Retrieves the core settings in a mutable form. This is only meant to be used for debug purposes or very
* rare cases where it is necessary. * rare cases where it is necessary.

Loading…
Cancel
Save