I'm going to commit this patch that adds a couple of constructors to the
PipedInputStream that allows users to pass the size of the pipe, as of
1.6.

Mario

Changelog:

2007-08-08  Mario Torre  <[EMAIL PROTECTED]>

        * java/io/PipedInputStream.java:
        (buffer): variable now initialized in constructors.
        (PipedInputStream(int)): new constructor, creates the buffer
        storage of size int.
        (PipedInputStream()): now calls PipedInputStream(int) with
        default capacity.
        (PipedInputStream(PipedOutputStream)): now calls PipedInputStream().
        (PipedInputStream(PipedOutputStream, int)): new constructor.

P.S. Mark, this is a small patch of less that 75 lines, I promised
that! :)
-- 
Lima Software - http://www.limasoftware.net/
GNU Classpath Developer - http://www.classpath.org/
Fedora Ambassador - http://fedoraproject.org/wiki/MarioTorre
Jabber: [EMAIL PROTECTED]
pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF
Fingerprint: BA39 9666 94EC 8B73 27FA  FC7C 4086 63E3 80F2 40CF

Please, support open standards:
http://opendocumentfellowship.org/petition/
http://www.nosoftwarepatents.com/
### Eclipse Workspace Patch 1.0
#P classpath
Index: java/io/PipedInputStream.java
===================================================================
RCS file: /sources/classpath/classpath/java/io/PipedInputStream.java,v
retrieving revision 1.21
diff -u -r1.21 PipedInputStream.java
--- java/io/PipedInputStream.java	13 Sep 2006 17:58:53 -0000	1.21
+++ java/io/PipedInputStream.java	8 Aug 2007 17:59:33 -0000
@@ -82,7 +82,7 @@
     * This is the internal circular buffer used for storing bytes written
     * to the pipe and from which bytes are read by this stream
     */
-  protected byte[] buffer = new byte[PIPE_SIZE];
+  protected byte[] buffer = null;
 
   /**
     * The index into buffer where the next byte from the connected
@@ -107,9 +107,26 @@
     */
   public PipedInputStream()
   {
+    this(PIPE_SIZE);
   }
 
   /**
+   * Creates a new <code>PipedInputStream</code> of the given size that is not
+   * connected to a <code>PipedOutputStream</code>.
+   * It must be connected before bytes can be read from this stream.
+   * 
+   * @since 1.6
+   * @since IllegalArgumentException If pipeSize <= 0.
+   */
+  public PipedInputStream(int pipeSize) throws IllegalArgumentException 
+  {
+    if (pipeSize <= 0)
+      throw new IllegalArgumentException("pipeSize must be > 0");
+    
+    this.buffer = new byte[PIPE_SIZE];
+  }
+  
+  /**
     * This constructor creates a new <code>PipedInputStream</code> and connects
     * it to the passed in <code>PipedOutputStream</code>. The stream is then 
     * ready for reading.
@@ -121,10 +138,29 @@
     */
   public PipedInputStream(PipedOutputStream source) throws IOException
   {
+    this();
     connect(source);
   }
 
   /**
+   * This constructor creates a new <code>PipedInputStream</code> of the given
+   * size and connects it to the passed in <code>PipedOutputStream</code>.
+   * The stream is then ready for reading.
+   *
+   * @param source The <code>PipedOutputStream</code> to connect this 
+   * stream to
+   *
+   * @since 1.6
+   * @exception IOException If <code>source</code> is already connected.
+   */
+ public PipedInputStream(PipedOutputStream source, int pipeSize)
+   throws IOException
+ {
+   this(pipeSize);
+   connect(source);
+ }
+  
+  /**
     * This method connects this stream to the passed in 
     * <code>PipedOutputStream</code>.
     * This stream is then ready for reading.  If this stream is already

Attachment: signature.asc
Description: Questa รจ una parte del messaggio firmata digitalmente

Reply via email to