Exemplo n.º 1
0
        object TransformData(IFreeDocument datas)
        {
            var p = datas[Column];

            if (p == null)
            {
                return(new List <FreeDocument>());
            }
            var url      = p.ToString();
            var response = helper.GetHtml(Crawler.Http, url).Result;

            var content        = response.Html;
            var code           = response.Code;
            var responseHeader = response.ResponseHeaders;
            var keys           = responseHeader.AllKeys;

            if (!string.IsNullOrEmpty(HeaderFilter))
            {
                keys = HeaderFilter.Split(' ');
            }
            foreach (var key in keys)
            {
                var value = responseHeader.Get(key);
                if (value != null)
                {
                    datas.SetValue(key, value);
                }
            }
            if (keys.Contains("Location") && datas.ContainsKey("Location") == false)
            {
                datas["Location"] = url;
            }

            return(null);
        }
Exemplo n.º 2
0
        public void NetworkInfo()
        {
            HeaderFilter filter = new HeaderFilter();
            var          gen    = new CsharpApiWrapperGenerator();

            //string apiLine = "SWIFT_API MODEL_SIMULATION_PTR CreateNewFromNetworkInfo(NODE_INFO_PTR nodes, int numNodes, LINK_INFO_PTR links, int numLinks);";
        }
        public void FunctionReturnsValueFormattingCppGlue()
        {
            string apiLine = @"SWIFT_API int ApiFun();";

            HeaderFilter filter = new HeaderFilter();
            var          gen    = new RcppGlueWrapperGenerator();

            gen.UniformIndentationCount = 2;
            gen.Indentation             = "    ";
            gen.FunctionNamePostfix     = "_RcppPostfix";
            string[] expectedLines =
            {
                "        // [[Rcpp::export]]",
                "        IntegerVector ApiFun_RcppPostfix()",
                "        {",
                "            auto result = ApiFun();",
                "            auto x = Rcpp::wrap(result);",
                "            return x;",
                "        }",
                "", // newline
                ""  // newline, ie empty line after body.
            };

            CSharpWrapperGenerator.CheckWrappingFunction(filter, gen, apiLine, expectedLines);
        }
Exemplo n.º 4
0
 public LogInController()
 {
     _authService  = new AuthService();
     _context      = new ContextDb();
     _headerFilter = new HeaderFilter();
     _service      = new UsersService();
 }
Exemplo n.º 5
0
        public void Indentation()
        {
            string apiLine = @"SWIFT_API int ApiFun(MODEL_SIMULATION_PTR simulation);";

            HeaderFilter filter   = new HeaderFilter();
            var          gen      = new MatlabApiWrapperGenerator();
            var          filtered = filter.FilterInput(apiLine);
            var          w        = new WrapperGenerator(gen, filter);
            var          result   = w.Convert(filtered);

            Assert.Equal(1, result.Length);
            var s = result[0].Trim('\n');

            string[] expectedLines =
            {
                "function f = ApiFun(simulation)",
//"% ApiFun_m",
//"%",
//"% INPUT simulation [libpointer] A SWIFT simulation object (i.e. a model runner)",
//"% OUTPUT some integer",
//"",
                "simulation_xptr = getExternalPtr(simulation);",
                "res = calllib('swift', 'ApiFun', simulation_xptr);",
                "f = mkExternalObjRef(res);",
//"",
                "end",
                "", // newline
                ""  // newline, ie empty line after body.
            };

            CSharpWrapperGenerator.CheckWrappingFunction(filter, gen, apiLine, expectedLines);
        }
