TdsTlsInputStream (jTDS API)
Date: 2013-06-08

net.sourceforge.jtds.ssl

## Class TdsTlsInputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.FilterInputStream
    - - net.sourceforge.jtds.ssl.TdsTlsInputStream

- All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

       class TdsTlsInputStream
      extends java.io.FilterInputStream

  An input stream that filters out TDS headers so they are not returned to JSSE (which will not recognize them).
  Version:
    $Id: TdsTlsInputStream.java,v 1.5 2005-10-20 09:46:38 alin_sinpalean Exp $
  Author:
    Rob Worsnop, Mike Hutchinson

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) java.io.InputStream` | `bufferStream`
    `(package private) int` | `bytesOutstanding`
    `(package private) boolean` | `pureSSL` False if TLS packets are encapsulated in TDS packets.
    `(package private) byte[]` | `readBuffer` Temporary buffer used to de-encapsulate inital TLS packets.

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

      `in`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TdsTlsInputStream(java.io.InputStream in)` Constructs a TdsTlsInputStream and bases it on an underlying stream.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `private void` | `primeBuffer()` Read in entire TLS record or TDS packet and store the TLS record in the buffer.
    `int` | `read(byte[] b, int off, int len)`
    `private void` | `readFully(byte[] b, int off, int len)` Reads `len` bytes or throws an `IOException` if there aren't that many bytes available.

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

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

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

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

- - ### Field Detail

    - #### bytesOutstanding

          int bytesOutstanding

    - #### readBuffer

          final byte[] readBuffer

      Temporary buffer used to de-encapsulate inital TLS packets. Initial size should be enough for login phase after which no buffering is required.

    - #### bufferStream

          java.io.InputStream bufferStream

    - #### pureSSL

          boolean pureSSL

      False if TLS packets are encapsulated in TDS packets.

  - ### Constructor Detail

    - #### TdsTlsInputStream

          public TdsTlsInputStream(java.io.InputStream in)

      Constructs a TdsTlsInputStream and bases it on an underlying stream.
      Parameters:
        `in` - the underlying stream

  - ### Method Detail

    - #### read

          public int read(byte[] b,
                 int off,
                 int len)
                   throws java.io.IOException

      Overrides:
        `read` in class `java.io.FilterInputStream`
      Throws:
        `java.io.IOException`

    - #### primeBuffer

          private void primeBuffer()
                            throws java.io.IOException

      Read in entire TLS record or TDS packet and store the TLS record in the buffer. (TDS packets will always contain a TLS record.)
      Throws:
        `java.io.IOException`

    - #### readFully

          private void readFully(byte[] b,
                       int off,
                       int len)
                          throws java.io.IOException

      Reads `len` bytes or throws an `IOException` if there aren't that many bytes available.
      Parameters:
        `b` - buffer to read into
        `off` - offset in the buffer where to start storing
        `len` - amount of data to read
      Throws:
        `java.io.IOException` - if an I/O error occurs or not enough data is available

Generated on June 8 2013