public class MessageCache
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private IMAPFolder |
folder
The folder these messages belong to.
|
private MailLogger |
logger |
private IMAPMessage[] |
messages |
private int[] |
seqnums |
private int |
size |
private static int |
SLOP
Grow the array by at least this much, to avoid constantly
reallocating the array.
|
Constructor and Description |
---|
MessageCache(IMAPFolder folder,
IMAPStore store,
int size)
Construct a new message cache of the indicated size.
|
MessageCache(int size,
boolean debug)
Constructor for debugging and testing.
|
Modifier and Type | Method and Description |
---|---|
void |
addMessages(int count,
int newSeqNum)
Add count messages to the cache.
|
private void |
ensureCapacity(int newsize,
int newSeqNum) |
void |
expungeMessage(int seqnum)
Expunge the message with the given sequence number.
|
IMAPMessage |
getMessage(int msgnum)
Get the message object for the indicated message number.
|
IMAPMessage |
getMessageBySeqnum(int seqnum)
Get the message object for the indicated sequence number.
|
private int |
msgnumOf(int seqnum)
Return the message number for the given sequence number.
|
IMAPMessage[] |
removeExpungedMessages()
Remove all the expunged messages from the array,
returning a list of removed message objects.
|
IMAPMessage[] |
removeExpungedMessages(Message[] msgs)
Remove expunged messages in msgs from the array,
returning a list of removed message objects.
|
int |
seqnumOf(int msgnum)
Return the sequence number for the given message number.
|
private void |
shrink(int newend,
int oldend)
Shrink the messages and seqnums arrays.
|
int |
size()
Size of cache.
|
private IMAPMessage[] messages
private int[] seqnums
private int size
private IMAPFolder folder
private MailLogger logger
private static final int SLOP
MessageCache(IMAPFolder folder, IMAPStore store, int size)
MessageCache(int size, boolean debug)
public int size()
public IMAPMessage getMessage(int msgnum)
public IMAPMessage getMessageBySeqnum(int seqnum)
public void expungeMessage(int seqnum)
public IMAPMessage[] removeExpungedMessages()
public IMAPMessage[] removeExpungedMessages(Message[] msgs)
private void shrink(int newend, int oldend)
public void addMessages(int count, int newSeqNum)
private void ensureCapacity(int newsize, int newSeqNum)
public int seqnumOf(int msgnum)
private int msgnumOf(int seqnum)