Exemplo n.º 6
0
        public void CustomCharPPFunctionGenerator()
        {
            HeaderFilter filter = new HeaderFilter();
            var          gen    = new CsharpApiWrapperGenerator();

            gen.AddCustomWrapper(gen.ReturnsCharPtrPtrWrapper());

            string apiLine = @"SWIFT_API char** ApiFun(MODEL_SIMULATION_PTR simulation, char** elementIds, char** elementIds2, int numElements, int* size);";

            string[] expectedLines = new string[] {
                "string[] ApiFun_cs(IModelSimulation simulation, string[] elementIds, string[] elementIds2, int numElements)",
                "{",
                "    IntPtr size = InteropHelper.AllocHGlobal<int>();",
                "    IntPtr elementIds_charpp = InteropHelper.ArrayStringToHGlobalAnsi(elementIds);",
                "    IntPtr elementIds2_charpp = InteropHelper.ArrayStringToHGlobalAnsi(elementIds2);",
                "    IntPtr result = " + ClassName + ".NativeSwiftLib.GetFunction<ApiFun_csdelegate>(\"ApiFun\")(CheckedDangerousGetHandle(simulation, \"simulation\"), elementIds_charpp, elementIds2_charpp, numElements, size);",
                "    InteropHelper.FreeHGlobalAnsiString(elementIds_charpp, elementIds.Length);",
                "    InteropHelper.FreeHGlobalAnsiString(elementIds2_charpp, elementIds2.Length);",
                "    int n = InteropHelper.Read<int>(size, true);",
                "    return InteropHelper.GlobalAnsiToArrayString(result, n, true);",
                "}",
                "", // newline
                ""  // newline, ie empty line after body.
            };

            CheckWrappingFunction(filter, gen, apiLine, expectedLines);
        }
Exemplo n.º 7
0
        public override object TransformData(IFreeDocument datas)
        {
            var p = datas[Column];

            if (p == null)
            {
                return(new List <FreeDocument>());
            }
            var url = p.ToString();
            WebHeaderCollection responseHeader;
            HttpStatusCode      code;

            var content = helper.GetHtml(crawler.Http, out responseHeader, out code, url);
            var keys    = responseHeader.AllKeys;

            if (!string.IsNullOrEmpty(HeaderFilter))
            {
                keys = HeaderFilter.Split(' ');
            }
            foreach (var key in keys)
            {
                var value = responseHeader.Get(key);
                if (value != null)
                {
                    datas.SetValue(key, value);
                }
            }
            if (keys.Contains("Location") && datas.ContainsKey("Location") == false)
            {
                datas["Location"] = url;
            }

            return(null);
        }
Exemplo n.º 8
0
        private static HeaderFilter createFilter()
        {
            var apiFilter = new HeaderFilter();

            apiFilter.ContainsAny = new string[] { "SWIFT_API" };
            apiFilter.ToRemove    = new string[] { "SWIFT_API" };
            return(apiFilter);
        }
Exemplo n.º 9
0
        public static void CheckWrappingFunction(HeaderFilter filter, IApiConverter gen, string apiLine, string[] expectedLines)
        {
            var filtered = filter.FilterInput(apiLine);
            var w        = new WrapperGenerator(gen, filter);
            var result   = w.Convert(filtered);

            string[] lines = SplitToLines(result);

            CheckExpectedLines(expectedLines, lines);
        }
Exemplo n.º 10
0
        OutgoingMessage BuildMessage(EditAndSend message)
        {
            var messageId = CombGuid.Generate().ToString();
            var headers   = HeaderFilter.RemoveErrorMessageHeaders(message.NewHeaders);

            corruptedReplyToHeaderStrategy.FixCorruptedReplyToHeader(headers);
            headers[Headers.MessageId] = Guid.NewGuid().ToString("D");

            var body            = Convert.FromBase64String(message.NewBody);
            var outgoingMessage = new OutgoingMessage(messageId, headers, body);

            return(outgoingMessage);
        }
        public void FunctionReturnsValueFormattingRGlue()
        {
            string apiLine = @"	SWIFT_API int GetNumRunoffModelVarIdentifiers(const char* modelId);";

            HeaderFilter filter = new HeaderFilter();
            var          gen    = new RXptrWrapperGenerator();

            gen.UniformIndentationCount = 0;
            gen.Indentation             = "  ";
            gen.FunctionNamePostfix     = "_RPostfix";

            gen.RoxyExportFunctions = true;


            gen.GenerateRoxygenDoc = true;
            StringBuilder sb  = new StringBuilder();
            FuncAndArgs   faa = new FuncAndArgs(apiLine);

            Assert.True(gen.CreateWrapFuncRoxydoc(sb, faa));

            var generatedLines = CSharpWrapperGenerator.SplitToLines(sb.ToString());

            string[] expectedLines =
            {
                "#' GetNumRunoffModelVarIdentifiers_RPostfix",
                "#'",
                "#' GetNumRunoffModelVarIdentifiers_RPostfix Wrapper function for GetNumRunoffModelVarIdentifiers",
                "#'",
                "#' @param modelId R type equivalent for C++ type const char*",
                "#' @export",
                "" // newline
            };

            CSharpWrapperGenerator.CheckExpectedLines(expectedLines, generatedLines);

            gen.GenerateRoxygenDoc = false;

            gen.ApiCallPostfix = "_Rcpp";
            expectedLines      = new string[] {
                "GetNumRunoffModelVarIdentifiers_RPostfix <- function(modelId) {",
                "  modelId <- getSwiftXptr(modelId)",
                "  result <- GetNumRunoffModelVarIdentifiers_Rcpp(modelId)",
                "  return(mkSwiftObjRef(result, 'int'))",
                "}",
                "", // newline
                ""  // newline, ie empty line after body.
            };

            CSharpWrapperGenerator.CheckWrappingFunction(filter, gen, apiLine, expectedLines);
        }
