## Uses of Interface
i2p.susi.util.Buffer

- Packages that use Buffer
  Package | Description
  --- | ---
  i2p.susi.util | Utility classes for the SusiMail webmail client.
  i2p.susi.webmail | The SusiMail webapp, which implements a webmail interface, POP3 and SMTP client-side protocols, and local caching of email.
  i2p.susi.webmail.encoding | Character encoding and MIME handling for SusiMail.
  i2p.susi.webmail.pop3 | POP3 protocol implementation for SusiMail.

- - ### Uses of Buffer in i2p.susi.util

    Classes in i2p.susi.util that implement Buffer
    Modifier and Type | Class and Description
    --- | ---
    `class` | `FileBuffer` Buffer implementation backed by a file.
    `class` | `GzipFileBuffer` Gzip-compressed file Buffer implementation.
    `class` | `MemoryBuffer` Buffer implementation backed by a byte array.
    `class` | `OutputStreamBuffer` Write-only Buffer implementation.
    `class` | `ReadBuffer` Read-only Buffer for constant data initialized from a byte array.

  - ### Uses of Buffer in i2p.susi.webmail

    Fields in i2p.susi.webmail declared as Buffer
    Modifier and Type | Field and Description
    --- | ---
    `Buffer` | MailPart.`buffer`

    Methods in i2p.susi.webmail that return Buffer
    Modifier and Type | Method and Description
    --- | ---
    `Buffer` | Mail.`getBody()` This contains the header also.
    `Buffer` | MailCache.`getFullWriteBuffer(String uidl)` For writing a new full mail (NOT headers only) Caller must close.
    `Buffer` | Mail.`getHeader()` This may or may not contain the body also.

    Methods in i2p.susi.webmail with parameters of type Buffer
    Modifier and Type | Method and Description
    --- | ---
    `void` | MailPart.`decode(int offset, Buffer out)` Synched because FileBuffer keeps stream open
    `void` | Draft.`setBody(Buffer rb)` Overridden to process attachment and Bcc headers
    `void` | Mail.`setBody(Buffer rb)`
    `void` | Mail.`setHeader(Buffer rb)`
    `void` | MailCache.`writeComplete(String uidl, Buffer buffer, boolean success)` For writing a new full mail

    Constructors in i2p.susi.webmail with parameters of type Buffer
    Constructor and Description
    `MailPart(String uidl, AtomicInteger id, Buffer readBuffer, InputStream in, ReadCounter counter, String[] hdrlines)`

  - ### Uses of Buffer in i2p.susi.webmail.encoding

    Methods in i2p.susi.webmail.encoding that return Buffer
    Modifier and Type | Method and Description
    --- | ---
    `Buffer` | Encoding.`decode(Buffer in)` Decode a buffer into another buffer.
    `Buffer` | SevenBit.`decode(Buffer in)` We don't do any 8-bit checks like we do for decode(byte[])
    `Buffer` | EightBit.`decode(Buffer in)`
    `Buffer` | Encoding.`decode(byte[] in)` Decode a byte array using default offset and length.
    `Buffer` | Encoding.`decode(byte[] in, int offset, int length)` Decode a portion of a byte array.
    `Buffer` | SevenBit.`decode(byte[] in, int offset, int length)`
    `Buffer` | EightBit.`decode(byte[] in, int offset, int length)`
    `Buffer` | Encoding.`decode(String str)` Decode a string.

    Methods in i2p.susi.webmail.encoding with parameters of type Buffer
    Modifier and Type | Method and Description
    --- | ---
    `Buffer` | Encoding.`decode(Buffer in)` Decode a buffer into another buffer.
    `Buffer` | SevenBit.`decode(Buffer in)` We don't do any 8-bit checks like we do for decode(byte[])
    `Buffer` | EightBit.`decode(Buffer in)`
    `void` | Encoding.`decode(Buffer in, Buffer out)` Decode a buffer into another buffer using the input stream.
    `abstract void` | Encoding.`decode(InputStream in, Buffer out)` Decode an input stream into a buffer.
    `void` | Base64.`decode(InputStream in, Buffer bout)`
    `void` | HeaderLine.`decode(InputStream in, Buffer bout)` Decode all the header lines, up through \r\n\r\n, and puts them in the ReadBuffer, including the \r\n\r\n
    `void` | SevenBit.`decode(InputStream in, Buffer out)` Copy in to out, unchanged We don't do any 8-bit checks like we do for decode(byte[])
    `void` | HTML.`decode(InputStream in, Buffer out)`
    `void` | QuotedPrintable.`decode(InputStream in, Buffer bout)`
    `void` | EightBit.`decode(InputStream in, Buffer out)` Copy in to out, unchanged

  - ### Uses of Buffer in i2p.susi.webmail.pop3

    Methods in i2p.susi.webmail.pop3 that return Buffer
    Modifier and Type | Method and Description
    --- | ---
    `Buffer` | POP3MailBox.`getBody(String uidl, Buffer buffer)` Fetch the body.
    `Buffer` | POP3MailBox.FetchRequest.`getBuffer()`
    `Buffer` | POP3MailBox.`getHeader(String uidl)` Fetch the header.

    Methods in i2p.susi.webmail.pop3 with parameters of type Buffer
    Modifier and Type | Method and Description
    --- | ---
    `Buffer` | POP3MailBox.`getBody(String uidl, Buffer buffer)` Fetch the body.