Class TransportWriter

java.lang.Object
org.simpleframework.transport.TransportWriter
All Implemented Interfaces:
ByteWriter

public class TransportWriter extends Object implements ByteWriter
The TransportWriter object is used to write bytes to and underlying transport. This is essentially an adapter between an OutputStream and the underlying transport. Each byte array segment written to the underlying transport is wrapped in a bytes buffer so that it can be sent by the transport layer.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final AtomicBoolean
    This is used to determine if the transport has been closed.
    private final Transport
    This is the underlying transport to write the bytes to.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor for the TransportWriter object.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    This is used to close the writer and the underlying transport.
    void
    This method is used to flush the contents of the buffer to the client.
    void
    write(byte[] array)
    This method is used to deliver the provided array of bytes to the underlying transport.
    void
    write(byte[] array, int off, int len)
    This method is used to deliver the provided array of bytes to the underlying transport.
    void
    write(ByteBuffer buffer)
    This method is used to deliver the provided buffer of bytes to the underlying transport.
    void
    write(ByteBuffer buffer, int off, int len)
    This method is used to deliver the provided buffer of bytes to the underlying transport.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • closed

      private final AtomicBoolean closed
      This is used to determine if the transport has been closed.
    • transport

      private final Transport transport
      This is the underlying transport to write the bytes to.
  • Constructor Details

    • TransportWriter

      public TransportWriter(Transport transport)
      Constructor for the TransportWriter object. This is used to create an adapter for the transport such that a byte array can be used to write bytes to the array.
      Parameters:
      transport - the underlying transport to write bytes to
  • Method Details

    • write

      public void write(byte[] array) throws IOException
      This method is used to deliver the provided array of bytes to the underlying transport. Depending on the connection type the array may be encoded for SSL transport or write directly. Any implementation may choose to buffer the bytes for performance.
      Specified by:
      write in interface ByteWriter
      Parameters:
      array - this is the array of bytes to write to the client
      Throws:
      IOException
    • write

      public void write(byte[] array, int off, int len) throws IOException
      This method is used to deliver the provided array of bytes to the underlying transport. Depending on the connection type the array may be encoded for SSL transport or write directly. Any implementation may choose to buffer the bytes for performance.
      Specified by:
      write in interface ByteWriter
      Parameters:
      array - this is the array of bytes to write to the client
      off - this is the offset within the array to write from
      len - this is the number of bytes that are to be sent
      Throws:
      IOException
    • write

      public void write(ByteBuffer buffer) throws IOException
      This method is used to deliver the provided buffer of bytes to the underlying transport. Depending on the connection type the array may be encoded for SSL transport or write directly. Any implementation may choose to buffer the bytes for performance.
      Specified by:
      write in interface ByteWriter
      Parameters:
      buffer - this is the buffer of bytes to write to the client
      Throws:
      IOException
    • write

      public void write(ByteBuffer buffer, int off, int len) throws IOException
      This method is used to deliver the provided buffer of bytes to the underlying transport. Depending on the connection type the array may be encoded for SSL transport or write directly. Any implementation may choose to buffer the bytes for performance.
      Specified by:
      write in interface ByteWriter
      Parameters:
      buffer - this is the buffer of bytes to write to the client
      off - this is the offset within the buffer to write from
      len - this is the number of bytes that are to be sent
      Throws:
      IOException
    • flush

      public void flush() throws IOException
      This method is used to flush the contents of the buffer to the client. This method will block until such time as all of the data has been sent to the client. If at any point there is an error writing the content an exception is thrown.
      Specified by:
      flush in interface ByteWriter
      Throws:
      IOException
    • close

      public void close() throws IOException
      This is used to close the writer and the underlying transport. If a close is performed on the writer then no more bytes can be read from or written to the transport and the client will received a connection close on their side.
      Specified by:
      close in interface ByteWriter
      Throws:
      IOException