diff options
author | PostgreSQL Daemon <webmaster@postgresql.org> | 2004-01-19 20:08:27 +0000 |
---|---|---|
committer | PostgreSQL Daemon <webmaster@postgresql.org> | 2004-01-19 20:08:27 +0000 |
commit | b195c10df73cacfaa5386b92684156b5061cfa4f (patch) | |
tree | 340a7be157193008b3d4f3a1563cc844d6e77fa8 /src/interfaces/jdbc/org/postgresql/largeobject/BlobInputStream.java | |
parent | 2a9bf5b33d0b82e9f483f6a5ced9d71e1c009441 (diff) | |
download | postgresql-b195c10df73cacfaa5386b92684156b5061cfa4f.tar.gz |
missed a few files
Diffstat (limited to 'src/interfaces/jdbc/org/postgresql/largeobject/BlobInputStream.java')
-rw-r--r-- | src/interfaces/jdbc/org/postgresql/largeobject/BlobInputStream.java | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/largeobject/BlobInputStream.java b/src/interfaces/jdbc/org/postgresql/largeobject/BlobInputStream.java deleted file mode 100644 index eb97273269..0000000000 --- a/src/interfaces/jdbc/org/postgresql/largeobject/BlobInputStream.java +++ /dev/null @@ -1,194 +0,0 @@ -/*------------------------------------------------------------------------- - * - * BlobInputStream.java - * This is an implementation of an InputStream from a large object. - * - * Copyright (c) 2003, PostgreSQL Global Development Group - * - * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/jdbc/org/postgresql/largeobject/BlobInputStream.java,v 1.6 2003/11/29 19:52:11 pgsql Exp $ - * - *------------------------------------------------------------------------- - */ -package org.postgresql.largeobject; - -import java.io.InputStream; -import java.io.IOException; -import java.sql.SQLException; - -public class BlobInputStream extends InputStream -{ - /* - * The parent LargeObject - */ - private LargeObject lo; - - /* - * Buffer used to improve performance - */ - private byte[] buffer; - - /* - * Position within buffer - */ - private int bpos; - - /* - * The buffer size - */ - private int bsize; - - /* - * The mark position - */ - private int mpos = 0; - - /* - * @param lo LargeObject to read from - */ - public BlobInputStream(LargeObject lo) - { - this(lo, 1024); - } - - /* - * @param lo LargeObject to read from - * @param bsize buffer size - */ - public BlobInputStream(LargeObject lo, int bsize) - { - this.lo = lo; - buffer = null; - bpos = 0; - this.bsize = bsize; - } - - /* - * The minimum required to implement input stream - */ - public int read() throws java.io.IOException - { - try - { - if (buffer == null || bpos >= buffer.length) - { - buffer = lo.read(bsize); - bpos = 0; - } - - // Handle EOF - if (bpos >= buffer.length) - { - return -1; - } - - int ret = (buffer[bpos] & 0x7F); - if ((buffer[bpos] &0x80) == 0x80) - { - ret |= 0x80; - } - - bpos++; - - return ret; - } - catch (SQLException se) - { - throw new IOException(se.toString()); - } - } - - - /* - * Closes this input stream and releases any system resources associated - * with the stream. - * - * <p> The <code>close</code> method of <code>InputStream</code> does - * nothing. - * - * @exception IOException if an I/O error occurs. - */ - public void close() throws IOException - { - try - { - lo.close(); - lo = null; - } - catch (SQLException se) - { - throw new IOException(se.toString()); - } - } - - /* - * Marks the current position in this input stream. A subsequent call to - * the <code>reset</code> method repositions this stream at the last marked - * position so that subsequent reads re-read the same bytes. - * - * <p> The <code>readlimit</code> arguments tells this input stream to - * allow that many bytes to be read before the mark position gets - * invalidated. - * - * <p> The general contract of <code>mark</code> is that, if the method - * <code>markSupported</code> returns <code>true</code>, the stream somehow - * remembers all the bytes read after the call to <code>mark</code> and - * stands ready to supply those same bytes again if and whenever the method - * <code>reset</code> is called. However, the stream is not required to - * remember any data at all if more than <code>readlimit</code> bytes are - * read from the stream before <code>reset</code> is called. - * - * <p> The <code>mark</code> method of <code>InputStream</code> does - * nothing. - * - * @param readlimit the maximum limit of bytes that can be read before - * the mark position becomes invalid. - * @see java.io.InputStream#reset() - */ - public synchronized void mark(int readlimit) - { - try - { - mpos = lo.tell(); - } - catch (SQLException se) - { - //throw new IOException(se.toString()); - } - } - - /* - * Repositions this stream to the position at the time the - * <code>mark</code> method was last called on this input stream. - * NB: If mark is not called we move to the begining. - * @see java.io.InputStream#mark(int) - * @see java.io.IOException - */ - public synchronized void reset() - throws IOException - { - try - { - lo.seek(mpos); - } - catch (SQLException se) - { - throw new IOException(se.toString()); - } - } - - /* - * Tests if this input stream supports the <code>mark</code> and - * <code>reset</code> methods. The <code>markSupported</code> method of - * <code>InputStream</code> returns <code>false</code>. - * - * @return <code>true</code> if this true type supports the mark and reset - * method; <code>false</code> otherwise. - * @see java.io.InputStream#mark(int) - * @see java.io.InputStream#reset() - */ - public boolean markSupported() - { - return true; - } -} |