Class HttpOutput

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  HttpOutput.Interceptor
      The HttpOutput.Interceptor is a single intercept point for all output written to the HttpOutput: via writer; via output stream; asynchronously; or blocking.
    • Constructor Detail

      • HttpOutput

        public HttpOutput​(HttpChannel channel)
    • Method Detail

      • isWritten

        public boolean isWritten()
      • getWritten

        public long getWritten()
      • reopen

        public void reopen()
      • softClose

        public void softClose()
      • complete

        public void complete​(Callback callback)
      • completed

        public void completed​(java.lang.Throwable failure)
        Called to indicate that the request cycle has been completed.
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.OutputStream
        Throws:
        java.io.IOException
      • getBuffer

        public java.nio.ByteBuffer getBuffer()
      • isClosed

        public boolean isClosed()
      • isAsync

        public boolean isAsync()
      • flush

        public void flush()
                   throws java.io.IOException
        Specified by:
        flush in interface java.io.Flushable
        Overrides:
        flush in class java.io.OutputStream
        Throws:
        java.io.IOException
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Overrides:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
      • write

        public void write​(java.nio.ByteBuffer buffer)
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • write

        public void write​(int b)
                   throws java.io.IOException
        Specified by:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
      • print

        public void print​(java.lang.String s)
                   throws java.io.IOException
        Description copied from class: ServletOutputStream
        Writes a String to the client, without a carriage return-line feed (CRLF) character at the end.
        Overrides:
        print in class ServletOutputStream
        Parameters:
        s - the String to send to the client
        Throws:
        java.io.IOException - if an input or output exception occurred
      • println

        public void println​(java.lang.String s)
                     throws java.io.IOException
        Description copied from class: ServletOutputStream
        Writes a String to the client, followed by a carriage return-line feed (CRLF).
        Overrides:
        println in class ServletOutputStream
        Parameters:
        s - the String to write to the client
        Throws:
        java.io.IOException - if an input or output exception occurred
      • println

        public void println​(boolean b)
                     throws java.io.IOException
        Description copied from class: ServletOutputStream
        Writes a boolean value to the client, followed by a carriage return-line feed (CRLF).
        Overrides:
        println in class ServletOutputStream
        Parameters:
        b - the boolean value to write to the client
        Throws:
        java.io.IOException - if an input or output exception occurred
      • println

        public void println​(char c)
                     throws java.io.IOException
        Description copied from class: ServletOutputStream
        Writes a character to the client, followed by a carriage return-line feed (CRLF).
        Overrides:
        println in class ServletOutputStream
        Parameters:
        c - the character to write to the client
        Throws:
        java.io.IOException - if an input or output exception occurred
      • println

        public void println​(int i)
                     throws java.io.IOException
        Description copied from class: ServletOutputStream
        Writes an int to the client, followed by a carriage return-line feed (CRLF) character.
        Overrides:
        println in class ServletOutputStream
        Parameters:
        i - the int to write to the client
        Throws:
        java.io.IOException - if an input or output exception occurred
      • println

        public void println​(long l)
                     throws java.io.IOException
        Description copied from class: ServletOutputStream
        Writes a long value to the client, followed by a carriage return-line feed (CRLF).
        Overrides:
        println in class ServletOutputStream
        Parameters:
        l - the long value to write to the client
        Throws:
        java.io.IOException - if an input or output exception occurred
      • println

        public void println​(float f)
                     throws java.io.IOException
        Description copied from class: ServletOutputStream
        Writes a float value to the client, followed by a carriage return-line feed (CRLF).
        Overrides:
        println in class ServletOutputStream
        Parameters:
        f - the float value to write to the client
        Throws:
        java.io.IOException - if an input or output exception occurred
      • println

        public void println​(double d)
                     throws java.io.IOException
        Description copied from class: ServletOutputStream
        Writes a double value to the client, followed by a carriage return-line feed (CRLF).
        Overrides:
        println in class ServletOutputStream
        Parameters:
        d - the double value to write to the client
        Throws:
        java.io.IOException - if an input or output exception occurred
      • sendContent

        public void sendContent​(java.nio.ByteBuffer content)
                         throws java.io.IOException
        Blocking send of whole content.
        Parameters:
        content - The whole content to send
        Throws:
        java.io.IOException - if the send fails
      • sendContent

        public void sendContent​(java.io.InputStream in)
                         throws java.io.IOException
        Blocking send of stream content.
        Parameters:
        in - The stream content to send
        Throws:
        java.io.IOException - if the send fails
      • sendContent

        public void sendContent​(java.nio.channels.ReadableByteChannel in)
                         throws java.io.IOException
        Blocking send of channel content.
        Parameters:
        in - The channel content to send
        Throws:
        java.io.IOException - if the send fails
      • sendContent

        public void sendContent​(HttpContent content)
                         throws java.io.IOException
        Blocking send of HTTP content.
        Parameters:
        content - The HTTP content to send
        Throws:
        java.io.IOException - if the send fails
      • sendContent

        public void sendContent​(java.nio.ByteBuffer content,
                                Callback callback)
        Asynchronous send of whole content.
        Parameters:
        content - The whole content to send
        callback - The callback to use to notify success or failure
      • sendContent

        public void sendContent​(java.io.InputStream in,
                                Callback callback)
        Asynchronous send of stream content. The stream will be closed after reading all content.
        Parameters:
        in - The stream content to send
        callback - The callback to use to notify success or failure
      • sendContent

        public void sendContent​(java.nio.channels.ReadableByteChannel in,
                                Callback callback)
        Asynchronous send of channel content. The channel will be closed after reading all content.
        Parameters:
        in - The channel content to send
        callback - The callback to use to notify success or failure
      • sendContent

        public void sendContent​(HttpContent httpContent,
                                Callback callback)
        Asynchronous send of HTTP content.
        Parameters:
        httpContent - The HTTP content to send
        callback - The callback to use to notify success or failure
      • getBufferSize

        public int getBufferSize()
      • setBufferSize

        public void setBufferSize​(int size)
      • onFlushed

        public void onFlushed​(long bytes)
                       throws java.io.IOException

        Invoked when bytes have been flushed to the network.

        The number of flushed bytes may be different from the bytes written by the application if an HttpOutput.Interceptor changed them, for example by compressing them.

        Parameters:
        bytes - the number of bytes flushed
        Throws:
        java.io.IOException - if the minimum data rate, when set, is not respected
        See Also:
        WriteFlusher.Listener
      • recycle

        public void recycle()
      • resetBuffer

        public void resetBuffer()
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object