Home » HttpComponents-Core-4.0.1 » org.apache.http.io » [javadoc | source]

    1   /*
    2    * $HeadURL: https://svn.apache.org/repos/asf/jakarta/httpcomponents/httpcore/tags/4.0-alpha2/src/java/org/apache/http/io/IdentityOutputStream.java $
    3    * $Revision: 390883 $
    4    * $Date: 2006-04-02 20:39:50 +0200 (Sun, 02 Apr 2006) $
    5    *
    6    * ====================================================================
    7    *
    8    *  Copyright 1999-2006 The Apache Software Foundation
    9    *
   10    *  Licensed under the Apache License, Version 2.0 (the "License");
   11    *  you may not use this file except in compliance with the License.
   12    *  You may obtain a copy of the License at
   13    *
   14    *      http://www.apache.org/licenses/LICENSE-2.0
   15    *
   16    *  Unless required by applicable law or agreed to in writing, software
   17    *  distributed under the License is distributed on an "AS IS" BASIS,
   18    *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   19    *  See the License for the specific language governing permissions and
   20    *  limitations under the License.
   21    * ====================================================================
   22    *
   23    * This software consists of voluntary contributions made by many
   24    * individuals on behalf of the Apache Software Foundation.  For more
   25    * information on the Apache Software Foundation, please see
   26    * <http://www.apache.org/>.
   27    *
   28    */
   29   
   30   package org.apache.http.io;
   31   
   32   import java.io.IOException;
   33   import java.io.OutputStream;
   34   
   35   /**
   36    * A stream for writing with an "identity" transport encoding.
   37    *
   38    * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
   39    *
   40    * @version $Revision: 390883 $
   41    * 
   42    * @since 4.0
   43    */
   44   public class IdentityOutputStream extends OutputStream {
   45       
   46       /**
   47        * Wrapped data transmitter that all calls are delegated to.
   48        */
   49       private final HttpDataTransmitter out;
   50   
   51       /** True if the stream is closed. */
   52       private boolean closed = false;
   53   
   54       public IdentityOutputStream(final HttpDataTransmitter out) {
   55           super();
   56           if (out == null) {
   57               throw new IllegalArgumentException("HTTP data transmitter may not be null");
   58           }
   59           this.out = out;
   60       }
   61   
   62       /**
   63        * <p>Does not close the underlying socket output.</p>
   64        * 
   65        * @throws IOException If an I/O problem occurs.
   66        */
   67       public void close() throws IOException {
   68           if (!this.closed) {
   69               this.closed = true;
   70               this.out.flush();
   71           }
   72       }
   73   
   74       public void flush() throws IOException {
   75           this.out.flush();
   76       }
   77   
   78       public void write(byte[] b, int off, int len) throws IOException {
   79           if (this.closed) {
   80               throw new IOException("Attempted write to closed stream.");
   81           }
   82           this.out.write(b, off, len);
   83       }
   84   
   85       public void write(byte[] b) throws IOException {
   86           write(b, 0, b.length);
   87       }
   88   
   89       public void write(int b) throws IOException {
   90           if (this.closed) {
   91               throw new IOException("Attempted write to closed stream.");
   92           }
   93           this.out.write(b);
   94       }
   95       
   96   }

Home » HttpComponents-Core-4.0.1 » org.apache.http.io » [javadoc | source]