Class AbstractH2StreamMultiplexer.H2StreamChannelImpl

    • Constructor Summary

      Constructors 
      Constructor Description
      H2StreamChannelImpl​(int id, boolean idle, int initialInputWindowSize, int initialOutputWindowSize)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) void appendState​(java.lang.StringBuilder buf)  
      boolean cancel()
      Cancels the ongoing operation or process.
      void endStream()
      Terminates the underlying data stream and optionally writes a closing sequence.
      void endStream​(java.util.List<? extends Header> trailers)
      Terminates the underlying data stream and optionally writes a closing sequence with the given trailers.
      (package private) int getId()  
      (package private) java.util.concurrent.atomic.AtomicInteger getInputWindow()  
      (package private) java.util.concurrent.atomic.AtomicInteger getOutputWindow()  
      (package private) boolean isLocalClosed()  
      (package private) boolean isLocalReset()  
      (package private) boolean isRemoteClosed()  
      (package private) boolean isResetDeadline()  
      (package private) boolean localReset​(int code)  
      (package private) boolean localReset​(H2Error error)  
      void push​(java.util.List<Header> headers, AsyncPushProducer pushProducer)  
      void requestOutput()
      Signals intent by the data producer to produce more data.
      (package private) void setLocalEndStream()  
      (package private) void setRemoteEndStream()  
      void submit​(java.util.List<Header> headers, boolean endStream)  
      java.lang.String toString()  
      void update​(int increment)
      Updates data capacity information through this channel.
      int write​(java.nio.ByteBuffer payload)
      Writes data from the buffer through this channel into the underlying byte stream.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • id

        private final int id
      • inputWindow

        private final java.util.concurrent.atomic.AtomicInteger inputWindow
      • outputWindow

        private final java.util.concurrent.atomic.AtomicInteger outputWindow
      • idle

        private volatile boolean idle
      • remoteEndStream

        private volatile boolean remoteEndStream
      • localEndStream

        private volatile boolean localEndStream
      • deadline

        private volatile long deadline
    • Constructor Detail

      • H2StreamChannelImpl

        H2StreamChannelImpl​(int id,
                            boolean idle,
                            int initialInputWindowSize,
                            int initialOutputWindowSize)
    • Method Detail

      • getId

        int getId()
      • getOutputWindow

        java.util.concurrent.atomic.AtomicInteger getOutputWindow()
      • getInputWindow

        java.util.concurrent.atomic.AtomicInteger getInputWindow()
      • submit

        public void submit​(java.util.List<Header> headers,
                           boolean endStream)
                    throws java.io.IOException
        Specified by:
        submit in interface H2StreamChannel
        Throws:
        java.io.IOException
      • update

        public void update​(int increment)
                    throws java.io.IOException
        Description copied from interface: CapacityChannel
        Updates data capacity information through this channel. The total number of bytes the consumer is capable of accepting is incremented by the given increment number.
        Specified by:
        update in interface CapacityChannel
        Parameters:
        increment - non-negative number of extra bytes the consumer can accept.
        Throws:
        java.io.IOException
      • write

        public int write​(java.nio.ByteBuffer payload)
                  throws java.io.IOException
        Description copied from interface: DataStreamChannel
        Writes data from the buffer through this channel into the underlying byte stream. If the underlying byte stream is temporarily unable to accept more data it can return zero to indicate that no data could be written to the data stream. The data producer can choose to call DataStreamChannel.requestOutput() to signal its intent to produce more data.
        Specified by:
        write in interface DataStreamChannel
        Specified by:
        write in interface StreamChannel<java.nio.ByteBuffer>
        Parameters:
        payload - source of data
        Returns:
        The number of bytes written, possibly zero
        Throws:
        java.io.IOException
      • endStream

        public void endStream​(java.util.List<? extends Header> trailers)
                       throws java.io.IOException
        Description copied from interface: DataStreamChannel
        Terminates the underlying data stream and optionally writes a closing sequence with the given trailers.

        Please note that some data streams may not support trailers and may silently ignore the trailers parameter.

        Specified by:
        endStream in interface DataStreamChannel
        Throws:
        java.io.IOException
      • endStream

        public void endStream()
                       throws java.io.IOException
        Description copied from interface: StreamChannel
        Terminates the underlying data stream and optionally writes a closing sequence.
        Specified by:
        endStream in interface StreamChannel<java.nio.ByteBuffer>
        Throws:
        java.io.IOException
      • requestOutput

        public void requestOutput()
        Description copied from interface: DataStreamChannel
        Signals intent by the data producer to produce more data. Once the channel is able to accept data its handler is expected to trigger an event to notify the data producer.
        Specified by:
        requestOutput in interface DataStreamChannel
      • isRemoteClosed

        boolean isRemoteClosed()
      • setRemoteEndStream

        void setRemoteEndStream()
      • isLocalClosed

        boolean isLocalClosed()
      • setLocalEndStream

        void setLocalEndStream()
      • isLocalReset

        boolean isLocalReset()
      • isResetDeadline

        boolean isResetDeadline()
      • localReset

        boolean localReset​(int code)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • localReset

        boolean localReset​(H2Error error)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • cancel

        public boolean cancel()
        Description copied from interface: Cancellable
        Cancels the ongoing operation or process.
        Specified by:
        cancel in interface Cancellable
        Returns:
        true if the operation or process has been cancelled as a result of this method call or false if it has already been cancelled or not started.
      • appendState

        void appendState​(java.lang.StringBuilder buf)
      • toString

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