Class SharedInputBuffer

  • All Implemented Interfaces:
    org.apache.http.io.BufferInfo, org.apache.http.nio.util.BufferInfo

    public class SharedInputBuffer
    extends org.apache.http.nio.util.ExpandableBuffer
    Content buffer that can be shared by multiple threads, usually the I/O dispatch of an I/O reactor and a worker thread.

    The I/O dispatch thread is expect to transfer data from ContentDecoder to the buffer by calling #consumeContent(ContentDecoder).

    The worker thread is expected to read the data from the buffer by calling read() or read(byte[], int, int) methods.

    In case of an abnormal situation or when no longer needed the buffer must be shut down using shutdown() method.

    • Constructor Detail

      • SharedInputBuffer

        public SharedInputBuffer​(int buffersize,
                                 org.apache.http.nio.util.ByteBufferAllocator allocator)
    • Method Detail

      • reset

        public void reset()
      • consumeContent

        public int consumeContent​(org.apache.http.nio.ContentDecoder decoder,
                                  org.apache.http.nio.IOControl ioc)
                           throws IOException
        Throws:
        IOException
      • hasData

        public boolean hasData()
        Overrides:
        hasData in class org.apache.http.nio.util.ExpandableBuffer
      • available

        public int available()
        Specified by:
        available in interface org.apache.http.io.BufferInfo
        Specified by:
        available in interface org.apache.http.nio.util.BufferInfo
        Overrides:
        available in class org.apache.http.nio.util.ExpandableBuffer
      • capacity

        public int capacity()
        Specified by:
        capacity in interface org.apache.http.io.BufferInfo
        Specified by:
        capacity in interface org.apache.http.nio.util.BufferInfo
        Overrides:
        capacity in class org.apache.http.nio.util.ExpandableBuffer
      • length

        public int length()
        Specified by:
        length in interface org.apache.http.io.BufferInfo
        Specified by:
        length in interface org.apache.http.nio.util.BufferInfo
        Overrides:
        length in class org.apache.http.nio.util.ExpandableBuffer
      • close

        public void close()
      • shutdown

        public void shutdown()
      • isShutdown

        protected boolean isShutdown()
      • isEndOfStream

        protected boolean isEndOfStream()