// Copyright (C) Stichting Deltares 2016. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using System.ComponentModel; using System.IO; using System.Security; using Ringtoets.HydraRing.Calculation.Data.Input; using Ringtoets.HydraRing.Calculation.Data.Input.Hydraulics; using Ringtoets.HydraRing.Calculation.Exceptions; namespace Ringtoets.HydraRing.Calculation.Calculator { /// /// Interface for a calculator which calculates the water level associated to the result of iterating towards a /// probability of failure given a norm. /// public interface IDesignWaterLevelCalculator { /// /// Gets the water level at a location. /// double DesignWaterLevel { get; } /// /// Gets the reliability index /// double ReliabilityIndex { get; } /// /// Gets the temporary output directory that is generated during the Hydra-Ring calculation. /// string OutputDirectory { get; } /// /// Gets the content of the last error file generated during the Hydra-Ring calculation. /// string LastErrorFileContent { get; } /// /// Performs the actual calculation by running the Hydra-Ring executable. /// /// The which contains all the necessary input /// for the calculation. /// Thrown when the temporary path can't be accessed due to missing permissions. /// Thrown when the specified path is not valid or the network name is not known /// or an I/O error occurred while opening the file /// Thrown when the directory can't be created due to missing /// the required persmissions. /// Thrown when is not unique. /// Thrown when /// is not the same with already added input. /// Thrown when there was an error in opening the associated file /// or the wait setting could not be accessed. /// Thrown when the process object has already been disposed. /// Thrown when the HydraRing file parser /// encounters an error while parsing HydraRing output. void Calculate(AssessmentLevelCalculationInput input); /// /// Cancels any currently running Hydra-Ring calculation. /// void Cancel(); } }