You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by re...@apache.org on 2001/01/22 05:49:26 UTC

cvs commit: jakarta-slide/src/webdav/client/src/org/apache/webdav/lib RequestOutputStream.java

remm        01/01/21 20:49:26

  Modified:    src/webdav/client/src/org/apache/webdav/lib
                        RequestOutputStream.java
  Log:
  - Optimized the output stream when chunking a little bit. The code should
    also be cleaner.
  
  Revision  Changes    Path
  1.2       +40 -17    jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/RequestOutputStream.java
  
  Index: RequestOutputStream.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/RequestOutputStream.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RequestOutputStream.java	2000/11/22 06:19:08	1.1
  +++ RequestOutputStream.java	2001/01/22 04:49:26	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/RequestOutputStream.java,v 1.1 2000/11/22 06:19:08 remm Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/11/22 06:19:08 $
  + * $Header: /home/cvs/jakarta-slide/src/webdav/client/src/org/apache/webdav/lib/RequestOutputStream.java,v 1.2 2001/01/22 04:49:26 remm Exp $
  + * $Revision: 1.2 $
  + * $Date: 2001/01/22 04:49:26 $
    *
    * ====================================================================
    *
  @@ -74,7 +74,7 @@
    * Socket output stream wrapper.
    * 
    * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
  - * @version $Revision: 1.1 $ $Date: 2000/11/22 06:19:08 $
  + * @version $Revision: 1.2 $ $Date: 2001/01/22 04:49:26 $
    */
   
   public class RequestOutputStream
  @@ -125,6 +125,30 @@
       private boolean writingChunk = false;
   
   
  +    /**
  +     * End chunk.
  +     */
  +    private byte endChunk[] = "\r\n".getBytes();
  +
  +
  +    /**
  +     * CRLF.
  +     */
  +    private byte crlf[] = "\r\n".getBytes();
  +
  +
  +    /**
  +     * 0.
  +     */
  +    private byte zero[] = "0".getBytes();
  +
  +
  +    /**
  +     * 1.
  +     */
  +    private byte one[] = "1".getBytes();
  +
  +
       // ------------------------------------------------------------- Properties
       
       
  @@ -202,12 +226,11 @@
        */
       public void write(int b)
           throws IOException {
  -        if (useChunking && !writingChunk) {
  -            writingChunk = true;
  -            print("1\r\n");
  +        if (useChunking) {
  +            stream.write(one, 0, one.length);
  +            stream.write(crlf, 0, crlf.length);
               stream.write(b);
  -            println();
  -            writingChunk = false;
  +            stream.write(endChunk, 0, endChunk.length);
           } else {
               stream.write(b);
           }
  @@ -219,12 +242,12 @@
        */
       public void write(byte[] b, int off, int len)
           throws IOException {
  -        if (useChunking && !writingChunk) {
  -            writingChunk = true;
  -            print(Integer.toHexString(len) + "\r\n");
  +        if (useChunking) {
  +            byte chunkHeader[] = 
  +                (Integer.toHexString(len) + "\r\n").getBytes();
  +            stream.write(chunkHeader, 0, chunkHeader.length);
               stream.write(b, off, len);
  -            println();
  -            writingChunk = false;
  +            stream.write(endChunk, 0, endChunk.length);
           } else {
               stream.write(b, off, len);
           }
  @@ -239,9 +262,9 @@
   
           if (useChunking) {
               // Write the final chunk.
  -            writingChunk = true;
  -            print("0\r\n\r\n");
  -            writingChunk = false;
  +            stream.write(zero, 0, zero.length);
  +            stream.write(crlf, 0, crlf.length);
  +            stream.write(endChunk, 0, endChunk.length);
           }
           super.close();