Package com.sun.mail.util

## Class TraceInputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.FilterInputStream
    - - com.sun.mail.util.TraceInputStream

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

    public class TraceInputStream
    extends FilterInputStream

This class is a FilterInputStream that writes the bytes being read from the given input stream into the given output stream. This class is typically used to provide a trace of the data that is being retrieved from an input stream.

Author:
  John Mani

### Field Summary

### Fields inherited from class java.io.FilterInputStream

`in`

### Constructor Summary

Constructors
`TraceInputStream​(InputStream in, MailLogger logger)` Creates an input stream filter built on top of the specified input stream.
`TraceInputStream​(InputStream in, OutputStream traceOut)` Creates an input stream filter built on top of the specified input stream.

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `read​()` Reads the next byte of data from this input stream.
`int` `read​(byte[] b, int off, int len)` Reads up to `len` bytes of data from this input stream into an array of bytes.
`void` `setQuote​(boolean quote)` Set quote mode.
`void` `setTrace​(boolean trace)` Set trace mode.

### Methods inherited from class java.io.FilterInputStream

`available, close, mark, markSupported, read, reset, skip`

### Methods inherited from class java.io.InputStream

`readAllBytes, readNBytes, transferTo`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### TraceInputStream

    public TraceInputStream​(InputStream in,
                            MailLogger logger)

Creates an input stream filter built on top of the specified input stream.

Parameters:
  `in` - the underlying input stream.
  `logger` - log trace here

#### TraceInputStream

    public TraceInputStream​(InputStream in,
                            OutputStream traceOut)

Creates an input stream filter built on top of the specified input stream.

Parameters:
  `in` - the underlying input stream.
  `traceOut` - the trace stream.

### Method Detail

#### setTrace

    public void setTrace​(boolean trace)

Set trace mode.

Parameters:
  `trace` - the trace mode

#### setQuote

    public void setQuote​(boolean quote)

Set quote mode.

Parameters:
  `quote` - the quote mode

#### read

    public int read​()
             throws IOException

Reads the next byte of data from this input stream. Returns `-1` if no data is available. Writes out the read byte into the trace stream, if trace mode is `true`

Overrides:
  `read` in class `FilterInputStream`
Throws:
  `IOException`

#### read

    public int read​(byte[] b,
                    int off,
                    int len)
             throws IOException

Reads up to `len` bytes of data from this input stream into an array of bytes. Returns `-1` if no more data is available. Writes out the read bytes into the trace stream, if trace mode is `true`

Overrides:
  `read` in class `FilterInputStream`
Throws:
  `IOException`