org.apache.lucene.util.packed
Class PagedGrowableWriter

java.lang.Object
  extended by org.apache.lucene.util.packed.PagedGrowableWriter

public final class PagedGrowableWriter
extends Object

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 AbstractAppendingLongBuffer 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.

Constructor Summary
PagedGrowableWriter(long size, int pageSize, int startBitsPerValue, float acceptableOverheadRatio)
          Create a new PagedGrowableWriter instance.
 
Method Summary
protected  long baseRamBytesUsed()
           
protected  void fillPages()
           
 long get(long index)
          Get value at index.
 T grow()
          Similar to ArrayUtil.grow(long[]).
 T grow(long minSize)
          Similar to ArrayUtil.grow(long[], int).
protected  PackedInts.Mutable newMutable(int valueCount, int bitsPerValue)
           
protected  PagedGrowableWriter newUnfilledCopy(long newSize)
           
 long ramBytesUsed()
          Return the number of bytes used by this object.
 T resize(long newSize)
          Create a new copy of size newSize based on the content of this buffer.
 void set(long index, long value)
          Set value at index.
 long size()
          The number of values.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

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 Detail

newMutable

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

newUnfilledCopy

protected PagedGrowableWriter newUnfilledCopy(long newSize)

baseRamBytesUsed

protected long baseRamBytesUsed()

fillPages

protected final void fillPages()

size

public final long size()
The number of values.


get

public final long get(long index)
Get value at index.


set

public final void set(long index,
                      long value)
Set value at index.


ramBytesUsed

public long ramBytesUsed()
Return the number of bytes used by this object.


resize

public final T resize(long newSize)
Create a new copy of size newSize based on the content of this buffer. This method is much more efficient than creating a new instance and copying values one by one.


grow

public final T grow(long minSize)
Similar to ArrayUtil.grow(long[], int).


grow

public final T grow()
Similar to ArrayUtil.grow(long[]).


toString

public final String toString()
Overrides:
toString in class Object


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.