BytesRefBlockPool (Lucene 10.5.1 core API)
Description: declaration: package: org.apache.lucene.util, class: BytesRefBlockPool

Package org.apache.lucene.util

# Class BytesRefBlockPool

java.lang.Object
org.apache.lucene.util.BytesRefBlockPool

All Implemented Interfaces:
  `Accountable`

public class BytesRefBlockPool extends Object implements Accountable
Represents a logical list of ByteRef backed by a `ByteBlockPool`. It uses up to two bytes to record the length of the BytesRef followed by the actual bytes. They can be read using the start position returned when they are appended.

The `BytesRef` is written so it never crosses the `ByteBlockPool.BYTE_BLOCK_SIZE` boundary. The limit of the largest `BytesRef` is therefore `ByteBlockPool.BYTE_BLOCK_SIZE`-2 bytes.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Field Summary

  ### Fields inherited from interface org.apache.lucene.util.Accountable

  `NULL_ACCOUNTABLE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BytesRefBlockPool()`
  `BytesRefBlockPool(ByteBlockPool byteBlockPool)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `addBytesRef(BytesRef bytes)`
  Add a term returning the start position on the underlying `ByteBlockPool`.
  `void`
  `fillBytesRef(BytesRef term, int start)`
  Populates the given BytesRef with the term starting at start.
  `long`
  `ramBytesUsed()`
  Returns an estimate of the JVM heap memory used by this object in bytes.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.lucene.util.Accountable

  `getChildResources`

- ## Constructor Details

  - ### BytesRefBlockPool

    public BytesRefBlockPool()

  - ### BytesRefBlockPool

    public BytesRefBlockPool(ByteBlockPool byteBlockPool)

- ## Method Details

  - ### fillBytesRef

    public void fillBytesRef(BytesRef term, int start)
    Populates the given BytesRef with the term starting at start.
    See Also:
      - `fillBytesRef(BytesRef, int)`

  - ### addBytesRef

    public int addBytesRef(BytesRef bytes)
    Add a term returning the start position on the underlying `ByteBlockPool`. THis can be used to read back the value using `fillBytesRef(BytesRef, int)`.
    See Also:
      - `fillBytesRef(BytesRef, int)`

  - ### ramBytesUsed

    public long ramBytesUsed()
    Description copied from interface: `Accountable`
    Returns an estimate of the JVM heap memory used by this object in bytes. The method name uses "ram" for historical reasons; only JVM heap memory should be reported. Off-heap resources such as memory-mapped files or native direct buffers should not be included. Negative values are illegal.
    Specified by:
      `ramBytesUsed` in interface `Accountable`