- java.lang.Object
-
- org.apache.lucene.store.DataInput
-
- org.apache.lucene.store.IndexInput
-
- org.apache.lucene.store.ByteBufferIndexInput
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,java.lang.Cloneable
,RandomAccessInput
- Direct Known Subclasses:
ByteBufferIndexInput.MultiBufferImpl
,ByteBufferIndexInput.SingleBufferImpl
@Deprecated public abstract class ByteBufferIndexInput extends IndexInput implements RandomAccessInput
Deprecated.This class was made public for internal reasons (instanceof
checks). InMMapDirectory
it was replaced byMemorySegment
basedIndexInput
implementations and will be no longer required in Lucene 10.Base IndexInput implementation that uses an array of ByteBuffers to represent a file.Because Java's ByteBuffer uses an int to address the values, it's necessary to access a file greater Integer.MAX_VALUE in size using multiple byte buffers.
For efficiency, this class requires that the buffers are a power-of-two (
chunkSizePower
).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
ByteBufferIndexInput.MultiBufferImpl
Deprecated.This class adds offset support to ByteBufferIndexInput, which is needed for slices.(package private) static class
ByteBufferIndexInput.SingleBufferImpl
Deprecated.Optimization of ByteBufferIndexInput for when there is only one buffer
-
Field Summary
Fields Modifier and Type Field Description protected java.nio.ByteBuffer[]
buffers
Deprecated.protected long
chunkSizeMask
Deprecated.protected int
chunkSizePower
Deprecated.protected java.nio.ByteBuffer
curBuf
Deprecated.protected int
curBufIndex
Deprecated.private java.nio.FloatBuffer[]
curFloatBufferViews
Deprecated.private java.nio.IntBuffer[]
curIntBufferViews
Deprecated.private java.nio.LongBuffer[]
curLongBufferViews
Deprecated.private static java.nio.FloatBuffer
EMPTY_FLOATBUFFER
Deprecated.private static java.nio.IntBuffer
EMPTY_INTBUFFER
Deprecated.private static java.nio.LongBuffer
EMPTY_LONGBUFFER
Deprecated.protected ByteBufferGuard
guard
Deprecated.protected boolean
isClone
Deprecated.protected long
length
Deprecated.
-
Constructor Summary
Constructors Constructor Description ByteBufferIndexInput(java.lang.String resourceDescription, java.nio.ByteBuffer[] buffers, long length, int chunkSizePower, ByteBufferGuard guard)
Deprecated.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description (package private) AlreadyClosedException
alreadyClosed(java.lang.NullPointerException npe)
Deprecated.protected ByteBufferIndexInput
buildSlice(java.lang.String sliceDescription, long offset, long length)
Deprecated.Builds the actual sliced IndexInput (may apply extra offset in subclasses).private java.nio.ByteBuffer[]
buildSlice(java.nio.ByteBuffer[] buffers, long offset, long length)
Deprecated.Returns a sliced view from a set of already-existing buffers: the last buffer's limit() will be correct, but you must deal with offset separately (the first buffer will not be adjusted)ByteBufferIndexInput
clone()
Deprecated.Returns a clone of this stream.void
close()
Deprecated.Closes the stream to further operations.long
getFilePointer()
Deprecated.Returns the current position in this file, where the next read will occur.(package private) java.lang.RuntimeException
handlePositionalIOOBE(java.lang.RuntimeException unused, java.lang.String action, long pos)
Deprecated.long
length()
Deprecated.The number of bytes in the file.protected ByteBufferIndexInput
newCloneInstance(java.lang.String newResourceDescription, java.nio.ByteBuffer[] newBuffers, int offset, long length)
Deprecated.Factory method that creates a suitable implementation of this class for the given ByteBuffers.static ByteBufferIndexInput
newInstance(java.lang.String resourceDescription, java.nio.ByteBuffer[] buffers, long length, int chunkSizePower, ByteBufferGuard guard)
Deprecated.byte
readByte()
Deprecated.Reads and returns a single byte.byte
readByte(long pos)
Deprecated.Reads a byte at the given position in the filevoid
readBytes(byte[] b, int offset, int len)
Deprecated.Reads a specified number of bytes into an array at the specified offset.void
readFloats(float[] floats, int offset, int len)
Deprecated.Reads a specified number of floats into an array at the specified offset.int
readInt()
Deprecated.Reads four bytes and returns an int (LE byte order).int
readInt(long pos)
Deprecated.Reads an integer (LE byte order) at the given position in the filevoid
readInts(int[] dst, int offset, int length)
Deprecated.Reads a specified number of ints into an array at the specified offset.long
readLong()
Deprecated.Reads eight bytes and returns a long (LE byte order).long
readLong(long pos)
Deprecated.Reads a long (LE byte order) at the given position in the filevoid
readLongs(long[] dst, int offset, int length)
Deprecated.Read a specified number of longs.short
readShort()
Deprecated.Reads two bytes and returns a short (LE byte order).short
readShort(long pos)
Deprecated.Reads a short (LE byte order) at the given position in the fileint
readVInt()
Deprecated.Reads an int stored in variable-length format.long
readVLong()
Deprecated.Reads a long stored in variable-length format.void
seek(long pos)
Deprecated.Sets current position in this file, where the next read will occur.protected void
setCurBuf(java.nio.ByteBuffer curBuf)
Deprecated.private void
setPos(long pos, int bi)
Deprecated.ByteBufferIndexInput
slice(java.lang.String sliceDescription, long offset, long length)
Deprecated.Creates a slice of this index input, with the given description, offset, and length.private void
unsetBuffers()
Deprecated.Called to remove all references to byte buffers, so we can throw AlreadyClosed on NPE.-
Methods inherited from class org.apache.lucene.store.IndexInput
getFullSliceDescription, randomAccessSlice, skipBytes, toString
-
Methods inherited from class org.apache.lucene.store.DataInput
readBytes, readGroupVInt, readGroupVInts, readMapOfStrings, readSetOfStrings, readString, readZInt, readZLong
-
-
-
-
Field Detail
-
EMPTY_FLOATBUFFER
private static final java.nio.FloatBuffer EMPTY_FLOATBUFFER
Deprecated.
-
EMPTY_LONGBUFFER
private static final java.nio.LongBuffer EMPTY_LONGBUFFER
Deprecated.
-
EMPTY_INTBUFFER
private static final java.nio.IntBuffer EMPTY_INTBUFFER
Deprecated.
-
length
protected final long length
Deprecated.
-
chunkSizeMask
protected final long chunkSizeMask
Deprecated.
-
chunkSizePower
protected final int chunkSizePower
Deprecated.
-
guard
protected final ByteBufferGuard guard
Deprecated.
-
buffers
protected java.nio.ByteBuffer[] buffers
Deprecated.
-
curBufIndex
protected int curBufIndex
Deprecated.
-
curBuf
protected java.nio.ByteBuffer curBuf
Deprecated.
-
curLongBufferViews
private java.nio.LongBuffer[] curLongBufferViews
Deprecated.
-
curIntBufferViews
private java.nio.IntBuffer[] curIntBufferViews
Deprecated.
-
curFloatBufferViews
private java.nio.FloatBuffer[] curFloatBufferViews
Deprecated.
-
isClone
protected boolean isClone
Deprecated.
-
-
Constructor Detail
-
ByteBufferIndexInput
ByteBufferIndexInput(java.lang.String resourceDescription, java.nio.ByteBuffer[] buffers, long length, int chunkSizePower, ByteBufferGuard guard)
Deprecated.
-
-
Method Detail
-
newInstance
public static ByteBufferIndexInput newInstance(java.lang.String resourceDescription, java.nio.ByteBuffer[] buffers, long length, int chunkSizePower, ByteBufferGuard guard)
Deprecated.
-
setCurBuf
protected void setCurBuf(java.nio.ByteBuffer curBuf)
Deprecated.
-
handlePositionalIOOBE
java.lang.RuntimeException handlePositionalIOOBE(java.lang.RuntimeException unused, java.lang.String action, long pos) throws java.io.IOException
Deprecated.- Throws:
java.io.IOException
-
alreadyClosed
AlreadyClosedException alreadyClosed(java.lang.NullPointerException npe)
Deprecated.
-
readByte
public final byte readByte() throws java.io.IOException
Deprecated.Description copied from class:DataInput
Reads and returns a single byte.- Specified by:
readByte
in classDataInput
- Throws:
java.io.IOException
- See Also:
DataOutput.writeByte(byte)
-
readBytes
public final void readBytes(byte[] b, int offset, int len) throws java.io.IOException
Deprecated.Description copied from class:DataInput
Reads a specified number of bytes into an array at the specified offset.- Specified by:
readBytes
in classDataInput
- Parameters:
b
- the array to read bytes intooffset
- the offset in the array to start storing byteslen
- the number of bytes to read- Throws:
java.io.IOException
- See Also:
DataOutput.writeBytes(byte[],int)
-
readLongs
public final void readLongs(long[] dst, int offset, int length) throws java.io.IOException
Deprecated.Description copied from class:DataInput
Read a specified number of longs.
-
readInts
public void readInts(int[] dst, int offset, int length) throws java.io.IOException
Deprecated.Description copied from class:DataInput
Reads a specified number of ints into an array at the specified offset.
-
readFloats
public final void readFloats(float[] floats, int offset, int len) throws java.io.IOException
Deprecated.Description copied from class:DataInput
Reads a specified number of floats into an array at the specified offset.- Overrides:
readFloats
in classDataInput
- Parameters:
floats
- the array to read bytes intooffset
- the offset in the array to start storing floatslen
- the number of floats to read- Throws:
java.io.IOException
-
readShort
public final short readShort() throws java.io.IOException
Deprecated.Description copied from class:DataInput
Reads two bytes and returns a short (LE byte order).- Overrides:
readShort
in classDataInput
- Throws:
java.io.IOException
- See Also:
DataOutput.writeShort(short)
,BitUtil.VH_LE_SHORT
-
readInt
public final int readInt() throws java.io.IOException
Deprecated.Description copied from class:DataInput
Reads four bytes and returns an int (LE byte order).- Overrides:
readInt
in classDataInput
- Throws:
java.io.IOException
- See Also:
DataOutput.writeInt(int)
,BitUtil.VH_LE_INT
-
readVInt
public final int readVInt() throws java.io.IOException
Deprecated.Description copied from class:DataInput
Reads an int stored in variable-length format. Reads between one and five bytes. Smaller values take fewer bytes. Negative numbers are supported, but should be avoided.The format is described further in
DataOutput.writeVInt(int)
.- Overrides:
readVInt
in classDataInput
- Throws:
java.io.IOException
- See Also:
DataOutput.writeVInt(int)
-
readVLong
public final long readVLong() throws java.io.IOException
Deprecated.Description copied from class:DataInput
Reads a long stored in variable-length format. Reads between one and nine bytes. Smaller values take fewer bytes. Negative numbers are not supported.The format is described further in
DataOutput.writeVInt(int)
.- Overrides:
readVLong
in classDataInput
- Throws:
java.io.IOException
- See Also:
DataOutput.writeVLong(long)
-
readLong
public final long readLong() throws java.io.IOException
Deprecated.Description copied from class:DataInput
Reads eight bytes and returns a long (LE byte order).- Overrides:
readLong
in classDataInput
- Throws:
java.io.IOException
- See Also:
DataOutput.writeLong(long)
,BitUtil.VH_LE_LONG
-
getFilePointer
public long getFilePointer()
Deprecated.Description copied from class:IndexInput
Returns the current position in this file, where the next read will occur.- Specified by:
getFilePointer
in classIndexInput
- See Also:
IndexInput.seek(long)
-
seek
public void seek(long pos) throws java.io.IOException
Deprecated.Description copied from class:IndexInput
Sets current position in this file, where the next read will occur. If this is beyond the end of the file then this will throwEOFException
and then the stream is in an undetermined state.- Specified by:
seek
in classIndexInput
- Throws:
java.io.IOException
- See Also:
IndexInput.getFilePointer()
-
readByte
public byte readByte(long pos) throws java.io.IOException
Deprecated.Description copied from interface:RandomAccessInput
Reads a byte at the given position in the file- Specified by:
readByte
in interfaceRandomAccessInput
- Throws:
java.io.IOException
- See Also:
DataInput.readByte()
-
setPos
private void setPos(long pos, int bi) throws java.io.IOException
Deprecated.- Throws:
java.io.IOException
-
readShort
public short readShort(long pos) throws java.io.IOException
Deprecated.Description copied from interface:RandomAccessInput
Reads a short (LE byte order) at the given position in the file- Specified by:
readShort
in interfaceRandomAccessInput
- Throws:
java.io.IOException
- See Also:
DataInput.readShort()
,BitUtil.VH_LE_SHORT
-
readInt
public int readInt(long pos) throws java.io.IOException
Deprecated.Description copied from interface:RandomAccessInput
Reads an integer (LE byte order) at the given position in the file- Specified by:
readInt
in interfaceRandomAccessInput
- Throws:
java.io.IOException
- See Also:
DataInput.readInt()
,BitUtil.VH_LE_INT
-
readLong
public long readLong(long pos) throws java.io.IOException
Deprecated.Description copied from interface:RandomAccessInput
Reads a long (LE byte order) at the given position in the file- Specified by:
readLong
in interfaceRandomAccessInput
- Throws:
java.io.IOException
- See Also:
DataInput.readLong()
,BitUtil.VH_LE_LONG
-
length
public final long length()
Deprecated.Description copied from class:IndexInput
The number of bytes in the file.- Specified by:
length
in interfaceRandomAccessInput
- Specified by:
length
in classIndexInput
-
clone
public final ByteBufferIndexInput clone()
Deprecated.Description copied from class:IndexInput
Returns a clone of this stream.Clones of a stream access the same data, and are positioned at the same point as the stream they were cloned from.
Expert: Subclasses must ensure that clones may be positioned at different points in the input from each other and from the stream they were cloned from.
Warning: Lucene never closes cloned
IndexInput
s, it will only callIndexInput.close()
on the original object.If you access the cloned IndexInput after closing the original object, any
readXXX
methods will throwAlreadyClosedException
.This method is NOT thread safe, so if the current
IndexInput
is being used by one thread whileclone
is called by another, disaster could strike.- Overrides:
clone
in classIndexInput
-
slice
public final ByteBufferIndexInput slice(java.lang.String sliceDescription, long offset, long length)
Deprecated.Creates a slice of this index input, with the given description, offset, and length. The slice is seeked to the beginning.- Specified by:
slice
in classIndexInput
-
buildSlice
protected ByteBufferIndexInput buildSlice(java.lang.String sliceDescription, long offset, long length)
Deprecated.Builds the actual sliced IndexInput (may apply extra offset in subclasses). *
-
newCloneInstance
protected ByteBufferIndexInput newCloneInstance(java.lang.String newResourceDescription, java.nio.ByteBuffer[] newBuffers, int offset, long length)
Deprecated.Factory method that creates a suitable implementation of this class for the given ByteBuffers.
-
buildSlice
private java.nio.ByteBuffer[] buildSlice(java.nio.ByteBuffer[] buffers, long offset, long length)
Deprecated.Returns a sliced view from a set of already-existing buffers: the last buffer's limit() will be correct, but you must deal with offset separately (the first buffer will not be adjusted)
-
close
public final void close() throws java.io.IOException
Deprecated.Description copied from class:IndexInput
Closes the stream to further operations.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in classIndexInput
- Throws:
java.io.IOException
-
unsetBuffers
private void unsetBuffers()
Deprecated.Called to remove all references to byte buffers, so we can throw AlreadyClosed on NPE.
-
-