You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by mb...@apache.org on 2005/10/06 21:12:53 UTC
svn commit: r306847 -
/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/StreamPumper.java
Author: mbenson
Date: Thu Oct 6 12:12:49 2005
New Revision: 306847
URL: http://svn.apache.org/viewcvs?rev=306847&view=rev
Log:
implement TODO of configurable buffer size.
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/StreamPumper.java
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/StreamPumper.java
URL: http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/StreamPumper.java?rev=306847&r1=306846&r2=306847&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/StreamPumper.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/StreamPumper.java Thu Oct 6 12:12:49 2005
@@ -28,9 +28,6 @@
*/
public class StreamPumper implements Runnable {
- // TODO: make SIZE an instance variable.
-
- private static final int SIZE = 128;
private InputStream is;
private OutputStream os;
private volatile boolean finish;
@@ -38,6 +35,8 @@
private boolean closeWhenExhausted;
private boolean autoflush = false;
private Exception exception = null;
+ private int bufferSize = 128;
+ private boolean started = false;
/**
* Create a new stream pumper.
@@ -79,10 +78,13 @@
* Terminates as soon as the input stream is closed or an error occurs.
*/
public void run() {
+ synchronized (this) {
+ started = true;
+ }
finished = false;
finish = false;
- final byte[] buf = new byte[SIZE];
+ final byte[] buf = new byte[bufferSize];
int length;
try {
@@ -129,6 +131,27 @@
while (!isFinished()) {
wait();
}
+ }
+
+ /**
+ * Set the size in bytes of the read buffer.
+ * @param bufferSize the buffer size to use.
+ * @throws IllegalStateException if the StreamPumper is already running.
+ */
+ public synchronized void setBufferSize(int bufferSize) {
+ if (started) {
+ throw new IllegalStateException(
+ "Cannot set buffer size on a running StreamPumper");
+ }
+ this.bufferSize = bufferSize;
+ }
+
+ /**
+ * Get the size in bytes of the read buffer.
+ * @return the int size of the read buffer.
+ */
+ public synchronized int getBufferSize() {
+ return bufferSize;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org