7 changed files with 232 additions and 116 deletions
			
			
		- 
					8src/storm-dft-cli/storm-dft.cpp
 - 
					9src/storm-dft/api/storm-dft.cpp
 - 
					2src/storm-dft/settings/DftSettings.cpp
 - 
					52src/storm-dft/settings/modules/DftGspnSettings.cpp
 - 
					58src/storm-dft/settings/modules/DftGspnSettings.h
 - 
					33src/storm-dft/settings/modules/DftIOSettings.cpp
 - 
					8src/storm-dft/settings/modules/DftIOSettings.h
 
@ -0,0 +1,52 @@ | 
			
		|||||
 | 
				#include "DftGspnSettings.h"
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				#include "storm/settings/SettingsManager.h"
 | 
			
		||||
 | 
				#include "storm/settings/SettingMemento.h"
 | 
			
		||||
 | 
				#include "storm/settings/Option.h"
 | 
			
		||||
 | 
				#include "storm/settings/OptionBuilder.h"
 | 
			
		||||
 | 
				#include "storm/settings/ArgumentBuilder.h"
 | 
			
		||||
 | 
				#include "storm/settings/Argument.h"
 | 
			
		||||
 | 
				#include "storm/exceptions/InvalidSettingsException.h"
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace storm { | 
			
		||||
 | 
				    namespace settings { | 
			
		||||
 | 
				        namespace modules { | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            const std::string DftGspnSettings::moduleName = "dftGspn"; | 
			
		||||
 | 
				            const std::string DftGspnSettings::transformToGspnOptionName = "to-gspn"; | 
			
		||||
 | 
				            const std::string DftGspnSettings::disableSmartTransformationOptionName = "disable-smart"; | 
			
		||||
 | 
				            const std::string DftGspnSettings::mergeDCFailedOptionName = "merge-dc-failed"; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            DftGspnSettings::DftGspnSettings() : ModuleSettings(moduleName) { | 
			
		||||
 | 
				                this->addOption(storm::settings::OptionBuilder(moduleName, transformToGspnOptionName, false, "Transform DFT to GSPN.").build()); | 
			
		||||
 | 
				                this->addOption(storm::settings::OptionBuilder(moduleName, disableSmartTransformationOptionName, false, "Disable smart transformation.").build()); | 
			
		||||
 | 
				                this->addOption(storm::settings::OptionBuilder(moduleName, mergeDCFailedOptionName, false, "Enable merging of Don't Care and Failed places into a combined place.").build()); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            bool DftGspnSettings::isTransformToGspn() const { | 
			
		||||
 | 
				                return this->getOption(transformToGspnOptionName).getHasOptionBeenSet(); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            bool DftGspnSettings::isDisableSmartTransformation() const { | 
			
		||||
 | 
				                return this->getOption(disableSmartTransformationOptionName).getHasOptionBeenSet(); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            bool DftGspnSettings::isMergeDCFailed() const { | 
			
		||||
 | 
				                return this->getOption(mergeDCFailedOptionName).getHasOptionBeenSet(); | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            void DftGspnSettings::finalize() { | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            bool DftGspnSettings::check() const { | 
			
		||||
 | 
				                // Ensure that GSPN option is set if other options are set.
 | 
			
		||||
 | 
				                STORM_LOG_THROW(isTransformToGspn() || (!isDisableSmartTransformation() && !isMergeDCFailed()), storm::exceptions::InvalidSettingsException, | 
			
		||||
 | 
				                                "GSPN transformation should be enabled when giving options for the transformation."); | 
			
		||||
 | 
				                return true; | 
			
		||||
 | 
				            } | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        } // namespace modules
 | 
			
		||||
 | 
				    } // namespace settings
 | 
			
		||||
 | 
				} // namespace storm
 | 
			
		||||
 | 
				
 | 
			
		||||
@ -0,0 +1,58 @@ | 
			
		|||||
 | 
				#pragma once | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				#include "storm/settings/modules/ModuleSettings.h" | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				namespace storm { | 
			
		||||
 | 
				    namespace settings { | 
			
		||||
 | 
				        namespace modules { | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            /*! | 
			
		||||
 | 
				             * This class represents the settings for operations concerning the DFT to GSPN transformation. | 
			
		||||
 | 
				             */ | 
			
		||||
 | 
				            class DftGspnSettings : public ModuleSettings { | 
			
		||||
 | 
				            public: | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                /*! | 
			
		||||
 | 
				                 * Creates a new set of DFT-GSPN settings. | 
			
		||||
 | 
				                 */ | 
			
		||||
 | 
				                DftGspnSettings(); | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                /*! | 
			
		||||
 | 
				                 * Retrieves whether the DFT should be transformed into a GSPN. | 
			
		||||
 | 
				                 * | 
			
		||||
 | 
				                 * @return True iff the option was set. | 
			
		||||
 | 
				                 */ | 
			
		||||
 | 
				                bool isTransformToGspn() const; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                /*! | 
			
		||||
 | 
				                 * Retrieves whether the smart transformation should be disabled. | 
			
		||||
 | 
				                 * | 
			
		||||
 | 
				                 * @return True if the smart transformation should be disabled. | 
			
		||||
 | 
				                 */ | 
			
		||||
 | 
				                bool isDisableSmartTransformation() const; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                /*! | 
			
		||||
 | 
				                 * Retrieves whether the DC and failed place should be merged. | 
			
		||||
 | 
				                 * | 
			
		||||
 | 
				                 * @return True if the merge of DC and failed place is enabled. | 
			
		||||
 | 
				                 */ | 
			
		||||
 | 
				                bool isMergeDCFailed() const; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                bool check() const override; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                void finalize() override; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				                // The name of the module. | 
			
		||||
 | 
				                static const std::string moduleName; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            private: | 
			
		||||
 | 
				                // Define the string names of the options as constants. | 
			
		||||
 | 
				                static const std::string transformToGspnOptionName; | 
			
		||||
 | 
				                static const std::string disableSmartTransformationOptionName; | 
			
		||||
 | 
				                static const std::string mergeDCFailedOptionName; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				            }; | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				        } // namespace modules | 
			
		||||
 | 
				    } // namespace settings | 
			
		||||
 | 
				} // namespace storm | 
			
		||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue