private BuildResponse ServeBuildRequestCore(BuildRequest buildRequest, CancellationToken cancellationToken) { var request = BuildProtocolUtil.GetRunRequest(buildRequest); CommonCompiler compiler; if (!_compilerServerHost.TryCreateCompiler(request, out compiler)) { // We can't do anything with a request we don't know about. Log($"Got request with id '{request.Language}'"); return(new CompletedBuildResponse(-1, false, "", "")); } Log($"CurrentDirectory = '{request.CurrentDirectory}'"); Log($"LIB = '{request.LibDirectory}'"); for (int i = 0; i < request.Arguments.Length; ++i) { Log($"Argument[{i}] = '{request.Arguments[i]}'"); } bool utf8output = compiler.Arguments.Utf8Output; if (!_compilerServerHost.CheckAnalyzers(request.CurrentDirectory, compiler.Arguments.AnalyzerReferences)) { return(new AnalyzerInconsistencyBuildResponse()); } Log($"****Running {request.Language} compiler..."); TextWriter output = new StringWriter(CultureInfo.InvariantCulture); int returnCode = compiler.Run(output, cancellationToken); Log($"****{request.Language} Compilation complete.\r\n****Return code: {returnCode}\r\n****Output:\r\n{output.ToString()}\r\n"); return(new CompletedBuildResponse(returnCode, utf8output, output.ToString(), "")); }
static Task <BuildResponse> ProcessCompilationRequestCore(ICompilerServerHost compilerServerHost, BuildRequest buildRequest, CancellationToken cancellationToken) { Func <BuildResponse> func = () => { var request = BuildProtocolUtil.GetRunRequest(buildRequest); var response = compilerServerHost.RunCompilation(request, cancellationToken); return(response); }; var task = new Task <BuildResponse>(func, cancellationToken, TaskCreationOptions.LongRunning); task.Start(); return(task); }
private Task <BuildResponse> ServeBuildRequestAsync(BuildRequest buildRequest, CancellationToken cancellationToken) { Func <BuildResponse> func = () => { var request = BuildProtocolUtil.GetRunRequest(buildRequest); var response = _compilerServerHost.RunCompilation(request, cancellationToken); return(response); }; var task = new Task <BuildResponse>(func, cancellationToken, TaskCreationOptions.LongRunning); task.Start(); return(task); }
protected virtual Task <BuildResponse> ServeBuildRequest(BuildRequest buildRequest, CancellationToken cancellationToken) { Func <BuildResponse> func = () => { // Do the compilation Log("Begin compilation"); var request = BuildProtocolUtil.GetRunRequest(buildRequest); var response = _compilerServerHost.RunCompilation(request, cancellationToken); Log("End compilation"); return(response); }; var task = new Task <BuildResponse>(func, cancellationToken, TaskCreationOptions.LongRunning); task.Start(); return(task); }