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
Constructor
Description
`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

Modifier and Type
Method
Description
`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

`nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo`

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

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

## Constructor Details

### 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 Details

### 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`