Exemplo n.º 12
0
        private static void ProcessTestLine(string[] args, IApiConverter gen, HeaderFilter filter = null)
        {
            if (filter == null)
            {
                filter = createFilter();
            }
            string apiLine = args[0];

            apiLine = filter.FilterInput(apiLine)[0];
            var w      = new WrapperGenerator(gen, filter);
            var result = w.Convert(new string[] { apiLine });

            Console.WriteLine(result[0]);
        }
Exemplo n.º 13
0
        public override object TransformData(IFreeDocument datas)
        {
            HttpStatusCode      code;
            WebHeaderCollection responseHeader;
            var http = helper.GetHtml(crawler.Http, out responseHeader, out code, datas[Column].ToString());
            var keys = HeaderFilter.Split(' ');

            foreach (var key in keys)
            {
                if (responseHeader.AllKeys.Contains(key))
                {
                    datas.SetValue(key, responseHeader[key]);
                }
            }
            return(null);
        }
Exemplo n.º 14
0
        public void ReturnsCharPtrPtrToDelegate()
        {
            string apiLine = @"SWIFT_API char** ApiFun(MODEL_SIMULATION_PTR simulation, char** elementIds, int numElements, int* size);";

            HeaderFilter filter = new HeaderFilter();
            var          gen    = new CsharpDelegatesApiWrapperGenerator();

            gen.AddCustomWrapper(gen.ReturnsCharPtrPtrWrapper());
            var filtered = filter.FilterInput(apiLine);
            var w        = new WrapperGenerator(gen, filter);
            var result   = w.Convert(filtered);

            string[] lines = SplitToLines(result);
            Assert.Equal(2, lines.Length);
            var    s        = lines[0].Trim();
            string expected = @"private delegate IntPtr ApiFun_csdelegate(IntPtr simulation, IntPtr elementIds, int numElements, IntPtr size);";

            Assert.Equal(expected, s);
        }
Exemplo n.º 15
0
        public void DateTimeMarshal()
        {
            HeaderFilter filter = new HeaderFilter();
            var          gen    = new CsharpApiWrapperGenerator();

            string apiLine = "SWIFT_API void GetStart(SIMULATION_BASE_PTR simulation, DATE_TIME_INFO_PTR start);";

            string[] expectedLines = new string[] {
                "void GetStart_cs(IModelSimulation simulation, MarshaledDateTime start)",
                "{",
                "    IntPtr start_struct = InteropHelper.StructureToPtr(start);",
                "    " + ClassName + ".NativeSwiftLib.GetFunction<GetStart_csdelegate>(\"GetStart\")(CheckedDangerousGetHandle(simulation, \"simulation\"), start_struct);",
                "    InteropHelper.FreeNativeStruct(start_struct, ref start, true);",
                "}",
                "", // newline
                ""  // newline, ie empty line after body.
            };
            CheckWrappingFunction(filter, gen, apiLine, expectedLines);
        }
