インターフェース DataBuffer

すべての既知のサブインターフェース:
CloseableDataBufferPooledDataBufferTouchableDataBuffer
すべての既知の実装クラス:
DataBufferWrapperDefaultDataBufferNetty5DataBufferNettyDataBuffer

public interface DataBuffer
バイトバッファの基本的な抽象化。

DataBuffer は、ByteBuffer の単一の位置とは対照的に、別個の読み取り位置と書き込み位置を持っています。そのため、DataBuffer は、書き込み後に読み取るためにフリップを必要としません。一般に、読み取り位置と書き込み位置、および容量については、次の不変条件が当てはまります。

0<= readPosition <= writePosition <=  容量

DataBuffer の容量は、StringBuilder と同様にオンデマンドで拡張されます。

DataBuffer 抽象化の主な目的は、Netty の ByteBuf に似ていますが、非 Netty プラットフォーム(つまり、サーブレットコンテナー)でも使用できる ByteBufferSE の便利なラッパーを提供することです。

導入:
5.0
作成者:
Arjen Poutsma, Brian Clozel
関連事項:
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    インターフェース
    説明
    static interface
    反復された ByteBufferSE 要素のライフサイクルを保証する専用の反復子型。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    使用すべきではありません。
    6.0 の時点で、toByteBuffer(ByteBuffer)readableByteBuffers()、または writableByteBuffers() が優先されます。
    asByteBuffer(int index, int length)
    使用すべきではありません。
    6.0 の時点で、toByteBuffer(int, ByteBuffer, int, int)readableByteBuffers()、または writableByteBuffers() が優先されます。
    このバッファのデータを InputStreamSE として公開します。
    asInputStream(boolean releaseOnClose)
    このバッファのデータを InputStreamSE として公開します。
    このバッファのデータを OutputStreamSE として公開します。
    int
    このバッファに含めることができるバイト数を返します。
    capacity(int capacity)
    使用すべきではありません。
    6.0 の時点で、異なるセマンティクスを持つ ensureWritable(int) を優先
    default DataBuffer
    ensureCapacity(int capacity)
    使用すべきではありません。
    6.0 以降、ensureWritable(int) を推奨
    ensureWritable(int capacity)
    現在のバッファーに、引数として指定されたデータ量を書き込むのに十分な writableByteCount() があることを確認してください。
    このバッファーを作成した DataBufferFactory を返します。
    byte
    getByte(int index)
    このデータバッファから指定されたインデックスで 1 バイトを読み取ります。
    int
    indexOf(IntPredicateSE predicate, int fromIndex)
    指定された述語に一致するこのバッファーの最初のバイトのインデックスを返します。
    int
    lastIndexOf(IntPredicateSE predicate, int fromIndex)
    指定された述語に一致するこのバッファの最後のバイトのインデックスを返します。
    byte
    このデータバッファーから現在の読み取り位置から 1 バイトを読み取ります。
    read(byte[] destination)
    このバッファの現在の読み取り位置から開始して、指定された宛先にこのバッファのデータを読み取ります。
    read(byte[] destination, int offset, int length)
    このバッファーの現在の読み取り位置から開始して、指定された宛先にこのバッファーの最大 length バイトを読み取ります。
    このデータバッファー内の読み取り可能な各 ByteBufferSE に対して、クローズ可能な反復子を返します。
    int
    このデータバッファーから読み取ることができるバイト数を返します。
    int
    このバッファが読み込む位置を返します。
    readPosition(int readPosition)
    このバッファが読み込む位置を設定します。
    default DataBuffer
    retainedSlice(int index, int length)
    使用すべきではありません。
    6.0 の時点で、異なるセマンティクスを持つ split(int) を優先
    slice(int index, int length)
    使用すべきではありません。
    6.0 の時点で、異なるセマンティクスを持つ split(int) を優先
    split(int index)
    このデータバッファーを指定されたインデックスで 2 つに分割します。
    default ByteBufferSE
    使用すべきではありません。
    6.0.5 現在、toByteBuffer(ByteBuffer) を推奨
    toByteBuffer(int index, int length)
    使用すべきではありません。
    6.0.5 現在、toByteBuffer(int, ByteBuffer, int, int) を推奨
    void
    toByteBuffer(int srcPos, ByteBufferSE dest, int destPos, int length)
    指定された長さをこのデータバッファーから指定された宛先 ByteBuffer に、指定されたソース位置と宛先バイトバッファー内の指定された宛先位置からコピーします。
    default void
    このデータバッファー全体を、指定された宛先 ByteBuffer に、現在の読み取り位置と宛先バイトバッファーの現在の位置からコピーします。
    toString(int index, int length, CharsetSE charset)
    指定された文字セットを使用して、このバッファのデータの一部を文字列として返します。
    default StringSE
    指定された文字セットを使用して、このバッファのデータを文字列で返します。
    このデータバッファー内の書き込み可能な各 ByteBufferSE に対して、クローズ可能な反復子を返します。
    int
    このデータバッファに書き込むことができるバイト数を返します。
    write(byte b)
    このバッファの現在の書き込み位置に 1 バイトを書き込みます。
    write(byte[] source)
    このバッファの現在の書き込み位置から開始して、指定されたソースをこのバッファに書き込みます。
    write(byte[] source, int offset, int length)
    このバッファの現在の書き込み位置から開始して、指定されたソースの最大 length バイトをこのバッファに書き込みます。
    default DataBuffer
    write(CharSequenceSE charSequence, CharsetSE charset)
    現在の書き込み位置から、指定された Charset を使用して、指定された CharSequence を書き込みます。
    write(ByteBufferSE... buffers)
    現在の書き込み位置から開始して、このバッファーに 1 つ以上の ByteBufferSE を書き込みます。
    write(DataBuffer... buffers)
    現在の書き込み位置から開始して、このバッファーに 1 つ以上の DataBuffer を書き込みます。
    int
    このバッファが書き込む位置を返します。
    writePosition(int writePosition)
    このバッファが書き込む位置を設定します。
  • メソッドの詳細

    • factory

      このバッファーを作成した DataBufferFactory を返します。
      戻り値:
      作成バッファーファクトリ
    • indexOf

      int indexOf(IntPredicateSE predicate, int fromIndex)
      指定された述語に一致するこのバッファーの最初のバイトのインデックスを返します。
      パラメーター:
      predicate - 一致する述語
      fromIndex - 検索を開始するインデックス
      戻り値:
      predicate に一致する最初のバイトのインデックス。または、一致するものがない場合は -1 
    • lastIndexOf

      int lastIndexOf(IntPredicateSE predicate, int fromIndex)
      指定された述語に一致するこのバッファの最後のバイトのインデックスを返します。
      パラメーター:
      predicate - 一致する述語
      fromIndex - 検索を開始するインデックス
      戻り値:
      predicate に一致する最後のバイトのインデックス。または、一致するものがない場合は -1 
    • readableByteCount

      int readableByteCount()
      このデータバッファーから読み取ることができるバイト数を返します。
      戻り値:
      読み取り可能なバイト数
    • writableByteCount

      int writableByteCount()
      このデータバッファに書き込むことができるバイト数を返します。
      戻り値:
      書き込み可能なバイト数
      導入:
      5.0.1
    • capacity

      int capacity()
      このバッファに含めることができるバイト数を返します。
      戻り値:
      容量
      導入:
      5.0.1
    • capacity

      @DeprecatedSE(since="6.0") DataBuffer capacity(int capacity)
      使用すべきではありません。
      6.0 の時点で、異なるセマンティクスを持つ ensureWritable(int) を優先
      このバッファに含めることができるバイト数を設定します。

      新しい容量が現在の容量よりも少ない場合、このバッファの内容は切り捨てられます。新しい容量が現在の容量よりも大きい場合、拡張されます。

      パラメーター:
      capacity - 新しい容量
      戻り値:
      このバッファ
    • ensureCapacity

      @DeprecatedSE(since="6.0") default DataBuffer ensureCapacity(int capacity)
      使用すべきではありません。
      6.0 以降、ensureWritable(int) を推奨
      現在のバッファーに、引数として指定されたデータ量を書き込むのに十分な writableByteCount() があることを確認してください。そうでない場合、不足している容量がバッファに追加されます。
      パラメーター:
      capacity - チェックする書き込み可能な容量
      戻り値:
      このバッファ
      導入:
      5.1.4
    • ensureWritable

      DataBuffer ensureWritable(int capacity)
      現在のバッファーに、引数として指定されたデータ量を書き込むのに十分な writableByteCount() があることを確認してください。そうでない場合、不足している容量がバッファに追加されます。
      パラメーター:
      capacity - チェックする書き込み可能な容量
      戻り値:
      このバッファ
      導入:
      6.0
    • readPosition

      int readPosition()
      このバッファが読み込む位置を返します。
      戻り値:
      読み取り位置
      導入:
      5.0.1
    • readPosition

      DataBuffer readPosition(int readPosition)
      このバッファが読み込む位置を設定します。
      パラメーター:
      readPosition - 新しい読み取り位置
      戻り値:
      このバッファ
      例外:
      IndexOutOfBoundsExceptionSE - readPosition が 0 より小さいか、writePosition() より大きい場合
      導入:
      5.0.1
    • writePosition

      int writePosition()
      このバッファが書き込む位置を返します。
      戻り値:
      書き込み位置
      導入:
      5.0.1
    • writePosition

      DataBuffer writePosition(int writePosition)
      このバッファが書き込む位置を設定します。
      パラメーター:
      writePosition - 新しい書き込み位置
      戻り値:
      このバッファ
      例外:
      IndexOutOfBoundsExceptionSE - writePosition が readPosition() より小さいか、capacity() より大きい場合
      導入:
      5.0.1
    • getByte

      byte getByte(int index)
      このデータバッファから指定されたインデックスで 1 バイトを読み取ります。
      パラメーター:
      index - バイトが読み取られるインデックス
      戻り値:
      指定されたインデックスのバイト
      例外:
      IndexOutOfBoundsExceptionSE - index が範囲外の場合
      導入:
      5.0.4
    • read

      byte read()
      このデータバッファーから現在の読み取り位置から 1 バイトを読み取ります。
      戻り値:
      このバッファーの現在の読み取り位置のバイト
    • read

      DataBuffer read(byte[] destination)
      このバッファの現在の読み取り位置から開始して、指定された宛先にこのバッファのデータを読み取ります。
      パラメーター:
      destination - バイトが書き込まれる配列
      戻り値:
      このバッファ
    • read

      DataBuffer read(byte[] destination, int offset, int length)
      このバッファーの現在の読み取り位置から開始して、指定された宛先にこのバッファーの最大 length バイトを読み取ります。
      パラメーター:
      destination - バイトが書き込まれる配列
      offset - 書き込まれる最初のバイトの destination 内のインデックス
      length - destination に書き込まれる最大バイト数
      戻り値:
      このバッファ
    • write

      DataBuffer write(byte b)
      このバッファの現在の書き込み位置に 1 バイトを書き込みます。
      パラメーター:
      b - 書き込まれるバイト
      戻り値:
      このバッファ
    • write

      DataBuffer write(byte[] source)
      このバッファの現在の書き込み位置から開始して、指定されたソースをこのバッファに書き込みます。
      パラメーター:
      source - このバッファーに書き込まれるバイト
      戻り値:
      このバッファ
    • write

      DataBuffer write(byte[] source, int offset, int length)
      このバッファの現在の書き込み位置から開始して、指定されたソースの最大 length バイトをこのバッファに書き込みます。
      パラメーター:
      source - このバッファーに書き込まれるバイト
      offset - 書き込みを開始する source 内のインデックス
      length - source から書き込まれる最大バイト数
      戻り値:
      このバッファ
    • write

      DataBuffer write(DataBuffer... buffers)
      現在の書き込み位置から開始して、このバッファーに 1 つ以上の DataBuffer を書き込みます。与えられたデータバッファを解放するのは呼び出し側の責任です。
      パラメーター:
      buffers - このバッファーに書き込むバイトバッファー
      戻り値:
      このバッファ
    • write

      DataBuffer write(ByteBufferSE... buffers)
      現在の書き込み位置から開始して、このバッファーに 1 つ以上の ByteBufferSE を書き込みます。
      パラメーター:
      buffers - このバッファーに書き込むバイトバッファー
      戻り値:
      このバッファ
    • write

      default DataBuffer write(CharSequenceSE charSequence, CharsetSE charset)
      現在の書き込み位置から、指定された Charset を使用して、指定された CharSequence を書き込みます。
      パラメーター:
      charSequence - このバッファーに書き込む文字シーケンス
      charset - 文字シーケンスをエンコードする文字セット
      戻り値:
      このバッファ
      導入:
      5.1.4
    • slice

      @DeprecatedSE(since="6.0") DataBuffer slice(int index, int length)
      使用すべきではありません。
      6.0 の時点で、異なるセマンティクスを持つ split(int) を優先
      このデータバッファのコンテンツの共有サブシーケンスをコンテンツとする新しい DataBuffer を作成します。このデータバッファーと返されたバッファー間のデータは共有されます。ただし、返されたバッファーの位置の変更は、このデータバッファーの読み取りまたは書き込みの位置には反映されません。

      このメソッドは結果のスライスで DataBufferUtils.retain(DataBuffer) を呼び出さないことに注意してください。参照カウントは増加しません。

      パラメーター:
      index - スライスを開始するインデックス
      length - スライスの長さ
      戻り値:
      このデータバッファの指定されたスライス
    • retainedSlice

      @DeprecatedSE(since="6.0") default DataBuffer retainedSlice(int index, int length)
      使用すべきではありません。
      6.0 の時点で、異なるセマンティクスを持つ split(int) を優先
      内容がこのデータバッファの内容の共有された保持されたサブシーケンスである新しい DataBuffer を作成します。このデータバッファーと返されたバッファー間のデータは共有されます。ただし、返されたバッファーの位置の変更は、このデータバッファーの読み取りまたは書き込みの位置には反映されません。

      slice(int, int) とは異なり、このメソッド は結果のスライスで DataBufferUtils.retain(DataBuffer)(または同等のもの) を 呼び出すことに注意してください。

      パラメーター:
      index - スライスを開始するインデックス
      length - スライスの長さ
      戻り値:
      このデータバッファーの指定された保持スライス
      導入:
      5.2
    • split

      DataBuffer split(int index)
      このデータバッファーを指定されたインデックスで 2 つに分割します。

      index の前のデータは新しいバッファに返されますが、このバッファには index の後に続くデータが含まれます。2 つのバッファー間のメモリは共有されますが、独立しており、重複することはありません ( slice とは異なります)。

      返されたバッファーの読み取り位置と書き込み位置は、必要に応じてバッファーの容量に収まるように切り捨てられます。このバッファーの位置は、index より小さい場合は 0 に設定されます。

      パラメーター:
      index - 分割するインデックス
      戻り値:
      インデックス 0 から index までのバイトを含む新しいデータバッファ
      導入:
      6.0
    • asByteBuffer

      @DeprecatedSE(since="6.0") ByteBufferSE asByteBuffer()
      使用すべきではありません。
      6.0 の時点で、toByteBuffer(ByteBuffer)readableByteBuffers()、または writableByteBuffers() が優先されます。
      このバッファのバイトを ByteBufferSE として公開します。この DataBuffer と返された ByteBuffer の間のデータは共有されます。ただし、返されたバッファの位置の変更は、このデータバッファの読み取りまたは書き込みの位置には反映されません。
      戻り値:
      バイトバッファとしてのこのデータバッファ
    • asByteBuffer

      @DeprecatedSE(since="6.0") ByteBufferSE asByteBuffer(int index, int length)
      使用すべきではありません。
      6.0 の時点で、toByteBuffer(int, ByteBuffer, int, int)readableByteBuffers()、または writableByteBuffers() が優先されます。
      このバッファのバイトのサブシーケンスを ByteBufferSE として公開します。この DataBuffer と返された ByteBuffer の間のデータは共有されます。ただし、返されたバッファの位置の変更は、このデータバッファの読み取りまたは書き込みの位置には反映されません。
      パラメーター:
      index - バイトバッファを開始するインデックス
      length - 返されるバイトバッファーの長さ
      戻り値:
      バイトバッファとしてのこのデータバッファ
      導入:
      5.0.1
    • toByteBuffer

      @DeprecatedSE(since="6.0.5") default ByteBufferSE toByteBuffer()
      使用すべきではありません。
      6.0.5 現在、toByteBuffer(ByteBuffer) を推奨
      このデータバッファーの ByteBufferSE 表現を返します。この DataBuffer と返された ByteBuffer の間のデータは共有されません。
      戻り値:
      バイトバッファとしてのこのデータバッファ
      導入:
      6.0
      関連事項:
    • toByteBuffer

      @DeprecatedSE(since="6.0.5") ByteBufferSE toByteBuffer(int index, int length)
      使用すべきではありません。
      6.0.5 現在、toByteBuffer(int, ByteBuffer, int, int) を推奨
      このバッファのバイトのサブシーケンスの ByteBufferSE 表現を返します。この DataBuffer と返された ByteBuffer の間のデータは共有されません。
      戻り値:
      バイトバッファとしてのこのデータバッファ
      導入:
      6.0
      関連事項:
    • toByteBuffer

      default void toByteBuffer(ByteBufferSE dest)
      このデータバッファー全体を、指定された宛先 ByteBuffer に、現在の読み取り位置と宛先バイトバッファーの現在の位置からコピーします。
      パラメーター:
      dest - 宛先バイトバッファ
      導入:
      6.0.5
    • toByteBuffer

      void toByteBuffer(int srcPos, ByteBufferSE dest, int destPos, int length)
      指定された長さをこのデータバッファーから指定された宛先 ByteBuffer に、指定されたソース位置と宛先バイトバッファー内の指定された宛先位置からコピーします。
      パラメーター:
      srcPos - コピーを開始するこのデータバッファーの位置
      dest - 宛先バイトバッファ
      destPos - コピーを開始する dest 内の位置
      length - コピーするデータの量
      導入:
      6.0.5
    • readableByteBuffers

      DataBuffer.ByteBufferIterator readableByteBuffers()
      このデータバッファー内の読み取り可能な各 ByteBufferSE に対して、クローズ可能な反復子を返します。データがコピーされないため、このメソッドを呼び出す方が toByteBuffer() よりも効率的です。ただし、提供されたバイトバッファーは反復中にのみ使用できます。

      返された反復子は、try-with-resources 句で使用するか、明示的に closed にする必要があることに注意してください

      戻り値:
      このデータバッファに含まれる読み取り可能なバイトバッファに対するクローズ可能なイテレータ
      導入:
      6.0.5
    • writableByteBuffers

      DataBuffer.ByteBufferIterator writableByteBuffers()
      このデータバッファー内の書き込み可能な各 ByteBufferSE に対して、クローズ可能な反復子を返します。提供されたバイトバッファーは、反復中にのみ使用できます。

      返された反復子は、try-with-resources 句で使用するか、明示的に closed にする必要があることに注意してください

      戻り値:
      このデータバッファに含まれる書き込み可能なバイトバッファに対するクローズ可能なイテレータ
      導入:
      6.0.5
    • asInputStream

      default InputStreamSE asInputStream()
      このバッファのデータを InputStreamSE として公開します。データと読み取り位置の両方が、返されたストリームとこのデータバッファの間で共有されます。入力ストリームが閉じられると、基になるバッファは解放されません。
      戻り値:
      入力ストリームとしてのこのデータバッファ
      関連事項:
    • asInputStream

      default InputStreamSE asInputStream(boolean releaseOnClose)
      このバッファのデータを InputStreamSE として公開します。データと読み取り位置の両方が、返されたストリームとこのデータバッファーの間で共有されます。
      パラメーター:
      releaseOnClose - 入力ストリームが閉じられたときに基になるバッファが解放されるかどうか。
      戻り値:
      入力ストリームとしてのこのデータバッファ
      導入:
      5.0.4
    • asOutputStream

      default OutputStreamSE asOutputStream()
      このバッファのデータを OutputStreamSE として公開します。データと書き込み位置の両方が、返されたストリームとこのデータバッファーの間で共有されます。
      戻り値:
      出力ストリームとしてのこのデータバッファ
    • toString

      default StringSE toString(CharsetSE charset)
      指定された文字セットを使用して、このバッファのデータを文字列で返します。デフォルトの実装は toString(readPosition(), readableByteCount(), charset) に委譲します。
      パラメーター:
      charset - 使用する文字セット
      戻り値:
      このすべてのバッファデータの文字列表現
      導入:
      5.2
    • toString

      StringSE toString(int index, int length, CharsetSE charset)
      指定された文字セットを使用して、このバッファのデータの一部を文字列として返します。
      パラメーター:
      index - 文字列を開始するインデックス
      length - 文字列に使用するバイト数
      charset - 使用する文字セット
      戻り値:
      このバッファデータの一部の文字列表現
      導入:
      5.2