类 DataBufferWrapper

java.lang.Object
cn.taketoday.core.io.buffer.DataBufferWrapper
所有已实现的接口:
DataBuffer

public class DataBufferWrapper extends Object implements DataBuffer
Provides a convenient implementation of the DataBuffer interface that can be overridden to adapt the delegate.

These methods default to calling through to the wrapped delegate object.

从以下版本开始:
4.0
作者:
Arjen Poutsma
  • 字段详细资料

  • 构造器详细资料

    • DataBufferWrapper

      public DataBufferWrapper(DataBuffer delegate)
      Create a new DataBufferWrapper that wraps the given buffer.
      参数:
      delegate - the buffer to wrap
  • 方法详细资料

    • dataBuffer

      public DataBuffer dataBuffer()
      Return the wrapped delegate.
    • factory

      public DataBufferFactory factory()
      从接口复制的说明: DataBuffer
      Return the DataBufferFactory that created this buffer.
      指定者:
      factory 在接口中 DataBuffer
      返回:
      the creating buffer factory
    • indexOf

      public int indexOf(IntPredicate predicate, int fromIndex)
      从接口复制的说明: DataBuffer
      Return the index of the first byte in this buffer that matches the given predicate.
      指定者:
      indexOf 在接口中 DataBuffer
      参数:
      predicate - the predicate to match
      fromIndex - the index to start the search from
      返回:
      the index of the first byte that matches predicate; or -1 if none match
    • lastIndexOf

      public int lastIndexOf(IntPredicate predicate, int fromIndex)
      从接口复制的说明: DataBuffer
      Return the index of the last byte in this buffer that matches the given predicate.
      指定者:
      lastIndexOf 在接口中 DataBuffer
      参数:
      predicate - the predicate to match
      fromIndex - the index to start the search from
      返回:
      the index of the last byte that matches predicate; or -1 if none match
    • readableByteCount

      public int readableByteCount()
      从接口复制的说明: DataBuffer
      Return the number of bytes that can be read from this data buffer.
      指定者:
      readableByteCount 在接口中 DataBuffer
      返回:
      the readable byte count
    • writableByteCount

      public int writableByteCount()
      从接口复制的说明: DataBuffer
      Return the number of bytes that can be written to this data buffer.
      指定者:
      writableByteCount 在接口中 DataBuffer
      返回:
      the writable byte count
    • capacity

      public int capacity()
      从接口复制的说明: DataBuffer
      Return the number of bytes that this buffer can contain.
      指定者:
      capacity 在接口中 DataBuffer
      返回:
      the capacity
    • capacity

      public DataBuffer capacity(int capacity)
      从接口复制的说明: DataBuffer
      Set the number of bytes that this buffer can contain.

      If the new capacity is lower than the current capacity, the contents of this buffer will be truncated. If the new capacity is higher than the current capacity, it will be expanded.

      指定者:
      capacity 在接口中 DataBuffer
      参数:
      capacity - the new capacity
      返回:
      this buffer
      另请参阅:
    • ensureWritable

      public DataBuffer ensureWritable(int capacity)
      从接口复制的说明: DataBuffer
      Ensure that the current buffer has enough DataBuffer.writableByteCount() to write the amount of data given as an argument. If not, the missing capacity will be added to the buffer.
      指定者:
      ensureWritable 在接口中 DataBuffer
      参数:
      capacity - the writable capacity to check for
      返回:
      this buffer
    • readPosition

      public int readPosition()
      从接口复制的说明: DataBuffer
      Return the position from which this buffer will read.
      指定者:
      readPosition 在接口中 DataBuffer
      返回:
      the read position
    • readPosition

      public DataBuffer readPosition(int readPosition)
      从接口复制的说明: DataBuffer
      Set the position from which this buffer will read.
      指定者:
      readPosition 在接口中 DataBuffer
      参数:
      readPosition - the new read position
      返回:
      this buffer
    • writePosition

      public int writePosition()
      从接口复制的说明: DataBuffer
      Return the position to which this buffer will write.
      指定者:
      writePosition 在接口中 DataBuffer
      返回:
      the write position
    • writePosition

      public DataBuffer writePosition(int writePosition)
      从接口复制的说明: DataBuffer
      Set the position to which this buffer will write.
      指定者:
      writePosition 在接口中 DataBuffer
      参数:
      writePosition - the new write position
      返回:
      this buffer
    • getByte

      public byte getByte(int index)
      从接口复制的说明: DataBuffer
      Read a single byte at the given index from this data buffer.
      指定者:
      getByte 在接口中 DataBuffer
      参数:
      index - the index at which the byte will be read
      返回:
      the byte at the given index
    • read

      public byte read()
      从接口复制的说明: DataBuffer
      Read a single byte from the current reading position from this data buffer.
      指定者:
      read 在接口中 DataBuffer
      返回:
      the byte at this buffer's current reading position
    • read

      public DataBuffer read(byte[] destination)
      从接口复制的说明: DataBuffer
      Read this buffer's data into the specified destination, starting at the current reading position of this buffer.
      指定者:
      read 在接口中 DataBuffer
      参数:
      destination - the array into which the bytes are to be written
      返回:
      this buffer
    • read

      public DataBuffer read(byte[] destination, int offset, int length)
      从接口复制的说明: DataBuffer
      Read at most length bytes of this buffer into the specified destination, starting at the current reading position of this buffer.
      指定者:
      read 在接口中 DataBuffer
      参数:
      destination - the array into which the bytes are to be written
      offset - the index within destination of the first byte to be written
      length - the maximum number of bytes to be written in destination
      返回:
      this buffer
    • write

      public DataBuffer write(byte b)
      从接口复制的说明: DataBuffer
      Write a single byte into this buffer at the current writing position.
      指定者:
      write 在接口中 DataBuffer
      参数:
      b - the byte to be written
      返回:
      this buffer
    • write

      public DataBuffer write(byte[] source)
      从接口复制的说明: DataBuffer
      Write the given source into this buffer, starting at the current writing position of this buffer.
      指定者:
      write 在接口中 DataBuffer
      参数:
      source - the bytes to be written into this buffer
      返回:
      this buffer
    • write

      public DataBuffer write(byte[] source, int offset, int length)
      从接口复制的说明: DataBuffer
      Write at most length bytes of the given source into this buffer, starting at the current writing position of this buffer.
      指定者:
      write 在接口中 DataBuffer
      参数:
      source - the bytes to be written into this buffer
      offset - the index within source to start writing from
      length - the maximum number of bytes to be written from source
      返回:
      this buffer
    • write

      public DataBuffer write(DataBuffer... buffers)
      从接口复制的说明: DataBuffer
      Write one or more DataBuffers to this buffer, starting at the current writing position. It is the responsibility of the caller to release the given data buffers.
      指定者:
      write 在接口中 DataBuffer
      参数:
      buffers - the byte buffers to write into this buffer
      返回:
      this buffer
    • write

      public DataBuffer write(ByteBuffer... buffers)
      从接口复制的说明: DataBuffer
      Write one or more ByteBuffer to this buffer, starting at the current writing position.
      指定者:
      write 在接口中 DataBuffer
      参数:
      buffers - the byte buffers to write into this buffer
      返回:
      this buffer
    • write

      public DataBuffer write(CharSequence charSequence, Charset charset)
      从接口复制的说明: DataBuffer
      Write the given CharSequence using the given Charset, starting at the current writing position.
      指定者:
      write 在接口中 DataBuffer
      参数:
      charSequence - the char sequence to write into this buffer
      charset - the charset to encode the char sequence with
      返回:
      this buffer
    • slice

      public DataBuffer slice(int index, int length)
      从接口复制的说明: DataBuffer
      Create a new DataBuffer whose contents is a shared subsequence of this data buffer's content. Data between this data buffer and the returned buffer is shared; though changes in the returned buffer's position will not be reflected in the reading nor writing position of this data buffer.

      Note that this method will not call DataBufferUtils.retain(DataBuffer) on the resulting slice: the reference count will not be increased.

      指定者:
      slice 在接口中 DataBuffer
      参数:
      index - the index at which to start the slice
      length - the length of the slice
      返回:
      the specified slice of this data buffer
      另请参阅:
    • retainedSlice

      public DataBuffer retainedSlice(int index, int length)
      从接口复制的说明: DataBuffer
      Create a new DataBuffer whose contents is a shared, retained subsequence of this data buffer's content. Data between this data buffer and the returned buffer is shared; though changes in the returned buffer's position will not be reflected in the reading nor writing position of this data buffer.

      Note that unlike DataBuffer.slice(int, int), this method will call DataBufferUtils.retain(DataBuffer) (or equivalent) on the resulting slice.

      指定者:
      retainedSlice 在接口中 DataBuffer
      参数:
      index - the index at which to start the slice
      length - the length of the slice
      返回:
      the specified, retained slice of this data buffer
      另请参阅:
    • split

      public DataBuffer split(int index)
      从接口复制的说明: DataBuffer
      Splits this data buffer into two at the given index.

      Data that precedes the index will be returned in a new buffer, while this buffer will contain data that follows after index. Memory between the two buffers is shared, but independent and cannot overlap (unlike slice).

      The read and write position of the returned buffer are truncated to fit within the buffers capacity if necessary. The positions of this buffer are set to 0 if they are smaller than index.

      指定者:
      split 在接口中 DataBuffer
      参数:
      index - the index at which it should be split
      返回:
      a new data buffer, containing the bytes from index 0 to index
    • asByteBuffer

      public ByteBuffer asByteBuffer()
      从接口复制的说明: DataBuffer
      Expose this buffer's bytes as a ByteBuffer. Data between this DataBuffer and the returned ByteBuffer is shared; though changes in the returned buffer's position will not be reflected in the reading nor writing position of this data buffer.

      DataBuffer.toByteBuffer(), which does not share data and returns a copy.

      指定者:
      asByteBuffer 在接口中 DataBuffer
      返回:
      this data buffer as a byte buffer
    • asByteBuffer

      public ByteBuffer asByteBuffer(int index, int length)
      从接口复制的说明: DataBuffer
      Expose a subsequence of this buffer's bytes as a ByteBuffer. Data between this DataBuffer and the returned ByteBuffer is shared; though changes in the returned buffer's position will not be reflected in the reading nor writing position of this data buffer.

      in favor of DataBuffer.toByteBuffer(int, int), which does not share data and returns a copy.

      指定者:
      asByteBuffer 在接口中 DataBuffer
      参数:
      index - the index at which to start the byte buffer
      length - the length of the returned byte buffer
      返回:
      this data buffer as a byte buffer
    • toByteBuffer

      public ByteBuffer toByteBuffer()
      从接口复制的说明: DataBuffer
      Returns a ByteBuffer representation of this data buffer. Data between this DataBuffer and the returned ByteBuffer is not shared.
      指定者:
      toByteBuffer 在接口中 DataBuffer
      返回:
      this data buffer as a byte buffer
    • toByteBuffer

      public ByteBuffer toByteBuffer(int index, int length)
      从接口复制的说明: DataBuffer
      Returns a ByteBuffer representation of a subsequence of this buffer's bytes. Data between this DataBuffer and the returned ByteBuffer is not shared.
      指定者:
      toByteBuffer 在接口中 DataBuffer
      返回:
      this data buffer as a byte buffer
    • toByteBuffer

      public void toByteBuffer(ByteBuffer dest)
      从接口复制的说明: DataBuffer
      Copies this entire data buffer into the given destination ByteBuffer, beginning at the current reading position, and the current position of destination byte buffer.
      指定者:
      toByteBuffer 在接口中 DataBuffer
      参数:
      dest - the destination byte buffer
    • toByteBuffer

      public void toByteBuffer(int srcPos, ByteBuffer dest, int destPos, int length)
      从接口复制的说明: DataBuffer
      Copies the given length from this data buffer into the given destination ByteBuffer, beginning at the given source position, and the given destination position in the destination byte buffer.
      指定者:
      toByteBuffer 在接口中 DataBuffer
      参数:
      srcPos - the position of this data buffer from where copying should start
      dest - the destination byte buffer
      destPos - the position in dest to where copying should start
      length - the amount of data to copy
    • readableByteBuffers

      public DataBuffer.ByteBufferIterator readableByteBuffers()
      从接口复制的说明: DataBuffer
      Returns a closeable iterator over each ByteBuffer in this data buffer that can be read. Calling this method is more efficient than DataBuffer.toByteBuffer(), as no data is copied. However, the byte buffers provided can only be used during the iteration.

      Note that the returned iterator must be used in a try-with-resources clause or explicitly closed.

      指定者:
      readableByteBuffers 在接口中 DataBuffer
      返回:
      a closeable iterator over the readable byte buffers contained in this data buffer
    • writableByteBuffers

      public DataBuffer.ByteBufferIterator writableByteBuffers()
      从接口复制的说明: DataBuffer
      Returns a closeable iterator over each ByteBuffer in this data buffer that can be written to. The byte buffers provided can only be used during the iteration.

      Note that the returned iterator must be used in a try-with-resources clause or explicitly closed.

      指定者:
      writableByteBuffers 在接口中 DataBuffer
      返回:
      a closeable iterator over the writable byte buffers contained in this data buffer
    • asInputStream

      public InputStream asInputStream()
      从接口复制的说明: DataBuffer
      Expose this buffer's data as an InputStream. Both data and read position are shared between the returned stream and this data buffer. The underlying buffer will not be released when the input stream is closed.
      指定者:
      asInputStream 在接口中 DataBuffer
      返回:
      this data buffer as an input stream
      另请参阅:
    • asInputStream

      public InputStream asInputStream(boolean releaseOnClose)
      从接口复制的说明: DataBuffer
      Expose this buffer's data as an InputStream. Both data and read position are shared between the returned stream and this data buffer.
      指定者:
      asInputStream 在接口中 DataBuffer
      参数:
      releaseOnClose - whether the underlying buffer will be released when the input stream is closed.
      返回:
      this data buffer as an input stream
    • asOutputStream

      public OutputStream asOutputStream()
      从接口复制的说明: DataBuffer
      Expose this buffer's data as an OutputStream. Both data and write position are shared between the returned stream and this data buffer.
      指定者:
      asOutputStream 在接口中 DataBuffer
      返回:
      this data buffer as an output stream
    • toString

      public String toString(Charset charset)
      从接口复制的说明: DataBuffer
      Return this buffer's data a String using the specified charset. Default implementation delegates to toString(readPosition(), readableByteCount(), charset).
      指定者:
      toString 在接口中 DataBuffer
      参数:
      charset - the character set to use
      返回:
      a string representation of all this buffers data
    • toString

      public String toString(int index, int length, Charset charset)
      从接口复制的说明: DataBuffer
      Return a part of this buffer's data as a String using the specified charset.
      指定者:
      toString 在接口中 DataBuffer
      参数:
      index - the index at which to start the string
      length - the number of bytes to use for the string
      charset - the charset to use
      返回:
      a string representation of a part of this buffers data