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);
}
}