Package org.apache.lucene.util.packed

# Class PagedGrowableWriter

java.lang.Object
org.apache.lucene.util.LongValues
org.apache.lucene.util.packed.AbstractPagedMutable<PagedGrowableWriter>
org.apache.lucene.util.packed.PagedGrowableWriter

All Implemented Interfaces:
  `Accountable`

public final class PagedGrowableWriter extends AbstractPagedMutable<PagedGrowableWriter>
A `PagedGrowableWriter`. This class slices data into fixed-size blocks which have independent numbers of bits per value and grow on-demand.

You should use this class instead of the `PackedLongValues` related ones only when you need random write-access. Otherwise this class will likely be slower and less memory-efficient.

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

## Field Summary

### Fields inherited from class org.apache.lucene.util.LongValues

`IDENTITY, ZEROES`

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

`NULL_ACCOUNTABLE`

## Constructor Summary

Constructors
Constructor
Description
`PagedGrowableWriter(long size, int pageSize, int startBitsPerValue, float acceptableOverheadRatio)`
Create a new `PagedGrowableWriter` instance.

## Method Summary

Modifier and Type
Method
Description
`protected long`
`baseRamBytesUsed()`
`protected PackedInts.Mutable`
`newMutable(int valueCount, int bitsPerValue)`
`protected PagedGrowableWriter`
`newUnfilledCopy(long newSize)`

### Methods inherited from class org.apache.lucene.util.packed.AbstractPagedMutable

`fillPages, get, grow, grow, ramBytesUsed, resize, set, size, toString`

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

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

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

`getChildResources`

## Constructor Details

### PagedGrowableWriter

public PagedGrowableWriter(long size, int pageSize, int startBitsPerValue, float acceptableOverheadRatio)
Create a new `PagedGrowableWriter` instance.

Parameters:
  `size` - the number of values to store.
  `pageSize` - the number of values per page
  `startBitsPerValue` - the initial number of bits per value
  `acceptableOverheadRatio` - an acceptable overhead ratio

## Method Details

### newMutable

protected PackedInts.Mutable newMutable(int valueCount, int bitsPerValue)

Specified by:
  `newMutable` in class `AbstractPagedMutable<PagedGrowableWriter>`

### newUnfilledCopy

protected PagedGrowableWriter newUnfilledCopy(long newSize)

Specified by:
  `newUnfilledCopy` in class `AbstractPagedMutable<PagedGrowableWriter>`

### baseRamBytesUsed

protected long baseRamBytesUsed()

Overrides:
  `baseRamBytesUsed` in class `AbstractPagedMutable<PagedGrowableWriter>`