public class IMAPInputStream
extends java.io.InputStream
Modifier and Type | Field and Description |
---|---|
private int |
blksize |
private byte[] |
buf |
private int |
bufcount |
private int |
bufpos |
private boolean |
lastBuffer |
private int |
max |
private IMAPMessage |
msg |
private boolean |
peek |
private int |
pos |
private ByteArray |
readbuf |
private java.lang.String |
section |
private static int |
slop |
Constructor and Description |
---|
IMAPInputStream(IMAPMessage msg,
java.lang.String section,
int max,
boolean peek)
Create an IMAPInputStream.
|
Modifier and Type | Method and Description |
---|---|
int |
available()
Returns the number of bytes that can be read from this input
stream without blocking.
|
private void |
checkSeen()
Normally the SEEN flag will have been set by now, but if not,
force it to be set (as long as the folder isn't open read-only
and we're not peeking).
|
private void |
fill()
Fetch more data from the server.
|
private void |
forceCheckExpunged()
Do a NOOP to force any untagged EXPUNGE responses
and then check if this message is expunged.
|
int |
read()
Reads the next byte of data from this buffered input stream.
|
int |
read(byte[] b)
Reads up to
b.length bytes of data from this input
stream into an array of bytes. |
int |
read(byte[] b,
int off,
int len)
Reads up to
len bytes of data from this
input stream into the given buffer. |
private IMAPMessage msg
private java.lang.String section
private int pos
private int blksize
private int max
private byte[] buf
private int bufcount
private int bufpos
private boolean lastBuffer
private boolean peek
private ByteArray readbuf
private static final int slop
public IMAPInputStream(IMAPMessage msg, java.lang.String section, int max, boolean peek)
msg
- the IMAPMessage the data will come fromsection
- the IMAP section/part identifier for the datamax
- the number of bytes in this sectionpeek
- peek instead of fetch?private void forceCheckExpunged() throws MessageRemovedIOException, FolderClosedIOException
private void fill() throws java.io.IOException
java.io.IOException
public int read() throws java.io.IOException
-1
is returned.read
in class java.io.InputStream
java.io.IOException
public int read(byte[] b, int off, int len) throws java.io.IOException
len
bytes of data from this
input stream into the given buffer.
Returns the total number of bytes read into the buffer,
or -1
if there is no more data.
Note that this method mimics the "weird !" semantics of BufferedInputStream in that the number of bytes actually returned may be less that the requested value. So callers of this routine should be aware of this and must check the return value to insure that they have obtained the requisite number of bytes.
read
in class java.io.InputStream
java.io.IOException
public int read(byte[] b) throws java.io.IOException
b.length
bytes of data from this input
stream into an array of bytes.
Returns the total number of bytes read into the buffer, or
-1
is there is no more data.
Note that this method mimics the "weird !" semantics of BufferedInputStream in that the number of bytes actually returned may be less that the requested value. So callers of this routine should be aware of this and must check the return value to insure that they have obtained the requisite number of bytes.
read
in class java.io.InputStream
java.io.IOException
public int available() throws java.io.IOException
available
in class java.io.InputStream
java.io.IOException
private void checkSeen()