using System; namespace DeltaShell.Plugins.XBeach.Api { public interface IXBeachApi : IDisposable { void Initialize(string workingDirectory); CurvilinearGrid Grid { get; set; } double[] Get1DDoubleOutputArray(string name); double[] GetDoubleOutputArray(string name); void SetDoubleOutputArray(double[] array, string name); /// /// TODO: refactor it to be a method, since it always returns a new object, or always return the same instance /// double[] Bathymetry { get; set;} DateTime StartTime { get; } DateTime CurrentTime { get; } DateTime StopTime { get; } TimeSpan OutputTimeStep { get; } void ExecuteStep(); void WriteOutput(); /// /// Dynamic access to the XBeach model paramater names. /// /// string[] GetParameterNames(); /// /// Dynamic access to the XBeach model paramater types. /// /// Type GetParameterType(string name); /// /// Dynamic access to the XBeach model paramater values. /// /// double GetDoubleParameter(string name); /// /// Dynamic access to the XBeach model paramater values. /// /// int GetIntParameter(string name); } }