diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/LeadPipeInputStream.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/LeadPipeInputStream.java | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/LeadPipeInputStream.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/LeadPipeInputStream.java deleted file mode 100644 index 00819128..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/util/LeadPipeInputStream.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - * - */ - -package org.apache.tools.ant.util; - -import java.io.IOException; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; - -import org.apache.tools.ant.Project; -import org.apache.tools.ant.ProjectComponent; -import org.apache.tools.ant.Task; - -/** - * Special <code>PipedInputStream</code> that will not die - * when the writing <code>Thread</code> is no longer alive. - * @since Ant 1.6.2 - */ -public class LeadPipeInputStream extends PipedInputStream { - private static final int BYTE_MASK = 0xFF; - private ProjectComponent managingPc; - - /** - * Construct a new <code>LeadPipeInputStream</code>. - */ - public LeadPipeInputStream() { - super(); - } - - /** - * Construct a new <code>LeadPipeInputStream</code> - * with the specified buffer size. - * @param size the size of the circular buffer. - */ - public LeadPipeInputStream(int size) { - super(); - setBufferSize(size); - } - - /** - * Construct a new <code>LeadPipeInputStream</code> to pull - * from the specified <code>PipedOutputStream</code>. - * @param src the <code>PipedOutputStream</code> source. - * @throws IOException if unable to construct the stream. - */ - public LeadPipeInputStream(PipedOutputStream src) throws IOException { - super(src); - } - - /** - * Construct a new <code>LeadPipeInputStream</code> to pull - * from the specified <code>PipedOutputStream</code>, using a - * circular buffer of the specified size. - * @param src the <code>PipedOutputStream</code> source. - * @param size the size of the circular buffer. - * @throws IOException if there is an error. - */ - public LeadPipeInputStream(PipedOutputStream src, int size) throws IOException { - super(src); - setBufferSize(size); - } - - //inherit doc - /** - * Read a byte from the stream. - * @return the byte (0 to 255) or -1 if there are no more. - * @throws IOException if there is an error. - */ - public synchronized int read() throws IOException { - int result = -1; - try { - result = super.read(); - } catch (IOException eyeOhEx) { - String msg = eyeOhEx.getMessage(); - if ("write end dead".equalsIgnoreCase(msg) - || "pipe broken".equalsIgnoreCase(msg)) { - if (super.in > 0 && super.out < super.buffer.length - && super.out > super.in) { - result = super.buffer[super.out++] & BYTE_MASK; - } - } else { - log("error at LeadPipeInputStream.read(): " + msg, - Project.MSG_INFO); - } - } - return result; - } - - /** - * Set the size of the buffer. - * @param size the new buffer size. Ignored if <= current size. - */ - public synchronized void setBufferSize(int size) { - if (size > buffer.length) { - byte[] newBuffer = new byte[size]; - if (in >= 0) { - if (in > out) { - System.arraycopy(buffer, out, newBuffer, out, in - out); - } else { - int outlen = buffer.length - out; - System.arraycopy(buffer, out, newBuffer, 0, outlen); - System.arraycopy(buffer, 0, newBuffer, outlen, in); - in += outlen; - out = 0; - } - } - buffer = newBuffer; - } - } - - /** - * Set a managing <code>Task</code> for - * this <code>LeadPipeInputStream</code>. - * @param task the managing <code>Task</code>. - */ - public void setManagingTask(Task task) { - setManagingComponent(task); - } - - /** - * Set a managing <code>ProjectComponent</code> for - * this <code>LeadPipeInputStream</code>. - * @param pc the managing <code>ProjectComponent</code>. - */ - public void setManagingComponent(ProjectComponent pc) { - this.managingPc = pc; - } - - /** - * Log a message with the specified logging level. - * @param message the <code>String</code> message. - * @param loglevel the <code>int</code> logging level. - */ - public void log(String message, int loglevel) { - if (managingPc != null) { - managingPc.log(message, loglevel); - } else { - if (loglevel > Project.MSG_WARN) { - System.out.println(message); - } else { - System.err.println(message); - } - } - } -} - |