Esempio n. 1
0
        private void CsharpApiToCApiType(StringBuilder sb, string typename, string varname)
        {
            // SWIFT_API CONSTRAINT_PARAMETERIZER_PTR CreateMuskingumConstraint(HYPERCUBE_PTR hypercubeParameterizer, double deltaT, const char* paramNameK, const char* paramNameX, MODEL_SIMULATION_PTR simulation);
            //public static INativeParameterizer CreateMuskingumConstraint_cs(INativeParameterizer parameterizer, double deltaT, string paramNameK, string paramNameX, IModelSimulation simulation)
            //{
            //    IntPtr p = MsDotnetNativeApi.NativeSwiftLib.GetFunction<CreateMuskingumConstraint_csdelegate>("CreateMuskingumConstraint")
            //            (parameterizer.GetHandle(), deltaT, paramNameK, paramNameX, (simulation == null ? IntPtr.Zero : simulation.GetHandle()));
            //    return createParamaterizerWrapper(p);
            //}

            // If this is a pointer, take precedence on known types.\

            TransientArgumentConversion t = FindTransientArgConversion(typename, varname);

            if (t != null)
            {
                sb.Append(t.LocalVarname);
            }
            else if (IsPointer(typename)) // HYPERCUBE_PTR
            {
                ConvertIntPtrToCapi(sb, typename, varname);
            }
            else if (IsKnownType(typename))
            {
                sb.Append(AddAs(typename, varname));
            }
            else
            {
                sb.Append(varname);
            }
        }
        public string CleanupTransientApiArgument(TypeAndName typeAndName)
        {
            TransientArgumentConversion t = FindTransientArgConversion(typeAndName);

            if (t == null)
            {
                return(string.Empty);
            }
            return(t.LocalVarCleanup);
        }