Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sourceforge.jtds.jdbc
Class RequestStream

    java.lang.Object
      |
      +--net.sourceforge.jtds.jdbc.RequestStream

public class RequestStream
extends java.lang.Object

Class to implement an output stream for the server request.

Implementation note:

1. This class contains methods to write different types of data to the server request stream in TDS format.
2. Character translation of String items is carried out.

Version:
  $Id: RequestStream.java,v 1.18 2005/09/21 21:50:34 ddkilzer Exp $
Author:
  Mike Hutchinson.

Field Summary
`private byte[]` | `buffer` The output packet buffer.
`private int` | `bufferPtr` The offset of the next byte to write.
`private int` | `bufferSize` The current output buffer size
`private boolean` | `isClosed` True if stream is closed.
`private int` | `maxPrecision` The maximum decimal precision.
`private byte` | `pktType` The request packet type.
`private SharedSocket` | `socket` The shared network socket.
`private int` | `streamId` The unique stream id.

Constructor Summary
`(package private)` | `RequestStream(SharedSocket socket, int streamId, int bufferSize, int maxPrecision)` Construct a RequestStream object.

Method Summary
`(package private) void` | `close()` Close the output stream.
`(package private) void` | `flush()` Flush the packet to the output stream setting the last packet flag.
`(package private) int` | `getBufferSize()` Retrieve the current output packet size.
`(package private) byte` | `getMaxDecimalBytes()` Returns the maximum number of bytes required to output a decimal given the current `maxPrecision`.
`(package private) int` | `getMaxPrecision()` Retrive the maximum decimal precision.
`(package private) int` | `getServerType()` Retrieve the Server type.
`(package private) int` | `getStreamId()` Retrieve the unique stream id.
`(package private) int` | `getTdsVersion()` Retrieve the TDS version number.
`private void` | `putPacket(int last)` Write the TDS packet to the network.
`(package private) void` | `setBufferSize(int size)` Set the output buffer size
`(package private) void` | `setPacketType(byte pktType)` Set the current output packet type.
`(package private) void` | `write(java.math.BigDecimal value)` Write a BigDecimal value to the output stream.
`(package private) void` | `write(byte b)` Write a byte to the output stream.
`(package private) void` | `write(byte[] b)` Write an array of bytes to the output stream.
`(package private) void` | `write(byte[] b, int off, int len)` Write a partial byte buffer to the output stream.
`(package private) void` | `write(char[] s, int off, int len)` Write a char array object to the output stream.
`(package private) void` | `write(double f)` Write a double value to the output stream.
`(package private) void` | `write(float f)` Write a float value to the output stream.
`(package private) void` | `write(int i)` Write an int value to the output stream.
`(package private) void` | `write(long l)` Write a long value to the output stream.
`(package private) void` | `write(short s)` Write a short value to the output stream.
`(package private) void` | `write(java.lang.String s)` Write a String object to the output stream.
`(package private) void` | `writeAscii(java.lang.String s)` Write a String to the output stream as translated bytes.
`(package private) void` | `writeReaderBytes(java.io.Reader in, int length)` Copy the contents of a Reader stream to the server as bytes.
`(package private) void` | `writeReaderChars(java.io.Reader in, int length)` Copy the contents of a Reader stream to the server.
`(package private) void` | `writeStreamBytes(java.io.InputStream in, int length)` Copy the contents of an InputStream to the server.

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### socket

    private final SharedSocket socket

  The shared network socket.

### buffer

    private byte[] buffer

  The output packet buffer.

### bufferPtr

    private int bufferPtr

  The offset of the next byte to write.

### pktType

    private byte pktType

  The request packet type.

### streamId

    private final int streamId

  The unique stream id.

### isClosed

    private boolean isClosed

  True if stream is closed.

### bufferSize

    private int bufferSize

  The current output buffer size

### maxPrecision

    private int maxPrecision

  The maximum decimal precision.

Constructor Detail

### RequestStream

    RequestStream(SharedSocket socket,
                  int streamId,
                  int bufferSize,
                  int maxPrecision)

  Construct a RequestStream object.
  Parameters:
    `socket` - the shared socket object to write to
    `streamId` - the unique id for this stream
    `bufferSize` - the initial buffer size to use (the current network packet size)
    `maxPrecision` - the maximum precision for numeric/decimal types

Method Detail

### setBufferSize

    void setBufferSize(int size)

  Set the output buffer size
  Parameters:
    `size` - The new buffer size (>= `TdsCore.MIN_PKT_SIZE` <= `TdsCore.MAX_PKT_SIZE`).

### getBufferSize

    int getBufferSize()

  Retrieve the current output packet size.
  Returns:
    the packet size as an `int`.

