You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
2.8 KiB
46 lines
2.8 KiB
#include "storm/settings/modules/ResourceSettings.h"
|
|
|
|
#include "storm/settings/SettingsManager.h"
|
|
#include "storm/settings/Option.h"
|
|
#include "storm/settings/OptionBuilder.h"
|
|
#include "storm/settings/ArgumentBuilder.h"
|
|
#include "storm/settings/Argument.h"
|
|
|
|
namespace storm {
|
|
namespace settings {
|
|
namespace modules {
|
|
|
|
const std::string ResourceSettings::moduleName = "resources";
|
|
const std::string ResourceSettings::timeoutOptionName = "timeout";
|
|
const std::string ResourceSettings::timeoutOptionShortName = "t";
|
|
const std::string ResourceSettings::printTimeAndMemoryOptionName = "timemem";
|
|
const std::string ResourceSettings::printTimeAndMemoryOptionShortName = "tm";
|
|
const std::string ResourceSettings::signalWaitingTimeOptionName = "signal-timeout";
|
|
|
|
ResourceSettings::ResourceSettings() : ModuleSettings(moduleName) {
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, timeoutOptionName, false, "If given, computation will abort after the timeout has been reached.").setIsAdvanced().setShortName(timeoutOptionShortName)
|
|
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("time", "Seconds after which to timeout.").setDefaultValueUnsignedInteger(0).build()).build());
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, printTimeAndMemoryOptionName, false, "Prints CPU time and memory consumption at the end.").setShortName(printTimeAndMemoryOptionShortName).build());
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, signalWaitingTimeOptionName, false, "Specifies how much time can pass until termination when receiving a termination signal.").setIsAdvanced()
|
|
.addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("time", "Seconds after which to exit the program.").setDefaultValueUnsignedInteger(3).build()).build());
|
|
}
|
|
|
|
bool ResourceSettings::isTimeoutSet() const {
|
|
return this->getOption(timeoutOptionName).getHasOptionBeenSet();
|
|
}
|
|
|
|
uint_fast64_t ResourceSettings::getTimeoutInSeconds() const {
|
|
return this->getOption(timeoutOptionName).getArgumentByName("time").getValueAsUnsignedInteger();
|
|
}
|
|
|
|
bool ResourceSettings::isPrintTimeAndMemorySet() const {
|
|
return this->getOption(printTimeAndMemoryOptionName).getHasOptionBeenSet();
|
|
}
|
|
|
|
uint_fast64_t ResourceSettings::getSignalWaitingTimeInSeconds() const {
|
|
return this->getOption(signalWaitingTimeOptionName).getArgumentByName("time").getValueAsUnsignedInteger();
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|