From 254c4886d58979eebd0e352f4d16e391736f2a33 Mon Sep 17 00:00:00 2001 From: Mark Donszelmann Date: Thu, 5 Nov 2009 23:27:33 +0100 Subject: Reorganized source directories in line with cpptasks-1.0b5, for easier tracking --- .../cpptasks/compiler/CaptureStreamHandler.java | 168 --------------------- 1 file changed, 168 deletions(-) delete mode 100644 src/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java (limited to 'src/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java') diff --git a/src/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java b/src/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java deleted file mode 100644 index f58ed8e..0000000 --- a/src/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// BEGINFREEHEP, fully replaced with a runner with threads -package net.sf.antcontrib.cpptasks.compiler; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.util.Vector; - -import org.apache.tools.ant.taskdefs.Execute; -import org.apache.tools.ant.taskdefs.ExecuteStreamHandler; - -/** - * Implements ExecuteStreamHandler to capture the output of a Execute to an - * array of strings - * - * @author Curt Arnold - */ -public class CaptureStreamHandler implements ExecuteStreamHandler { - - String[] output; - - /** - * Runs an executable and captures the output in a String array - * - * @param cmdline - * command line arguments - * @return output of process - */ - public static String[] run(String[] cmdline) { - CaptureStreamHandler handler = new CaptureStreamHandler(); - Execute exec = new Execute(handler); - exec.setCommandline(cmdline); - try { - int status = exec.execute(); - } catch (IOException ex) { - } - return handler.getOutput() != null ? handler.getOutput() : new String[0]; - } - - private InputStream processErrorStream; - - private InputStream processOutputStream; - - public CaptureStreamHandler() { - } - - public String[] getOutput() { - return output; - } - - static class Copier extends Thread { - InputStream is; - - Vector lines; - - Copier(InputStream is) { - this.is = is; - lines = new Vector(10); - } - - public void run() { - try { - BufferedReader reader = new BufferedReader( new InputStreamReader(is) ); - while ( true ) { - String line = reader.readLine(); - if ( line == null ) - break; - lines.addElement( line ); - } - } catch (IOException e) { - // Ignore - } - } - - public Vector getLines() { - return lines; - } - } - - /** - * Reads concurrently both the process standard output and standard error. - * The standard error - if not empty - is copied to the output string array field. Otherwise - * the standard output is copied to the output field. The output field is set to an empty array - * in case of any error. - */ - public void gatherOutput() { - try { - Copier errorCopier = new Copier(processErrorStream); - Copier outputCopier = new Copier(processOutputStream); - errorCopier.start(); - outputCopier.start(); - errorCopier.join(); - outputCopier.join(); - if (errorCopier.getLines().size() > 0) { - output = new String[errorCopier.getLines().size()]; - errorCopier.getLines().copyInto(output); - } else { - output = new String[outputCopier.getLines().size()]; - outputCopier.getLines().copyInto(output); - } - } catch (Exception e) { - output = new String[0]; - } - } - - /** - * Install a handler for the error stream of the subprocess. - * - * @param is - * input stream to read from the error stream from the subprocess - */ - public void setProcessErrorStream(InputStream is) throws IOException { - processErrorStream = is; - } - - /** - * Install a handler for the input stream of the subprocess. - * - * @param os - * output stream to write to the standard input stream of the - * subprocess - */ - public void setProcessInputStream(OutputStream os) throws IOException { - os.close(); - } - - /** - * Install a handler for the output stream of the subprocess. - * - * @param is - * input stream to read from the error stream from the subprocess - */ - public void setProcessOutputStream(InputStream is) throws IOException { - processOutputStream = is; - } - - /** - * Start handling of the streams. - */ - public void start() throws IOException { - gatherOutput(); - } - - /** - * Stop handling of the streams - will not be restarted. - */ - public void stop() { - } -// ENDFREEHEP -} -- cgit v1.2.3