ucar.unidata.io.http
Class HTTPRandomAccessFile

java.lang.Object
  extended by ucar.unidata.io.RandomAccessFile
      extended by ucar.unidata.io.http.HTTPRandomAccessFile
All Implemented Interfaces:
java.io.DataInput, java.io.DataOutput

public class HTTPRandomAccessFile
extends RandomAccessFile

Gives access to files over HTTP, using jakarta commons HttpClient library. This version uses a single instance of HttpClient, following performance guidelines at http://jakarta.apache.org/commons/httpclient/performance.html Plus other improvements.

Author:
John Caron

Field Summary
static int defaultHTTPBufferSize
           
 
Fields inherited from class ucar.unidata.io.RandomAccessFile
BIG_ENDIAN, bigEndian, buffer, bufferStart, cached, dataEnd, dataSize, debugAccess, debugLeaks, defaultBufferSize, endOfFile, file, filePosition, LITTLE_ENDIAN, location, openFiles, readonly
 
Constructor Summary
HTTPRandomAccessFile(java.lang.String url)
           
HTTPRandomAccessFile(java.lang.String url, int bufferSize)
           
 
Method Summary
 void close()
          override the rest of the RandomAccessFile public methods
 java.io.FileDescriptor getFD()
          Returns the opaque file descriptor object associated with this file.
static org.apache.commons.httpclient.HttpClient getHttpClient()
          Get the HttpClient object - a single instance is used.
 long length()
          Get the length of the file.
protected  int read_(long pos, byte[] buff, int offset, int len)
          read directly, without going through the buffer
static void setHttpClient(org.apache.commons.httpclient.HttpClient client)
          Set the HttpClient object - a single instance is used.
 
Methods inherited from class ucar.unidata.io.RandomAccessFile
flush, getFilePointer, getLocation, getRandomAccessFile, isAtEndOfFile, isCached, order, read, read, read, readBoolean, readByte, readBytes, readChar, readDouble, readDouble, readFloat, readFloat, readFully, readFully, readInt, readInt, readIntUnbuffered, readLine, readLong, readLong, readShort, readShort, readString, readUnsignedByte, readUnsignedShort, readUTF, seek, setCached, setDebugAccess, setDebugLeaks, setExtendMode, setMinLength, skipBytes, synch, toString, unread, write, write, write, writeBoolean, writeBoolean, writeByte, writeBytes, writeBytes, writeBytes, writeChar, writeChar, writeChars, writeDouble, writeDouble, writeFloat, writeFloat, writeInt, writeInt, writeLong, writeLong, writeShort, writeShort, writeUTF
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

defaultHTTPBufferSize

public static int defaultHTTPBufferSize
Constructor Detail

HTTPRandomAccessFile

public HTTPRandomAccessFile(java.lang.String url)
                     throws java.io.IOException
Throws:
java.io.IOException

HTTPRandomAccessFile

public HTTPRandomAccessFile(java.lang.String url,
                            int bufferSize)
                     throws java.io.IOException
Throws:
java.io.IOException
Method Detail

setHttpClient

public static void setHttpClient(org.apache.commons.httpclient.HttpClient client)
Set the HttpClient object - a single instance is used.


getHttpClient

public static org.apache.commons.httpclient.HttpClient getHttpClient()
Get the HttpClient object - a single instance is used.


read_

protected int read_(long pos,
                    byte[] buff,
                    int offset,
                    int len)
             throws java.io.IOException
Description copied from class: RandomAccessFile
read directly, without going through the buffer

Overrides:
read_ in class RandomAccessFile
Parameters:
pos - _more_
buff - _more_
offset - _more_
len - _more_
Returns:
_more_
Throws:
java.io.IOException - _more_

length

public long length()
            throws java.io.IOException
Description copied from class: RandomAccessFile
Get the length of the file. The data in the buffer (which may not have been written the disk yet) is taken into account.

Overrides:
length in class RandomAccessFile
Returns:
the length of the file in bytes.
Throws:
java.io.IOException - if an I/O error occurrs.

close

public void close()
override the rest of the RandomAccessFile public methods

Overrides:
close in class RandomAccessFile

getFD

public java.io.FileDescriptor getFD()
Description copied from class: RandomAccessFile
Returns the opaque file descriptor object associated with this file.

Overrides:
getFD in class RandomAccessFile
Returns:
the file descriptor object associated with this file.