Interface ReadChannel

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      RestorableState<ReadChannel> capture()
      Captures the read channel state so that it can be saved and restored afterwards.
      void close()
      Overridden to remove IOException.
      default long limit()
      The currently defined limit for this channel.
      default ReadChannel limit​(long limit)
      Limit the maximum number of bytes to be read from the objects content, counting from the beginning of the object, which will be available to read from this channel.
      void seek​(long position)
      Set the offset to read from.
      void setChunkSize​(int chunkSize)
      Sets the minimum size that will be read by a single RPC.
    • Method Detail

      • setChunkSize

        void setChunkSize​(int chunkSize)
        Sets the minimum size that will be read by a single RPC. Read data will be locally buffered until consumed.
      • limit

        default ReadChannel limit​(long limit)
        Limit the maximum number of bytes to be read from the objects content, counting from the beginning of the object, which will be available to read from this channel. If the limit is larger than the actual size of the content this will have no material impact.

        If used in conjunction with seek(long) the total number of returned bytes from this channel will be reduced by the number of bytes specified to seek.

        The value provided as limit will define a left-closed, right-open interval along with either 0 or any value provided to seek(long), i.e. [seek(long), limit(long)).

        An example to help illustrate the relationship

        Imagine some data [A, B, C, D, E, F, G, H, I, J], 10 bytes total.
        1. limit(5) would produce [A, B, C, D, E]
        2. seek(8) would produce [I, J]
        3. seek(2) limit(5) would produce [C, D, E]
        4. seek(3) limit(3) would produce []

        NOTE:Implementers are not required to return a new instance from this method, however they are allowed to. Users of this method should always use the instance returned from this method.

        Default Implementation:By default, this method will simply return this.

        Parameters:
        limit - the maximum number of bytes to limit this channel to
        Returns:
        The instance of channel which will respect the limit.
        Throws:
        UnsupportedOperationException - If the this instances does not support limiting
        Since:
        2.4.0
      • limit

        default long limit()
        The currently defined limit for this channel. Initial value is Long.MAX_VALUE
        Returns:
        the current limit for this channel
        Throws:
        UnsupportedOperationException - If the this instances does not support limiting
        Since:
        2.4.0