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/HttpDataInputStream.java $
    3    * $Revision: 376961 $
    4    * $Date: 2006-02-11 11:32:50 +0100 (Sat, 11 Feb 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.InputStream;
   34   
   35   /**
   36    * A stream for reading from a {@link HttpDataReceiver HttpDataReceiver}.
   37    *
   38    * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
   39    *
   40    * @version $Revision: 376961 $
   41    * 
   42    * @since 4.0
   43    */
   44   public class HttpDataInputStream extends InputStream {
   45       
   46       private final HttpDataReceiver datareceiver;
   47       
   48       private boolean closed = false;
   49       
   50       public HttpDataInputStream(final HttpDataReceiver datareceiver) {
   51           super();
   52           if (datareceiver == null) {
   53               throw new IllegalArgumentException("HTTP data receiver may not be null");
   54           }
   55           this.datareceiver = datareceiver;
   56       }
   57       
   58       public int available() throws IOException {
   59           if (!this.closed && this.datareceiver.isDataAvailable(10)) {
   60               return 1;
   61           } else {
   62               return 0;
   63           }
   64       }
   65       
   66       public void close() throws IOException {
   67           this.closed = true;
   68       }
   69   
   70       public int read() throws IOException {
   71           if (this.closed) {
   72               return -1;
   73           } else {
   74               return this.datareceiver.read();
   75           }
   76       }
   77       
   78       public int read(final byte[] b, int off, int len) throws IOException {
   79           if (this.closed) {
   80               return -1;
   81           } else {
   82               return this.datareceiver.read(b, off, len);
   83           }
   84       }
   85       
   86   }

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