using System; using System.Runtime.InteropServices; namespace Deltares.MStab.IO.Classic { public static class ClassicSoilFunctionDefinitions { public static bool ClassicGetSoilNameList(int handle, ref SoilNameList aResult) { return GetExternalSoilNameList(handle, ref aResult); } public static bool ClassicSetSoilNameList(int handle, SoilNameList aResult) { return SetExternalSoilNameList(handle, aResult); } public static bool ClassicGetSoilParamList(int handle, ref SoilParamList aResult) { return GetExternalSoilParamList(handle, ref aResult); } public static bool ClassicGetSoilItemByName(int handle, string aSoilName, string aSoilParam, ref double aResult) { return GetExternalSoilItemByName(handle, aSoilName, aSoilParam, ref aResult); } public static bool ClassicSetSoilItemByName(int handle, string aSoilName, string aSoilParam, double aUpdateValue) { return SetExternalSoilItemByName(handle, aSoilName, aSoilParam, aUpdateValue); } public static bool ClassicGetSoilItemString(int handle, string aSoilName, ref SoilParamListString aResult) { return GetExternalSoilItemString(handle, aSoilName, ref aResult); } public static bool ClassicSetSoilItemString(int handle, string aSoilName, SoilParamListString aUpdateValue) { return SetExternalSoilItemString(handle, aSoilName, aUpdateValue); } //SOIL SPECIFIC DLL FUNCTIONS [DllImport(SoilConstants.dgsSerializer)] private static extern bool GetExternalSoilNameList(int aHandle, ref SoilNameList aResult); [DllImport(SoilConstants.dgsSerializer)] private static extern bool SetExternalSoilNameList(int aHandle, SoilNameList aResult); [DllImport(SoilConstants.dgsSerializer)] private static extern bool GetExternalSoilParamList(int aHandle, ref SoilParamList aResult); [DllImport(SoilConstants.dgsSerializer)] private static extern bool GetExternalSoilItemByName(int aHandle, string aSoilName, string aSoilParam, ref double aResult); [DllImport(SoilConstants.dgsSerializer)] private static extern bool SetExternalSoilItemByName(int aHandle, string aSoilName, string aSoilParam, double aUpdateValue); [DllImport(SoilConstants.dgsSerializer)] private static extern bool GetExternalSoilItemString(int aHandle, string aSoilName, ref SoilParamListString aResult); [DllImport(SoilConstants.dgsSerializer)] private static extern bool SetExternalSoilItemString(int aHandle, string aSoilName, SoilParamListString aUpdateValue); #region Nested type: SoilConstants public static class SoilConstants { public const String dgsSerializer = "DGSMStabSerializer.dll"; public const int maxParamNr = 1024; public const int maxSoilGroups = 100; } #endregion #region Nested type: SoilNameList [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 8)] public class SoilNameList { private int dummy; //Reserved. The structure size of a class in delphi differs from c# public int numberOfItems; [MarshalAs(UnmanagedType.ByValArray, SizeConst = SoilConstants.maxSoilGroups)] public string[] soilName; }; #endregion #region Nested type: SoilParamList [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 8)] public class SoilParamList { private int dummy; //Reserved. The structure size of a class in delphi differs from c# public int numberOfItems; [MarshalAs(UnmanagedType.ByValArray, SizeConst = SoilConstants.maxParamNr)] public string[] soilParams; }; #endregion #region Nested type: SoilParamListString [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 8)] public class SoilParamListString { private int Dummy; //Reserved. The structure size of a class in delphi differs from c# public string StressTableName; public string SoilBondStressTableName; }; #endregion } }