Exemplo n.º 16
0
        public void TimeSeriesGeometry()
        {
            HeaderFilter filter = new HeaderFilter();
            var          gen    = new CsharpApiWrapperGenerator();

            string apiLine = "SWIFT_API void Play(MODEL_SIMULATION_PTR simulation, const char* variableIdentifier, double * values, TS_GEOMETRY_PTR geom);";

            string[] expectedLines = new string[] {
                "void Play_cs(IModelSimulation simulation, string variableIdentifier, double[] values, MarshaledTimeSeriesGeometry geom)",
                "{",
                "    IntPtr values_doublep = InteropHelper.ArrayDoubleToNative(values);",
                "    IntPtr geom_struct = InteropHelper.StructureToPtr(geom);",
                "    " + ClassName + ".NativeSwiftLib.GetFunction<Play_csdelegate>(\"Play\")(CheckedDangerousGetHandle(simulation, \"simulation\"), variableIdentifier, values_doublep, geom_struct);",
                "    InteropHelper.CopyDoubleArray(values_doublep, values, true);",
                "    InteropHelper.FreeNativeStruct(geom_struct, ref geom, true);",
                "}",
                "", // newline
                ""  // newline, ie empty line after body.
            };
            CheckWrappingFunction(filter, gen, apiLine, expectedLines);
        }
Exemplo n.º 17
0
        public void AggregateParameterizersWrapper()
        {
            HeaderFilter filter = new HeaderFilter();
            var          gen    = new CsharpApiWrapperGenerator();

            string apiLine = "SWIFT_API COMPOSITE_PARAMETERIZER_PTR AggregateParameterizers(const char* strategy, ARRAY_OF_PARAMETERIZERS_PTR parameterizers, int numParameterizers);";

            string[] expectedLines = new string[] {
                "INativeParameterizer AggregateParameterizers_cs(string strategy, INativeParameterizer[] parameterizers, int numParameterizers)",
                "{",
                "    IntPtr parameterizers_array_ptr = InteropHelper.CreateNativeArray(Array.ConvertAll(parameterizers, p => p.GetHandle()));",
                "    var result = " + ClassName + ".NativeSwiftLib.GetFunction<AggregateParameterizers_csdelegate>(\"AggregateParameterizers\")(strategy, parameterizers_array_ptr, numParameterizers);",
                "    InteropHelper.DeleteNativeArray(parameterizers_array_ptr);",
                "    var x = createWrapperNativeParameterizer(result);",
                "    return x;",
                "}",
                "", // newline
                ""  // newline, ie empty line after body.
            };
            CheckWrappingFunction(filter, gen, apiLine, expectedLines);
        }
Exemplo n.º 18
0
        public void Indentation()
        {
            string apiLine = @"SWIFT_API int ApiFun(MODEL_SIMULATION_PTR simulation);";

            HeaderFilter filter      = new HeaderFilter();
            var          genDelegate = new CsharpDelegatesApiWrapperGenerator();

            genDelegate.UniformIndentationCount = 2;
            genDelegate.Indentation             = "    ";
            var filtered = filter.FilterInput(apiLine);
            var w        = new WrapperGenerator(genDelegate, filter);
            var result   = w.Convert(filtered);

            Assert.Equal(1, result.Length);
            var    s        = result[0].Trim('\n');
            string expected = genDelegate.Indentation + genDelegate.Indentation + @"private delegate int ApiFun_csdelegate(IntPtr simulation);";

            Assert.Equal(expected, s);

            string[] expectedLines =
            {
                "        int ApiFun_cs(IModelSimulation simulation)",
                "        {",
                "            var result = " + ClassName + ".NativeSwiftLib.GetFunction<ApiFun_csdelegate>(\"ApiFun\")(CheckedDangerousGetHandle(simulation, \"simulation\"));",
                "            var x = result;",
                "            return x;",
                "        }",
                "", // newline
                ""  // newline, ie empty line after body.
            };

            var gen = new CsharpApiWrapperGenerator();

            gen.UniformIndentationCount = 2;
            gen.Indentation             = "    ";

            CheckWrappingFunction(filter, gen, apiLine, expectedLines);
        }