## grendel.storage
Interface MailDrop

public abstract interface MailDrop

Interface to a maildrop: a place that we get new mail from.

Field Summary
`static int` | `NEW` Returned by getBiffState() if there are new messages waiting.
`static int` | `NONE` Returned by getBiffState() if there are no new messages waiting.
`static int` | `UNKNOWN` Returned by getBiffState() if we can't tell if there are new messages waiting.

Method Summary
`void` | `doBiff()` Go to the maildrop and update the info on how many messages out there are waiting.
`void` | `fetchNewMail()` Actually go to maildrop, grab any messages, and stuff them into folders.
`int` | `getBiffState()` Find out whether we actually know anything about new messages waiting on the maildrop.
`int` | `getNumMessagesWaiting()` Return how many new messages are out there waiting.

Field Detail

### NEW

    public static final int NEW

  Returned by getBiffState() if there are new messages waiting.

### NONE

    public static final int NONE

  Returned by getBiffState() if there are no new messages waiting.

### UNKNOWN

    public static final int UNKNOWN

  Returned by getBiffState() if we can't tell if there are new messages waiting.

Method Detail

### fetchNewMail

    public void fetchNewMail()
                      throws java.io.IOException

  Actually go to maildrop, grab any messages, and stuff them into folders.

### doBiff

    public void doBiff()
                throws java.io.IOException

  Go to the maildrop and update the info on how many messages out there are waiting.

### getBiffState

    public int getBiffState()

  Find out whether we actually know anything about new messages waiting on the maildrop.

### getNumMessagesWaiting

    public int getNumMessagesWaiting()

  Return how many new messages are out there waiting. If getBiffState() returns NONE, returns zero. If getBiffState() returns UNKNOWN, or if we just can't tell with this maildrop, returns -1.