namespace Deltares.Piping.Data { using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; // PCRing public delegate int PCR_Model2CalculateHeadDrop(ref RingDataStruct PCRingData, int Count, ref double HeadDrop); public delegate void PCR_Model2ClearDebugFlag(); public delegate void PCR_Model2SetDebugFlag(); public delegate void PCR_Model2SetDebugFile(string FileName); // PC2 public delegate IntPtr PC2_Model2CreateHandle(); public delegate void PC2_Model2SetSoilProperties(IntPtr CalcHandle, SoilPropertiesStruct PCSoilProperties); public delegate void PC2_Model2SetWaterProperties(IntPtr CalcHandle, WaterPropertiesStruct PCWaterProperties); public delegate void PC2_Model2SetCrackLength(IntPtr CalcHandle, double CrackLength); public delegate void PC2_Model2SetHeadDrop(IntPtr CalcHandle, double HeadDrop); public delegate void PC2_Model2SetSeepageLength(IntPtr CalcHandle, double SeepageLength); public delegate void PC2_Model2SetHeights(IntPtr CalcHandle, int HeightCount, double[] Height); public delegate void PC2_Model2SetPermeabilities(IntPtr CalcHandle, int PermeabilityCount, double[] Permeability); public delegate void PC2_Model2SetCalculationParameters(IntPtr CalcHandle, CalculationParametersStruct PCCalculationParameters); public delegate double PC2_Model2GetHeadDrop(IntPtr CalcHandle); public delegate double PC2_Model2GetSeepageLength(IntPtr CalcHandle); public delegate void PC2_Model2Calculate(IntPtr CalcHandle); public delegate string PC2_Model2GetCalculationMessages(IntPtr CalcHandle); public delegate void PC2_Model2DestroyHandle(IntPtr CalcHandle); // Start probabilistic public delegate void PC2_Model2CalculateProbabilistic(IntPtr CalcHandle); public delegate void PC2_Model2SetProbabilisticSoilProperties(IntPtr CalcHandle, ProbabilisticSoilPropertiesStruct PCProbabilisticSoilPropertiesStruct); public delegate void PC2_Model2SetProbabilisticGeometryProperties(IntPtr CalcHandle, ProbabilisticGeometryPropertiesStruct PCProbabilisticGeometryPropertiesStruct); public delegate double PC2_Model2GetReliabilityIndex(IntPtr CalcHandle); // End probabilistic public class PipingCalc2Dll { private const string CMPipingCalcVNK = @"CalcDlls\MPipingCalc2.dll"; //private const string CMPipingCalcVNK = @"d:\DelphiWin32Projects\trunk\sources\MPipingCalc\Install Version\MPipingCalc2.dll"; // PCRing [DllImport(CMPipingCalcVNK)] private static extern int PCR_CalcHeadDrop(ref RingDataStruct PCRingData, int Count, ref double HeadDrop); [DllImport(CMPipingCalcVNK)] private static extern void PCR_ClearDebugFlag(); [DllImport(CMPipingCalcVNK)] private static extern void PCR_SetDebugFlag(); [DllImport(CMPipingCalcVNK)] private static extern void PCR_SetDebugFile([MarshalAs(UnmanagedType.LPStr)]String FileName); // PC2 [DllImport(CMPipingCalcVNK)] private static extern IntPtr PC2_CreateHandle(); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetSoilProperties(IntPtr CalcHandle, SoilPropertiesStruct PCSoilProperties); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetWaterProperties(IntPtr CalcHandle, WaterPropertiesStruct PCWaterProperties); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetCrackLength(IntPtr CalcHandle, double CrackLength); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetHeadDrop(IntPtr CalcHandle, double HeadDrop); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetSeepageLength(IntPtr CalcHandle, double SeepageLength); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetHeights(IntPtr CalcHandle, int HeightCount, [MarshalAs(UnmanagedType.LPArray)] double[] Height); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetPermeabilities(IntPtr CalcHandle, int PermeabilityCount, [MarshalAs(UnmanagedType.LPArray)] double[] Permeability); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetCalculationParameters(IntPtr CalcHandle, CalculationParametersStruct PCCalculationParameters); [DllImport(CMPipingCalcVNK)] private static extern double PC2_GetHeadDrop(IntPtr CalcHandle); [DllImport(CMPipingCalcVNK)] private static extern double PC2_GetSeepageLength(IntPtr CalcHandle); [DllImport(CMPipingCalcVNK)] private static extern void PC2_Calculate(IntPtr CalcHandle); [DllImport(CMPipingCalcVNK)] [return: MarshalAs(UnmanagedType.LPStr)] private static extern string PC2_GetCalculationMessages(IntPtr CalcHandle); [DllImport(CMPipingCalcVNK)] private static extern void PC2_DestroyHandle(IntPtr CalcHandle); // Start probabilistic [DllImport(CMPipingCalcVNK)] private static extern void PC2_CalculateProbabilistic(IntPtr CalcHandle); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetProbabilisticSoilProperties(IntPtr CalcHandle, ProbabilisticSoilPropertiesStruct PCProbabilisticSoilPropertiesStruct); [DllImport(CMPipingCalcVNK)] private static extern void PC2_SetProbabilisticGeometryProperties(IntPtr CalcHandle, ProbabilisticGeometryPropertiesStruct PCProbabilisticGeometryPropertiesStruct); [DllImport(CMPipingCalcVNK)] private static extern double PC2_GetReliabilityIndex(IntPtr CalcHandle); // End probabilistic // PCRing public static PCR_Model2CalculateHeadDrop Model2PCRCalculateHeadDrop = null; public static PCR_Model2ClearDebugFlag Model2PCRClearDebugFlag = null; public static PCR_Model2SetDebugFlag Model2PCRSetDebugFlag = null; public static PCR_Model2SetDebugFile Model2PCRSetDebugFile = null; // PC2 public static PC2_Model2Calculate Model2PC2Calculate = null; public static PC2_Model2CreateHandle Model2PC2CreateHandle = null; public static PC2_Model2DestroyHandle Model2PC2DestroyHandle = null; public static PC2_Model2GetHeadDrop Model2PC2GetHeadDrop = null; public static PC2_Model2GetSeepageLength Model2PC2GetSeepageLength = null; public static PC2_Model2SetCalculationParameters Model2PC2SetCalculationParameters = null; public static PC2_Model2SetCrackLength Model2PC2SetCrackLength = null; public static PC2_Model2SetHeadDrop Model2PC2SetHeadDrop = null; public static PC2_Model2SetHeights Model2PC2SetHeights = null; public static PC2_Model2SetPermeabilities Model2PC2SetPermeabilities = null; public static PC2_Model2SetSeepageLength Model2PC2SetSeepageLength = null; public static PC2_Model2SetSoilProperties Model2PC2SetSoilProperties = null; public static PC2_Model2SetWaterProperties Model2PC2SetWaterProperties = null; public static PC2_Model2GetCalculationMessages Model2PC2GetCalculationMessages = null; // Start probabilistic public static PC2_Model2CalculateProbabilistic Model2CalculateProbabilistic = null; public static PC2_Model2SetProbabilisticSoilProperties Model2SetProbabilisticSoilProperties = null; public static PC2_Model2SetProbabilisticGeometryProperties Model2SetProbabilisticGeometryProperties = null; public static PC2_Model2GetReliabilityIndex Model2GetReliabilityIndex = null; // End probabilistic static PipingCalc2Dll() { // PCRing Model2PCRClearDebugFlag = new PCR_Model2ClearDebugFlag(PCR_ClearDebugFlag); Model2PCRCalculateHeadDrop = new PCR_Model2CalculateHeadDrop(PCR_CalcHeadDrop); Model2PCRSetDebugFlag = new PCR_Model2SetDebugFlag(PCR_SetDebugFlag); Model2PCRSetDebugFile = new PCR_Model2SetDebugFile(PCR_SetDebugFile); // PC2 Model2PC2Calculate = new PC2_Model2Calculate(PC2_Calculate); Model2PC2CreateHandle = new PC2_Model2CreateHandle(PC2_CreateHandle); Model2PC2DestroyHandle = new PC2_Model2DestroyHandle(PC2_DestroyHandle); Model2PC2GetCalculationMessages = new PC2_Model2GetCalculationMessages(PC2_GetCalculationMessages); Model2PC2GetHeadDrop = new PC2_Model2GetHeadDrop(PC2_GetHeadDrop); Model2PC2GetSeepageLength = new PC2_Model2GetSeepageLength(PC2_GetSeepageLength); Model2PC2SetCalculationParameters = new PC2_Model2SetCalculationParameters(PC2_SetCalculationParameters); Model2PC2SetCrackLength = new PC2_Model2SetCrackLength(PC2_SetCrackLength); Model2PC2SetHeadDrop = new PC2_Model2SetHeadDrop(PC2_SetHeadDrop); Model2PC2SetHeights = new PC2_Model2SetHeights(PC2_SetHeights); Model2PC2SetPermeabilities = new PC2_Model2SetPermeabilities(PC2_SetPermeabilities); Model2PC2SetSeepageLength = new PC2_Model2SetSeepageLength(PC2_SetSeepageLength); Model2PC2SetSoilProperties = new PC2_Model2SetSoilProperties(PC2_SetSoilProperties); Model2PC2SetWaterProperties = new PC2_Model2SetWaterProperties(PC2_SetWaterProperties); // Start probabilistic Model2CalculateProbabilistic = new PC2_Model2CalculateProbabilistic(PC2_CalculateProbabilistic); Model2SetProbabilisticSoilProperties = new PC2_Model2SetProbabilisticSoilProperties(PC2_SetProbabilisticSoilProperties); Model2SetProbabilisticGeometryProperties = new PC2_Model2SetProbabilisticGeometryProperties(PC2_SetProbabilisticGeometryProperties); Model2GetReliabilityIndex = new PC2_Model2GetReliabilityIndex(PC2_GetReliabilityIndex); // End probabilistic } } }