### getMaxPrecision

    int getMaxPrecision()

  Retrive the maximum decimal precision.
  Returns:
    The precision as an `int`.

### getMaxDecimalBytes

    byte getMaxDecimalBytes()

  Returns the maximum number of bytes required to output a decimal given the current `maxPrecision`.
  Returns:
    the maximum number of bytes required to output a decimal.

### getStreamId

    int getStreamId()

  Retrieve the unique stream id.
  Returns:
    the unique stream id as an `int`.

### setPacketType

    void setPacketType(byte pktType)

  Set the current output packet type.
  Parameters:
    `pktType` - The packet type eg TdsCore.QUERY_PKT.

### write

    void write(byte b)
         throws java.io.IOException

  Write a byte to the output stream.
  Parameters:
    `b` - The byte value to write.
  Throws:
    `java.io.IOException` -

### write

    void write(byte[] b)
         throws java.io.IOException

  Write an array of bytes to the output stream.
  Parameters:
    `b` - The byte array to write.
  Throws:
    `java.io.IOException` -

### write

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

  Write a partial byte buffer to the output stream.
  Parameters:
    `b` - The byte array buffer.
    `off` - The offset into the byte array.
    `len` - The number of bytes to write.
  Throws:
    `java.io.IOException` -

### write

    void write(int i)
         throws java.io.IOException

  Write an int value to the output stream.
  Parameters:
    `i` - The int value to write.
  Throws:
    `java.io.IOException` -

### write

    void write(short s)
         throws java.io.IOException

  Write a short value to the output stream.
  Parameters:
    `s` - The short value to write.
  Throws:
    `java.io.IOException` -

### write

    void write(long l)
         throws java.io.IOException

  Write a long value to the output stream.
  Parameters:
    `l` - The long value to write.
  Throws:
    `java.io.IOException` -

### write

    void write(double f)
         throws java.io.IOException

  Write a double value to the output stream.
  Parameters:
    `f` - The double value to write.
  Throws:
    `java.io.IOException` -

### write

    void write(float f)
         throws java.io.IOException

  Write a float value to the output stream.
  Parameters:
    `f` - The float value to write.
  Throws:
    `java.io.IOException` -

### write

    void write(java.lang.String s)
         throws java.io.IOException

  Write a String object to the output stream. If the TDS version is >= 7.0 write a UNICODE string otherwise wrote a translated byte stream.
  Parameters:
    `s` - The String to write.
  Throws:
    `java.io.IOException` -

### write

    void write(char[] s,
               int off,
               int len)
         throws java.io.IOException

  Write a char array object to the output stream.
  Parameters:
    `s` - The char[] to write.
  Throws:
    `java.io.IOException` -

### writeAscii

    void writeAscii(java.lang.String s)
              throws java.io.IOException

  Write a String to the output stream as translated bytes.
  Parameters:
    `s` - The String to write.
  Throws:
    `java.io.IOException` -

### writeStreamBytes

    void writeStreamBytes(java.io.InputStream in,
                          int length)
                    throws java.io.IOException

  Copy the contents of an InputStream to the server.
  Parameters:
    `in` - The InputStream to read.
    `length` - The length of the stream.
  Throws:
    `java.io.IOException` -

### writeReaderChars

    void writeReaderChars(java.io.Reader in,
                          int length)
                    throws java.io.IOException

  Copy the contents of a Reader stream to the server.
  Parameters:
    `in` - The Reader object with the data.
    `length` - The length of the data in characters.
  Throws:
    `java.io.IOException` -

### writeReaderBytes

    void writeReaderBytes(java.io.Reader in,
                          int length)
                    throws java.io.IOException

  Copy the contents of a Reader stream to the server as bytes.

  NB. Only reliable where the charset is single byte.

  Parameters:
    `in` - The Reader object with the data.
    `length` - The length of the data in bytes.
  Throws:
    `java.io.IOException` -

### write

    void write(java.math.BigDecimal value)
         throws java.io.IOException

  Write a BigDecimal value to the output stream.
  Parameters:
    `value` - The BigDecimal value to write.
  Throws:
    `java.io.IOException` -

### flush

    void flush()
         throws java.io.IOException

  Flush the packet to the output stream setting the last packet flag.
  Throws:
    `java.io.IOException` -

### close

    void close()

  Close the output stream.

### getTdsVersion

    int getTdsVersion()

  Retrieve the TDS version number.
  Returns:
    The TDS version as an `int`.

### getServerType

    int getServerType()

  Retrieve the Server type.
  Returns:
    The Server type as an `int`.

### putPacket

    private void putPacket(int last)
                    throws java.io.IOException

  Write the TDS packet to the network.
  Parameters:
    `last` - Set to 1 if this is the last packet else 0.
  Throws:
    `java.io.IOException` -

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Generated on August 22 2007